aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/options.c36
-rw-r--r--src/options.h18
-rw-r--r--src/tcp.c18
3 files changed, 72 insertions, 0 deletions
diff --git a/src/options.c b/src/options.c
index 8ac2a14..28fc08a 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
94int opt_get_tcp_keepidle(lua_State *L, p_socket ps)
95{
96 return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPIDLE);
97}
98
99int 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
106int opt_get_tcp_keepcnt(lua_State *L, p_socket ps)
107{
108 return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPCNT);
109}
110
111int 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
118int opt_get_tcp_keepintvl(lua_State *L, p_socket ps)
119{
120 return opt_getint(L, ps, IPPROTO_TCP, TCP_KEEPINTVL);
121}
122
123int 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
93int opt_set_keepalive(lua_State *L, p_socket ps) 129int 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 5657a06..2b6697b 100644
--- a/src/options.h
+++ b/src/options.h
@@ -23,6 +23,15 @@ int opt_set_dontroute(lua_State *L, p_socket ps);
23int opt_set_broadcast(lua_State *L, p_socket ps); 23int opt_set_broadcast(lua_State *L, p_socket ps);
24int opt_set_reuseaddr(lua_State *L, p_socket ps); 24int opt_set_reuseaddr(lua_State *L, p_socket ps);
25int opt_set_tcp_nodelay(lua_State *L, p_socket ps); 25int opt_set_tcp_nodelay(lua_State *L, p_socket ps);
26#ifdef TCP_KEEPIDLE
27int opt_set_tcp_keepidle(lua_State *L, p_socket ps);
28#endif
29#ifdef TCP_KEEPCNT
30int opt_set_tcp_keepcnt(lua_State *L, p_socket ps);
31#endif
32#ifdef TCP_KEEPINTVL
33int opt_set_tcp_keepintvl(lua_State *L, p_socket ps);
34#endif
26int opt_set_keepalive(lua_State *L, p_socket ps); 35int opt_set_keepalive(lua_State *L, p_socket ps);
27int opt_set_linger(lua_State *L, p_socket ps); 36int opt_set_linger(lua_State *L, p_socket ps);
28int opt_set_reuseaddr(lua_State *L, p_socket ps); 37int opt_set_reuseaddr(lua_State *L, p_socket ps);
@@ -42,6 +51,15 @@ int opt_set_ip6_v6only(lua_State *L, p_socket ps);
42/* supported options for getoption */ 51/* supported options for getoption */
43int opt_get_reuseaddr(lua_State *L, p_socket ps); 52int opt_get_reuseaddr(lua_State *L, p_socket ps);
44int opt_get_tcp_nodelay(lua_State *L, p_socket ps); 53int opt_get_tcp_nodelay(lua_State *L, p_socket ps);
54#ifdef TCP_KEEPIDLE
55int opt_get_tcp_keepidle(lua_State *L, p_socket ps);
56#endif
57#ifdef TCP_KEEPCNT
58int opt_get_tcp_keepcnt(lua_State *L, p_socket ps);
59#endif
60#ifdef TCP_KEEPINTVL
61int opt_get_tcp_keepintvl(lua_State *L, p_socket ps);
62#endif
45int opt_get_keepalive(lua_State *L, p_socket ps); 63int opt_get_keepalive(lua_State *L, p_socket ps);
46int opt_get_linger(lua_State *L, p_socket ps); 64int opt_get_linger(lua_State *L, p_socket ps);
47int opt_get_reuseaddr(lua_State *L, p_socket ps); 65int opt_get_reuseaddr(lua_State *L, p_socket ps);
diff --git a/src/tcp.c b/src/tcp.c
index 6594bda..3af9a39 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -72,6 +72,15 @@ static t_opt optget[] = {
72 {"keepalive", opt_get_keepalive}, 72 {"keepalive", opt_get_keepalive},
73 {"reuseaddr", opt_get_reuseaddr}, 73 {"reuseaddr", opt_get_reuseaddr},
74 {"tcp-nodelay", opt_get_tcp_nodelay}, 74 {"tcp-nodelay", opt_get_tcp_nodelay},
75#ifdef TCP_KEEPIDLE
76 {"tcp-keepidle", opt_get_tcp_keepidle},
77#endif
78#ifdef TCP_KEEPCNT
79 {"tcp-keepcnt", opt_get_tcp_keepcnt},
80#endif
81#ifdef TCP_KEEPINTVL
82 {"tcp-keepintvl", opt_get_tcp_keepintvl},
83#endif
75 {"linger", opt_get_linger}, 84 {"linger", opt_get_linger},
76 {"error", opt_get_error}, 85 {"error", opt_get_error},
77 {NULL, NULL} 86 {NULL, NULL}
@@ -81,6 +90,15 @@ static t_opt optset[] = {
81 {"keepalive", opt_set_keepalive}, 90 {"keepalive", opt_set_keepalive},
82 {"reuseaddr", opt_set_reuseaddr}, 91 {"reuseaddr", opt_set_reuseaddr},
83 {"tcp-nodelay", opt_set_tcp_nodelay}, 92 {"tcp-nodelay", opt_set_tcp_nodelay},
93#ifdef TCP_KEEPIDLE
94 {"tcp-keepidle", opt_set_tcp_keepidle},
95#endif
96#ifdef TCP_KEEPCNT
97 {"tcp-keepcnt", opt_set_tcp_keepcnt},
98#endif
99#ifdef TCP_KEEPINTVL
100 {"tcp-keepintvl", opt_set_tcp_keepintvl},
101#endif
84 {"ipv6-v6only", opt_set_ip6_v6only}, 102 {"ipv6-v6only", opt_set_ip6_v6only},
85 {"linger", opt_set_linger}, 103 {"linger", opt_set_linger},
86 {NULL, NULL} 104 {NULL, NULL}