Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: extensions/browser/api/socket/tcp_socket.cc

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/socket/tcp_socket.h" 5 #include "extensions/browser/api/socket/tcp_socket.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "extensions/browser/api/api_resource.h" 10 #include "extensions/browser/api/api_resource.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 if (is_connected_) 95 if (is_connected_)
96 break; 96 break;
97 97
98 net::AddressList address_list; 98 net::AddressList address_list;
99 if (!StringAndPortToAddressList(address, port, &address_list)) { 99 if (!StringAndPortToAddressList(address, port, &address_list)) {
100 result = net::ERR_ADDRESS_INVALID; 100 result = net::ERR_ADDRESS_INVALID;
101 break; 101 break;
102 } 102 }
103 103
104 socket_.reset( 104 socket_.reset(
105 new net::TCPClientSocket(address_list, NULL, net::NetLog::Source())); 105 new net::TCPClientSocket(address_list, nullptr, net::NetLog::Source()));
106 106
107 connect_callback_ = callback; 107 connect_callback_ = callback;
108 result = socket_->Connect( 108 result = socket_->Connect(
109 base::Bind(&TCPSocket::OnConnectComplete, base::Unretained(this))); 109 base::Bind(&TCPSocket::OnConnectComplete, base::Unretained(this)));
110 } while (false); 110 } while (false);
111 111
112 if (result != net::ERR_IO_PENDING) 112 if (result != net::ERR_IO_PENDING)
113 OnConnectComplete(result); 113 OnConnectComplete(result);
114 } 114 }
115 115
116 void TCPSocket::Disconnect() { 116 void TCPSocket::Disconnect() {
117 is_connected_ = false; 117 is_connected_ = false;
118 if (socket_.get()) 118 if (socket_.get())
119 socket_->Disconnect(); 119 socket_->Disconnect();
120 server_socket_.reset(NULL); 120 server_socket_.reset(nullptr);
121 connect_callback_.Reset(); 121 connect_callback_.Reset();
122 read_callback_.Reset(); 122 read_callback_.Reset();
123 accept_callback_.Reset(); 123 accept_callback_.Reset();
124 accept_socket_.reset(NULL); 124 accept_socket_.reset(nullptr);
125 } 125 }
126 126
127 int TCPSocket::Bind(const std::string& address, int port) { 127 int TCPSocket::Bind(const std::string& address, int port) {
128 return net::ERR_FAILED; 128 return net::ERR_FAILED;
129 } 129 }
130 130
131 void TCPSocket::Read(int count, const ReadCompletionCallback& callback) { 131 void TCPSocket::Read(int count, const ReadCompletionCallback& callback) {
132 DCHECK(!callback.is_null()); 132 DCHECK(!callback.is_null());
133 133
134 if (socket_mode_ != CLIENT) { 134 if (socket_mode_ != CLIENT) {
135 callback.Run(net::ERR_FAILED, NULL); 135 callback.Run(net::ERR_FAILED, nullptr);
136 return; 136 return;
137 } 137 }
138 138
139 if (!read_callback_.is_null()) { 139 if (!read_callback_.is_null()) {
140 callback.Run(net::ERR_IO_PENDING, NULL); 140 callback.Run(net::ERR_IO_PENDING, nullptr);
141 return; 141 return;
142 } 142 }
143 143
144 if (count < 0) { 144 if (count < 0) {
145 callback.Run(net::ERR_INVALID_ARGUMENT, NULL); 145 callback.Run(net::ERR_INVALID_ARGUMENT, nullptr);
146 return; 146 return;
147 } 147 }
148 148
149 if (!socket_.get() || !IsConnected()) { 149 if (!socket_.get() || !IsConnected()) {
150 callback.Run(net::ERR_SOCKET_NOT_CONNECTED, NULL); 150 callback.Run(net::ERR_SOCKET_NOT_CONNECTED, nullptr);
151 return; 151 return;
152 } 152 }
153 153
154 read_callback_ = callback; 154 read_callback_ = callback;
155 scoped_refptr<net::IOBuffer> io_buffer = new net::IOBuffer(count); 155 scoped_refptr<net::IOBuffer> io_buffer = new net::IOBuffer(count);
156 int result = socket_->Read( 156 int result = socket_->Read(
157 io_buffer.get(), 157 io_buffer.get(),
158 count, 158 count,
159 base::Bind( 159 base::Bind(
160 &TCPSocket::OnReadComplete, base::Unretained(this), io_buffer)); 160 &TCPSocket::OnReadComplete, base::Unretained(this), io_buffer));
161 161
162 if (result != net::ERR_IO_PENDING) 162 if (result != net::ERR_IO_PENDING)
163 OnReadComplete(io_buffer, result); 163 OnReadComplete(io_buffer, result);
164 } 164 }
165 165
166 void TCPSocket::RecvFrom(int count, 166 void TCPSocket::RecvFrom(int count,
167 const RecvFromCompletionCallback& callback) { 167 const RecvFromCompletionCallback& callback) {
168 callback.Run(net::ERR_FAILED, NULL, NULL, 0); 168 callback.Run(net::ERR_FAILED, nullptr, nullptr, 0);
169 } 169 }
170 170
171 void TCPSocket::SendTo(scoped_refptr<net::IOBuffer> io_buffer, 171 void TCPSocket::SendTo(scoped_refptr<net::IOBuffer> io_buffer,
172 int byte_count, 172 int byte_count,
173 const std::string& address, 173 const std::string& address,
174 int port, 174 int port,
175 const CompletionCallback& callback) { 175 const CompletionCallback& callback) {
176 callback.Run(net::ERR_FAILED); 176 callback.Run(net::ERR_FAILED);
177 } 177 }
178 178
(...skipping 14 matching lines...) Expand all
193 int backlog, 193 int backlog,
194 std::string* error_msg) { 194 std::string* error_msg) {
195 if (socket_mode_ == CLIENT) { 195 if (socket_mode_ == CLIENT) {
196 *error_msg = kTCPSocketTypeInvalidError; 196 *error_msg = kTCPSocketTypeInvalidError;
197 return net::ERR_NOT_IMPLEMENTED; 197 return net::ERR_NOT_IMPLEMENTED;
198 } 198 }
199 DCHECK(!socket_.get()); 199 DCHECK(!socket_.get());
200 socket_mode_ = SERVER; 200 socket_mode_ = SERVER;
201 201
202 if (!server_socket_.get()) { 202 if (!server_socket_.get()) {
203 server_socket_.reset(new net::TCPServerSocket(NULL, net::NetLog::Source())); 203 server_socket_.reset(
204 new net::TCPServerSocket(nullptr, net::NetLog::Source()));
204 } 205 }
205 206
206 int result = server_socket_->ListenWithAddressAndPort(address, port, backlog); 207 int result = server_socket_->ListenWithAddressAndPort(address, port, backlog);
207 if (result) 208 if (result)
208 *error_msg = kSocketListenError; 209 *error_msg = kSocketListenError;
209 return result; 210 return result;
210 } 211 }
211 212
212 void TCPSocket::Accept(const AcceptCompletionCallback& callback) { 213 void TCPSocket::Accept(const AcceptCompletionCallback& callback) {
213 if (socket_mode_ != SERVER || !server_socket_.get()) { 214 if (socket_mode_ != SERVER || !server_socket_.get()) {
214 callback.Run(net::ERR_FAILED, NULL); 215 callback.Run(net::ERR_FAILED, nullptr);
215 return; 216 return;
216 } 217 }
217 218
218 // Limits to only 1 blocked accept call. 219 // Limits to only 1 blocked accept call.
219 if (!accept_callback_.is_null()) { 220 if (!accept_callback_.is_null()) {
220 callback.Run(net::ERR_FAILED, NULL); 221 callback.Run(net::ERR_FAILED, nullptr);
221 return; 222 return;
222 } 223 }
223 224
224 int result = server_socket_->Accept( 225 int result = server_socket_->Accept(
225 &accept_socket_, 226 &accept_socket_,
226 base::Bind(&TCPSocket::OnAccept, base::Unretained(this))); 227 base::Bind(&TCPSocket::OnAccept, base::Unretained(this)));
227 if (result == net::ERR_IO_PENDING) { 228 if (result == net::ERR_IO_PENDING) {
228 accept_callback_ = callback; 229 accept_callback_ = callback;
229 } else if (result == net::OK) { 230 } else if (result == net::OK) {
230 accept_callback_ = callback; 231 accept_callback_ = callback;
231 this->OnAccept(result); 232 this->OnAccept(result);
232 } else { 233 } else {
233 callback.Run(result, NULL); 234 callback.Run(result, nullptr);
234 } 235 }
235 } 236 }
236 237
237 bool TCPSocket::IsConnected() { 238 bool TCPSocket::IsConnected() {
238 RefreshConnectionStatus(); 239 RefreshConnectionStatus();
239 return is_connected_; 240 return is_connected_;
240 } 241 }
241 242
242 bool TCPSocket::GetPeerAddress(net::IPEndPoint* address) { 243 bool TCPSocket::GetPeerAddress(net::IPEndPoint* address) {
243 if (!socket_.get()) 244 if (!socket_.get())
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 read_callback_.Run(result, io_buffer); 293 read_callback_.Run(result, io_buffer);
293 read_callback_.Reset(); 294 read_callback_.Reset();
294 } 295 }
295 296
296 void TCPSocket::OnAccept(int result) { 297 void TCPSocket::OnAccept(int result) {
297 DCHECK(!accept_callback_.is_null()); 298 DCHECK(!accept_callback_.is_null());
298 if (result == net::OK && accept_socket_.get()) { 299 if (result == net::OK && accept_socket_.get()) {
299 accept_callback_.Run( 300 accept_callback_.Run(
300 result, static_cast<net::TCPClientSocket*>(accept_socket_.release())); 301 result, static_cast<net::TCPClientSocket*>(accept_socket_.release()));
301 } else { 302 } else {
302 accept_callback_.Run(result, NULL); 303 accept_callback_.Run(result, nullptr);
303 } 304 }
304 accept_callback_.Reset(); 305 accept_callback_.Reset();
305 } 306 }
306 307
307 void TCPSocket::Release() { 308 void TCPSocket::Release() {
308 // Release() is only invoked when the underlying sockets are taken (via 309 // Release() is only invoked when the underlying sockets are taken (via
309 // ClientStream()) by TLSSocket. TLSSocket only supports CLIENT-mode 310 // ClientStream()) by TLSSocket. TLSSocket only supports CLIENT-mode
310 // sockets. 311 // sockets.
311 DCHECK(!server_socket_.release() && !accept_socket_.release() && 312 DCHECK(!server_socket_.release() && !accept_socket_.release() &&
312 socket_mode_ == CLIENT) 313 socket_mode_ == CLIENT)
313 << "Called in server mode."; 314 << "Called in server mode.";
314 315
315 // Release() doesn't disconnect the underlying sockets, but it does 316 // Release() doesn't disconnect the underlying sockets, but it does
316 // disconnect them from this TCPSocket. 317 // disconnect them from this TCPSocket.
317 is_connected_ = false; 318 is_connected_ = false;
318 319
319 connect_callback_.Reset(); 320 connect_callback_.Reset();
320 read_callback_.Reset(); 321 read_callback_.Reset();
321 accept_callback_.Reset(); 322 accept_callback_.Reset();
322 323
323 DCHECK(socket_.get()) << "Called on null client socket."; 324 DCHECK(socket_.get()) << "Called on null client socket.";
324 ignore_result(socket_.release()); 325 ignore_result(socket_.release());
325 } 326 }
326 327
327 net::TCPClientSocket* TCPSocket::ClientStream() { 328 net::TCPClientSocket* TCPSocket::ClientStream() {
328 if (socket_mode_ != CLIENT || GetSocketType() != TYPE_TCP) 329 if (socket_mode_ != CLIENT || GetSocketType() != TYPE_TCP)
329 return NULL; 330 return nullptr;
330 return socket_.get(); 331 return socket_.get();
331 } 332 }
332 333
333 bool TCPSocket::HasPendingRead() const { 334 bool TCPSocket::HasPendingRead() const {
334 return !read_callback_.is_null(); 335 return !read_callback_.is_null();
335 } 336 }
336 337
337 ResumableTCPSocket::ResumableTCPSocket(const std::string& owner_extension_id) 338 ResumableTCPSocket::ResumableTCPSocket(const std::string& owner_extension_id)
338 : TCPSocket(owner_extension_id), 339 : TCPSocket(owner_extension_id),
339 persistent_(false), 340 persistent_(false),
(...skipping 10 matching lines...) Expand all
350 351
351 bool ResumableTCPSocket::IsPersistent() const { return persistent(); } 352 bool ResumableTCPSocket::IsPersistent() const { return persistent(); }
352 353
353 ResumableTCPServerSocket::ResumableTCPServerSocket( 354 ResumableTCPServerSocket::ResumableTCPServerSocket(
354 const std::string& owner_extension_id) 355 const std::string& owner_extension_id)
355 : TCPSocket(owner_extension_id), persistent_(false), paused_(false) {} 356 : TCPSocket(owner_extension_id), persistent_(false), paused_(false) {}
356 357
357 bool ResumableTCPServerSocket::IsPersistent() const { return persistent(); } 358 bool ResumableTCPServerSocket::IsPersistent() const { return persistent(); }
358 359
359 } // namespace extensions 360 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698