aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options.c20
-rw-r--r--src/options.h4
-rw-r--r--src/tcp.c4
-rw-r--r--src/udp.c4
4 files changed, 32 insertions, 0 deletions
diff --git a/src/options.c b/src/options.c
index 90e6d2d..bbadec3 100644
--- a/src/options.c
+++ b/src/options.c
@@ -151,6 +151,26 @@ int opt_set_broadcast(lua_State *L, p_socket ps)
151 return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST); 151 return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
152} 152}
153 153
154int opt_set_recv_buf_size(lua_State *L, p_socket ps)
155{
156 return opt_setint(L, ps, SOL_SOCKET, SO_RCVBUF);
157}
158
159int opt_get_recv_buf_size(lua_State *L, p_socket ps)
160{
161 return opt_getint(L, ps, SOL_SOCKET, SO_RCVBUF);
162}
163
164int opt_get_send_buf_size(lua_State *L, p_socket ps)
165{
166 return opt_getint(L, ps, SOL_SOCKET, SO_SNDBUF);
167}
168
169int opt_set_send_buf_size(lua_State *L, p_socket ps)
170{
171 return opt_setint(L, ps, SOL_SOCKET, SO_SNDBUF);
172}
173
154int opt_get_broadcast(lua_State *L, p_socket ps) 174int opt_get_broadcast(lua_State *L, p_socket ps)
155{ 175{
156 return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST); 176 return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
diff --git a/src/options.h b/src/options.h
index 2ecc696..fb82c4d 100644
--- a/src/options.h
+++ b/src/options.h
@@ -46,6 +46,8 @@ int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps);
46int opt_set_ip6_add_membership(lua_State *L, p_socket ps); 46int opt_set_ip6_add_membership(lua_State *L, p_socket ps);
47int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); 47int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps);
48int opt_set_ip6_v6only(lua_State *L, p_socket ps); 48int opt_set_ip6_v6only(lua_State *L, p_socket ps);
49int opt_set_recv_buf_size(lua_State *L, p_socket ps);
50int opt_set_send_buf_size(lua_State *L, p_socket ps);
49 51
50/* supported options for getoption */ 52/* supported options for getoption */
51int opt_get_dontroute(lua_State *L, p_socket ps); 53int opt_get_dontroute(lua_State *L, p_socket ps);
@@ -72,6 +74,8 @@ int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps);
72int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); 74int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps);
73int opt_get_ip6_v6only(lua_State *L, p_socket ps); 75int opt_get_ip6_v6only(lua_State *L, p_socket ps);
74int opt_get_reuseport(lua_State *L, p_socket ps); 76int opt_get_reuseport(lua_State *L, p_socket ps);
77int opt_get_recv_buf_size(lua_State *L, p_socket ps);
78int opt_get_send_buf_size(lua_State *L, p_socket ps);
75 79
76/* invokes the appropriate option handler */ 80/* invokes the appropriate option handler */
77int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); 81int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps);
diff --git a/src/tcp.c b/src/tcp.c
index 79a680b..c7384b4 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -88,6 +88,8 @@ static t_opt optget[] = {
88#endif 88#endif
89 {"linger", opt_get_linger}, 89 {"linger", opt_get_linger},
90 {"error", opt_get_error}, 90 {"error", opt_get_error},
91 {"recv-buffer-size", opt_get_recv_buf_size},
92 {"send-buffer-size", opt_get_send_buf_size},
91 {NULL, NULL} 93 {NULL, NULL}
92}; 94};
93 95
@@ -107,6 +109,8 @@ static t_opt optset[] = {
107#endif 109#endif
108 {"ipv6-v6only", opt_set_ip6_v6only}, 110 {"ipv6-v6only", opt_set_ip6_v6only},
109 {"linger", opt_set_linger}, 111 {"linger", opt_set_linger},
112 {"recv-buffer-size", opt_set_recv_buf_size},
113 {"send-buffer-size", opt_set_send_buf_size},
110 {NULL, NULL} 114 {NULL, NULL}
111}; 115};
112 116
diff --git a/src/udp.c b/src/udp.c
index 605c195..037f9a4 100644
--- a/src/udp.c
+++ b/src/udp.c
@@ -88,6 +88,8 @@ static t_opt optset[] = {
88 {"ipv6-add-membership", opt_set_ip6_add_membership}, 88 {"ipv6-add-membership", opt_set_ip6_add_membership},
89 {"ipv6-drop-membership", opt_set_ip6_drop_membersip}, 89 {"ipv6-drop-membership", opt_set_ip6_drop_membersip},
90 {"ipv6-v6only", opt_set_ip6_v6only}, 90 {"ipv6-v6only", opt_set_ip6_v6only},
91 {"recv-buffer-size", opt_set_recv_buf_size},
92 {"send-buffer-size", opt_set_send_buf_size},
91 {NULL, NULL} 93 {NULL, NULL}
92}; 94};
93 95
@@ -104,6 +106,8 @@ static t_opt optget[] = {
104 {"ipv6-multicast-hops", opt_get_ip6_unicast_hops}, 106 {"ipv6-multicast-hops", opt_get_ip6_unicast_hops},
105 {"ipv6-multicast-loop", opt_get_ip6_multicast_loop}, 107 {"ipv6-multicast-loop", opt_get_ip6_multicast_loop},
106 {"ipv6-v6only", opt_get_ip6_v6only}, 108 {"ipv6-v6only", opt_get_ip6_v6only},
109 {"recv-buffer-size", opt_get_recv_buf_size},
110 {"send-buffer-size", opt_get_send_buf_size},
107 {NULL, NULL} 111 {NULL, NULL}
108}; 112};
109 113