| OLD | NEW |
| 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 "net/socket/socket_posix.h" | 5 #include "net/socket/socket_posix.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <netinet/in.h> | 8 #include <netinet/in.h> |
| 9 #include <sys/socket.h> | 9 #include <sys/socket.h> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 | 135 |
| 136 int rv = listen(socket_fd_, backlog); | 136 int rv = listen(socket_fd_, backlog); |
| 137 if (rv < 0) { | 137 if (rv < 0) { |
| 138 PLOG(ERROR) << "listen() returned an error, errno=" << errno; | 138 PLOG(ERROR) << "listen() returned an error, errno=" << errno; |
| 139 return MapSystemError(errno); | 139 return MapSystemError(errno); |
| 140 } | 140 } |
| 141 | 141 |
| 142 return OK; | 142 return OK; |
| 143 } | 143 } |
| 144 | 144 |
| 145 int SocketPosix::Accept(scoped_ptr<SocketPosix>* socket, | 145 int SocketPosix::Accept(std::unique_ptr<SocketPosix>* socket, |
| 146 const CompletionCallback& callback) { | 146 const CompletionCallback& callback) { |
| 147 DCHECK(thread_checker_.CalledOnValidThread()); | 147 DCHECK(thread_checker_.CalledOnValidThread()); |
| 148 DCHECK_NE(kInvalidSocket, socket_fd_); | 148 DCHECK_NE(kInvalidSocket, socket_fd_); |
| 149 DCHECK(accept_callback_.is_null()); | 149 DCHECK(accept_callback_.is_null()); |
| 150 DCHECK(socket); | 150 DCHECK(socket); |
| 151 DCHECK(!callback.is_null()); | 151 DCHECK(!callback.is_null()); |
| 152 | 152 |
| 153 int rv = DoAccept(socket); | 153 int rv = DoAccept(socket); |
| 154 if (rv != ERR_IO_PENDING) | 154 if (rv != ERR_IO_PENDING) |
| 155 return rv; | 155 return rv; |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 | 360 |
| 361 void SocketPosix::OnFileCanWriteWithoutBlocking(int fd) { | 361 void SocketPosix::OnFileCanWriteWithoutBlocking(int fd) { |
| 362 DCHECK(!write_callback_.is_null()); | 362 DCHECK(!write_callback_.is_null()); |
| 363 if (waiting_connect_) { | 363 if (waiting_connect_) { |
| 364 ConnectCompleted(); | 364 ConnectCompleted(); |
| 365 } else { | 365 } else { |
| 366 WriteCompleted(); | 366 WriteCompleted(); |
| 367 } | 367 } |
| 368 } | 368 } |
| 369 | 369 |
| 370 int SocketPosix::DoAccept(scoped_ptr<SocketPosix>* socket) { | 370 int SocketPosix::DoAccept(std::unique_ptr<SocketPosix>* socket) { |
| 371 SockaddrStorage new_peer_address; | 371 SockaddrStorage new_peer_address; |
| 372 int new_socket = HANDLE_EINTR(accept(socket_fd_, | 372 int new_socket = HANDLE_EINTR(accept(socket_fd_, |
| 373 new_peer_address.addr, | 373 new_peer_address.addr, |
| 374 &new_peer_address.addr_len)); | 374 &new_peer_address.addr_len)); |
| 375 if (new_socket < 0) | 375 if (new_socket < 0) |
| 376 return MapAcceptError(errno); | 376 return MapAcceptError(errno); |
| 377 | 377 |
| 378 scoped_ptr<SocketPosix> accepted_socket(new SocketPosix); | 378 std::unique_ptr<SocketPosix> accepted_socket(new SocketPosix); |
| 379 int rv = accepted_socket->AdoptConnectedSocket(new_socket, new_peer_address); | 379 int rv = accepted_socket->AdoptConnectedSocket(new_socket, new_peer_address); |
| 380 if (rv != OK) | 380 if (rv != OK) |
| 381 return rv; | 381 return rv; |
| 382 | 382 |
| 383 *socket = std::move(accepted_socket); | 383 *socket = std::move(accepted_socket); |
| 384 return OK; | 384 return OK; |
| 385 } | 385 } |
| 386 | 386 |
| 387 void SocketPosix::AcceptCompleted() { | 387 void SocketPosix::AcceptCompleted() { |
| 388 DCHECK(accept_socket_); | 388 DCHECK(accept_socket_); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 write_buf_ = NULL; | 480 write_buf_ = NULL; |
| 481 write_buf_len_ = 0; | 481 write_buf_len_ = 0; |
| 482 write_callback_.Reset(); | 482 write_callback_.Reset(); |
| 483 } | 483 } |
| 484 | 484 |
| 485 waiting_connect_ = false; | 485 waiting_connect_ = false; |
| 486 peer_address_.reset(); | 486 peer_address_.reset(); |
| 487 } | 487 } |
| 488 | 488 |
| 489 } // namespace net | 489 } // namespace net |
| OLD | NEW |