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 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
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 19ba0df..2ecc696 100644
--- a/src/options.h
+++ b/src/options.h
@@ -22,6 +22,15 @@ typedef t_opt *p_opt;
22int opt_set_dontroute(lua_State *L, p_socket ps); 22int 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_tcp_nodelay(lua_State *L, p_socket ps); 24int opt_set_tcp_nodelay(lua_State *L, p_socket ps);
25#ifdef TCP_KEEPIDLE
26int opt_set_tcp_keepidle(lua_State *L, p_socket ps);
27#endif
28#ifdef TCP_KEEPCNT
29int opt_set_tcp_keepcnt(lua_State *L, p_socket ps);
30#endif
31#ifdef TCP_KEEPINTVL
32int opt_set_tcp_keepintvl(lua_State *L, p_socket ps);
33#endif
25int opt_set_keepalive(lua_State *L, p_socket ps); 34int opt_set_keepalive(lua_State *L, p_socket ps);
26int opt_set_linger(lua_State *L, p_socket ps); 35int opt_set_linger(lua_State *L, p_socket ps);
27int opt_set_reuseaddr(lua_State *L, p_socket ps); 36int opt_set_reuseaddr(lua_State *L, p_socket ps);
@@ -44,6 +53,15 @@ int opt_get_broadcast(lua_State *L, p_socket ps);
44int opt_get_reuseaddr(lua_State *L, p_socket ps); 53int opt_get_reuseaddr(lua_State *L, p_socket ps);
45int opt_get_reuseport(lua_State *L, p_socket ps); 54int opt_get_reuseport(lua_State *L, p_socket ps);
46int opt_get_tcp_nodelay(lua_State *L, p_socket ps); 55int opt_get_tcp_nodelay(lua_State *L, p_socket ps);
56#ifdef TCP_KEEPIDLE
57int opt_get_tcp_keepidle(lua_State *L, p_socket ps);
58#endif
59#ifdef TCP_KEEPCNT
60int opt_get_tcp_keepcnt(lua_State *L, p_socket ps);
61#endif
62#ifdef TCP_KEEPINTVL
63int opt_get_tcp_keepintvl(lua_State *L, p_socket ps);
64#endif
47int opt_get_keepalive(lua_State *L, p_socket ps); 65int opt_get_keepalive(lua_State *L, p_socket ps);
48int opt_get_linger(lua_State *L, p_socket ps); 66int opt_get_linger(lua_State *L, p_socket ps);
49int opt_get_ip_multicast_loop(lua_State *L, p_socket ps); 67int opt_get_ip_multicast_loop(lua_State *L, p_socket ps);
diff --git a/src/tcp.c b/src/tcp.c
index ef9ee6f..79a680b 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -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}