diff options
| -rw-r--r-- | src/options.c | 20 | ||||
| -rw-r--r-- | src/options.h | 4 | ||||
| -rw-r--r-- | src/tcp.c | 4 | ||||
| -rw-r--r-- | src/udp.c | 4 |
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 | ||
| 154 | int opt_set_recv_buf_size(lua_State *L, p_socket ps) | ||
| 155 | { | ||
| 156 | return opt_setint(L, ps, SOL_SOCKET, SO_RCVBUF); | ||
| 157 | } | ||
| 158 | |||
| 159 | int opt_get_recv_buf_size(lua_State *L, p_socket ps) | ||
| 160 | { | ||
| 161 | return opt_getint(L, ps, SOL_SOCKET, SO_RCVBUF); | ||
| 162 | } | ||
| 163 | |||
| 164 | int opt_get_send_buf_size(lua_State *L, p_socket ps) | ||
| 165 | { | ||
| 166 | return opt_getint(L, ps, SOL_SOCKET, SO_SNDBUF); | ||
| 167 | } | ||
| 168 | |||
| 169 | int opt_set_send_buf_size(lua_State *L, p_socket ps) | ||
| 170 | { | ||
| 171 | return opt_setint(L, ps, SOL_SOCKET, SO_SNDBUF); | ||
| 172 | } | ||
| 173 | |||
| 154 | int opt_get_broadcast(lua_State *L, p_socket ps) | 174 | int 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); | |||
| 46 | int opt_set_ip6_add_membership(lua_State *L, p_socket ps); | 46 | int opt_set_ip6_add_membership(lua_State *L, p_socket ps); |
| 47 | int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); | 47 | int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); |
| 48 | int opt_set_ip6_v6only(lua_State *L, p_socket ps); | 48 | int opt_set_ip6_v6only(lua_State *L, p_socket ps); |
| 49 | int opt_set_recv_buf_size(lua_State *L, p_socket ps); | ||
| 50 | int opt_set_send_buf_size(lua_State *L, p_socket ps); | ||
| 49 | 51 | ||
| 50 | /* supported options for getoption */ | 52 | /* supported options for getoption */ |
| 51 | int opt_get_dontroute(lua_State *L, p_socket ps); | 53 | int 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); | |||
| 72 | int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); | 74 | int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); |
| 73 | int opt_get_ip6_v6only(lua_State *L, p_socket ps); | 75 | int opt_get_ip6_v6only(lua_State *L, p_socket ps); |
| 74 | int opt_get_reuseport(lua_State *L, p_socket ps); | 76 | int opt_get_reuseport(lua_State *L, p_socket ps); |
| 77 | int opt_get_recv_buf_size(lua_State *L, p_socket ps); | ||
| 78 | int 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 */ |
| 77 | int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); | 81 | int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); |
| @@ -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 | ||
| @@ -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 | ||
