OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/tcp_client_socket.h" | 5 #include "net/socket/tcp_client_socket.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <netdb.h> | 9 #include <netdb.h> |
10 #include <sys/socket.h> | 10 #include <sys/socket.h> |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 return error == 0; | 45 return error == 0; |
46 } | 46 } |
47 | 47 |
48 // SetTCPKeepAlive sets SO_KEEPALIVE. | 48 // SetTCPKeepAlive sets SO_KEEPALIVE. |
49 bool SetTCPKeepAlive(int fd, bool enable, int delay) { | 49 bool SetTCPKeepAlive(int fd, bool enable, int delay) { |
50 int on = enable ? 1 : 0; | 50 int on = enable ? 1 : 0; |
51 if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on))) { | 51 if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on))) { |
52 PLOG(ERROR) << "Failed to set SO_KEEPALIVE on fd: " << fd; | 52 PLOG(ERROR) << "Failed to set SO_KEEPALIVE on fd: " << fd; |
53 return false; | 53 return false; |
54 } | 54 } |
55 #if defined(OS_LINUX) | 55 #if defined(OS_LINUX) || defined(OS_ANDROID) |
56 // Set seconds until first TCP keep alive. | 56 // Set seconds until first TCP keep alive. |
57 if (setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) { | 57 if (setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) { |
58 PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd; | 58 PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd; |
59 return false; | 59 return false; |
60 } | 60 } |
61 // Set seconds between TCP keep alives. | 61 // Set seconds between TCP keep alives. |
62 if (setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) { | 62 if (setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) { |
63 PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd; | 63 PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd; |
64 return false; | 64 return false; |
65 } | 65 } |
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
783 | 783 |
784 NextProto TCPClientSocketLibevent::GetNegotiatedProtocol() const { | 784 NextProto TCPClientSocketLibevent::GetNegotiatedProtocol() const { |
785 return kProtoUnknown; | 785 return kProtoUnknown; |
786 } | 786 } |
787 | 787 |
788 bool TCPClientSocketLibevent::GetSSLInfo(SSLInfo* ssl_info) { | 788 bool TCPClientSocketLibevent::GetSSLInfo(SSLInfo* ssl_info) { |
789 return false; | 789 return false; |
790 } | 790 } |
791 | 791 |
792 } // namespace net | 792 } // namespace net |
OLD | NEW |