| 1047 | } |
| 1048 | |
| 1049 | void GetKeepaliveValue(int fd, |
| 1050 | int& keepalive, |
| 1051 | int& keepalive_idle, |
| 1052 | int& keepalive_interval, |
| 1053 | int& keepalive_count) { |
| 1054 | { |
| 1055 | socklen_t len = sizeof(keepalive); |
| 1056 | ASSERT_EQ(0, getsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &keepalive, &len)); |
| 1057 | |
| 1058 | } |
| 1059 | |
| 1060 | { |
| 1061 | socklen_t len = sizeof(keepalive_idle); |
| 1062 | #if defined(OS_MACOSX) |
| 1063 | ASSERT_EQ(0, getsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &keepalive_idle, &len)); |
| 1064 | #elif defined(OS_LINUX) |
| 1065 | ASSERT_EQ(0, getsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &keepalive_idle, &len)); |
| 1066 | #endif |
| 1067 | } |
| 1068 | |
| 1069 | { |
| 1070 | socklen_t len = sizeof(keepalive_interval); |
| 1071 | #if defined(OS_MACOSX) |
| 1072 | ASSERT_EQ(0, getsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &keepalive_interval, &len)); |
| 1073 | #elif defined(OS_LINUX) |
| 1074 | ASSERT_EQ(0, getsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &keepalive_interval, &len)); |
| 1075 | #endif |
| 1076 | } |
| 1077 | |
| 1078 | { |
| 1079 | socklen_t len = sizeof(keepalive_count); |
| 1080 | #if defined(OS_MACOSX) |
| 1081 | ASSERT_EQ(0, getsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &keepalive_count, &len)); |
| 1082 | #elif defined(OS_LINUX) |
| 1083 | ASSERT_EQ(0, getsockopt(fd, SOL_TCP, TCP_KEEPCNT, &keepalive_count, &len)); |
| 1084 | #endif |
| 1085 | } |
| 1086 | } |
| 1087 | |
| 1088 | void CheckNoKeepalive(int fd) { |
| 1089 | int keepalive = -1; |
no outgoing calls
no test coverage detected