diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/options.c | 36 | ||||
-rw-r--r-- | src/options.h | 18 | ||||
-rw-r--r-- | src/tcp.c | 18 |
3 files changed, 72 insertions, 0 deletions
diff --git a/src/options.c b/src/options.c index fabfe8c..90e6d2d 100644 --- a/src/options.c +++ b/src/options.c | |||
@@ -90,6 +90,42 @@ int opt_get_tcp_nodelay(lua_State *L, p_socket ps) | |||
90 | return opt_getboolean(L, ps, IPPROTO_TCP, TCP_NODELAY); | 90 | return opt_getboolean(L, ps, IPPROTO_TCP, TCP_NODELAY); |
91 | } | 91 | } |
92 | 92 | ||
93 | #ifdef TCP_KEEPIDLE | ||
94 | int opt_get_tcp_keepidle(lua_State *L, p_socket ps) | ||
95 | { | ||
96 | return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPIDLE); | ||
97 | } | ||
98 | |||
99 | int opt_set_tcp_keepidle(lua_State *L, p_socket ps) | ||
100 | { | ||
101 | return opt_setint(L, ps, IPPROTO_TCP, TCP_KEEPIDLE); | ||
102 | } | ||
103 | #endif | ||
104 | |||
105 | #ifdef TCP_KEEPCNT | ||
106 | int opt_get_tcp_keepcnt(lua_State *L, p_socket ps) | ||
107 | { | ||
108 | return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPCNT); | ||
109 | } | ||
110 | |||
111 | int opt_set_tcp_keepcnt(lua_State *L, p_socket ps) | ||
112 | { | ||
113 | return opt_setint(L, ps, IPPROTO_TCP, TCP_KEEPCNT); | ||
114 | } | ||
115 | #endif | ||
116 | |||
117 | #ifdef TCP_KEEPINTVL | ||
118 | int opt_get_tcp_keepintvl(lua_State *L, p_socket ps) | ||
119 | { | ||
120 | return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPINTVL); | ||
121 | } | ||
122 | |||
123 | int opt_set_tcp_keepintvl(lua_State *L, p_socket ps) | ||
124 | { | ||
125 | return opt_setint(L, ps, IPPROTO_TCP, TCP_KEEPINTVL); | ||
126 | } | ||
127 | #endif | ||
128 | |||
93 | int opt_set_keepalive(lua_State *L, p_socket ps) | 129 | int opt_set_keepalive(lua_State *L, p_socket ps) |
94 | { | 130 | { |
95 | return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); | 131 | return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); |
diff --git a/src/options.h b/src/options.h index 19ba0df..2ecc696 100644 --- a/src/options.h +++ b/src/options.h | |||
@@ -22,6 +22,15 @@ typedef t_opt *p_opt; | |||
22 | int opt_set_dontroute(lua_State *L, p_socket ps); | 22 | int opt_set_dontroute(lua_State *L, p_socket ps); |
23 | int opt_set_broadcast(lua_State *L, p_socket ps); | 23 | int opt_set_broadcast(lua_State *L, p_socket ps); |
24 | int opt_set_tcp_nodelay(lua_State *L, p_socket ps); | 24 | int opt_set_tcp_nodelay(lua_State *L, p_socket ps); |
25 | #ifdef TCP_KEEPIDLE | ||
26 | int opt_set_tcp_keepidle(lua_State *L, p_socket ps); | ||
27 | #endif | ||
28 | #ifdef TCP_KEEPCNT | ||
29 | int opt_set_tcp_keepcnt(lua_State *L, p_socket ps); | ||
30 | #endif | ||
31 | #ifdef TCP_KEEPINTVL | ||
32 | int opt_set_tcp_keepintvl(lua_State *L, p_socket ps); | ||
33 | #endif | ||
25 | int opt_set_keepalive(lua_State *L, p_socket ps); | 34 | int opt_set_keepalive(lua_State *L, p_socket ps); |
26 | int opt_set_linger(lua_State *L, p_socket ps); | 35 | int opt_set_linger(lua_State *L, p_socket ps); |
27 | int opt_set_reuseaddr(lua_State *L, p_socket ps); | 36 | int opt_set_reuseaddr(lua_State *L, p_socket ps); |
@@ -44,6 +53,15 @@ int opt_get_broadcast(lua_State *L, p_socket ps); | |||
44 | int opt_get_reuseaddr(lua_State *L, p_socket ps); | 53 | int opt_get_reuseaddr(lua_State *L, p_socket ps); |
45 | int opt_get_reuseport(lua_State *L, p_socket ps); | 54 | int opt_get_reuseport(lua_State *L, p_socket ps); |
46 | int opt_get_tcp_nodelay(lua_State *L, p_socket ps); | 55 | int opt_get_tcp_nodelay(lua_State *L, p_socket ps); |
56 | #ifdef TCP_KEEPIDLE | ||
57 | int opt_get_tcp_keepidle(lua_State *L, p_socket ps); | ||
58 | #endif | ||
59 | #ifdef TCP_KEEPCNT | ||
60 | int opt_get_tcp_keepcnt(lua_State *L, p_socket ps); | ||
61 | #endif | ||
62 | #ifdef TCP_KEEPINTVL | ||
63 | int opt_get_tcp_keepintvl(lua_State *L, p_socket ps); | ||
64 | #endif | ||
47 | int opt_get_keepalive(lua_State *L, p_socket ps); | 65 | int opt_get_keepalive(lua_State *L, p_socket ps); |
48 | int opt_get_linger(lua_State *L, p_socket ps); | 66 | int opt_get_linger(lua_State *L, p_socket ps); |
49 | int opt_get_ip_multicast_loop(lua_State *L, p_socket ps); | 67 | int opt_get_ip_multicast_loop(lua_State *L, p_socket ps); |
@@ -77,6 +77,15 @@ static t_opt optget[] = { | |||
77 | {"reuseaddr", opt_get_reuseaddr}, | 77 | {"reuseaddr", opt_get_reuseaddr}, |
78 | {"reuseport", opt_get_reuseport}, | 78 | {"reuseport", opt_get_reuseport}, |
79 | {"tcp-nodelay", opt_get_tcp_nodelay}, | 79 | {"tcp-nodelay", opt_get_tcp_nodelay}, |
80 | #ifdef TCP_KEEPIDLE | ||
81 | {"tcp-keepidle", opt_get_tcp_keepidle}, | ||
82 | #endif | ||
83 | #ifdef TCP_KEEPCNT | ||
84 | {"tcp-keepcnt", opt_get_tcp_keepcnt}, | ||
85 | #endif | ||
86 | #ifdef TCP_KEEPINTVL | ||
87 | {"tcp-keepintvl", opt_get_tcp_keepintvl}, | ||
88 | #endif | ||
80 | {"linger", opt_get_linger}, | 89 | {"linger", opt_get_linger}, |
81 | {"error", opt_get_error}, | 90 | {"error", opt_get_error}, |
82 | {NULL, NULL} | 91 | {NULL, NULL} |
@@ -87,6 +96,15 @@ static t_opt optset[] = { | |||
87 | {"reuseaddr", opt_set_reuseaddr}, | 96 | {"reuseaddr", opt_set_reuseaddr}, |
88 | {"reuseport", opt_set_reuseport}, | 97 | {"reuseport", opt_set_reuseport}, |
89 | {"tcp-nodelay", opt_set_tcp_nodelay}, | 98 | {"tcp-nodelay", opt_set_tcp_nodelay}, |
99 | #ifdef TCP_KEEPIDLE | ||
100 | {"tcp-keepidle", opt_set_tcp_keepidle}, | ||
101 | #endif | ||
102 | #ifdef TCP_KEEPCNT | ||
103 | {"tcp-keepcnt", opt_set_tcp_keepcnt}, | ||
104 | #endif | ||
105 | #ifdef TCP_KEEPINTVL | ||
106 | {"tcp-keepintvl", opt_set_tcp_keepintvl}, | ||
107 | #endif | ||
90 | {"ipv6-v6only", opt_set_ip6_v6only}, | 108 | {"ipv6-v6only", opt_set_ip6_v6only}, |
91 | {"linger", opt_set_linger}, | 109 | {"linger", opt_set_linger}, |
92 | {NULL, NULL} | 110 | {NULL, NULL} |