diff options
| author | surenyi <surenyi82@163.com> | 2018-03-25 14:58:10 +0800 |
|---|---|---|
| committer | surenyi <surenyi82@163.com> | 2018-03-25 14:58:10 +0800 |
| commit | 97bfe1e0437e5f31d47e1fa3bd2e8784a862482d (patch) | |
| tree | f164143124f65aed9b9d25c355dd3740d3de8609 | |
| parent | 652959890943c34d7180cae372339b91e62f0d7b (diff) | |
| download | luasocket-97bfe1e0437e5f31d47e1fa3bd2e8784a862482d.tar.gz luasocket-97bfe1e0437e5f31d47e1fa3bd2e8784a862482d.tar.bz2 luasocket-97bfe1e0437e5f31d47e1fa3bd2e8784a862482d.zip | |
add options:
get/set : recv-buffer-size
get/set : send-buffer-size
Signed-off-by: surenyi <surenyi82@163.com>
| -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 fabfe8c..fe4e9bb 100644 --- a/src/options.c +++ b/src/options.c | |||
| @@ -115,6 +115,26 @@ int opt_set_broadcast(lua_State *L, p_socket ps) | |||
| 115 | return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST); | 115 | return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | int opt_set_recv_buf_size(lua_State *L, p_socket ps) | ||
| 119 | { | ||
| 120 | return opt_setint(L, ps, SOL_SOCKET, SO_RCVBUF); | ||
| 121 | } | ||
| 122 | |||
| 123 | int opt_get_recv_buf_size(lua_State *L, p_socket ps) | ||
| 124 | { | ||
| 125 | return opt_getint(L, ps, SOL_SOCKET, SO_RCVBUF); | ||
| 126 | } | ||
| 127 | |||
| 128 | int opt_get_send_buf_size(lua_State *L, p_socket ps) | ||
| 129 | { | ||
| 130 | return opt_getint(L, ps, SOL_SOCKET, SO_SNDBUF); | ||
| 131 | } | ||
| 132 | |||
| 133 | int opt_set_send_buf_size(lua_State *L, p_socket ps) | ||
| 134 | { | ||
| 135 | return opt_setint(L, ps, SOL_SOCKET, SO_SNDBUF); | ||
| 136 | } | ||
| 137 | |||
| 118 | int opt_get_broadcast(lua_State *L, p_socket ps) | 138 | int opt_get_broadcast(lua_State *L, p_socket ps) |
| 119 | { | 139 | { |
| 120 | return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST); | 140 | return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST); |
diff --git a/src/options.h b/src/options.h index 19ba0df..4530389 100644 --- a/src/options.h +++ b/src/options.h | |||
| @@ -37,6 +37,8 @@ int opt_set_ip6_multicast_loop(lua_State *L, p_socket ps); | |||
| 37 | int opt_set_ip6_add_membership(lua_State *L, p_socket ps); | 37 | int opt_set_ip6_add_membership(lua_State *L, p_socket ps); |
| 38 | int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); | 38 | int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); |
| 39 | int opt_set_ip6_v6only(lua_State *L, p_socket ps); | 39 | int opt_set_ip6_v6only(lua_State *L, p_socket ps); |
| 40 | int opt_set_recv_buf_size(lua_State *L, p_socket ps); | ||
| 41 | int opt_set_send_buf_size(lua_State *L, p_socket ps); | ||
| 40 | 42 | ||
| 41 | /* supported options for getoption */ | 43 | /* supported options for getoption */ |
| 42 | int opt_get_dontroute(lua_State *L, p_socket ps); | 44 | int opt_get_dontroute(lua_State *L, p_socket ps); |
| @@ -54,6 +56,8 @@ int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps); | |||
| 54 | int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); | 56 | int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); |
| 55 | int opt_get_ip6_v6only(lua_State *L, p_socket ps); | 57 | int opt_get_ip6_v6only(lua_State *L, p_socket ps); |
| 56 | int opt_get_reuseport(lua_State *L, p_socket ps); | 58 | int opt_get_reuseport(lua_State *L, p_socket ps); |
| 59 | int opt_get_recv_buf_size(lua_State *L, p_socket ps); | ||
| 60 | int opt_get_send_buf_size(lua_State *L, p_socket ps); | ||
| 57 | 61 | ||
| 58 | /* invokes the appropriate option handler */ | 62 | /* invokes the appropriate option handler */ |
| 59 | int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); | 63 | int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); |
| @@ -79,6 +79,8 @@ static t_opt optget[] = { | |||
| 79 | {"tcp-nodelay", opt_get_tcp_nodelay}, | 79 | {"tcp-nodelay", opt_get_tcp_nodelay}, |
| 80 | {"linger", opt_get_linger}, | 80 | {"linger", opt_get_linger}, |
| 81 | {"error", opt_get_error}, | 81 | {"error", opt_get_error}, |
| 82 | {"recv-buffer-size", opt_get_recv_buf_size}, | ||
| 83 | {"send-buffer-size", opt_get_send_buf_size}, | ||
| 82 | {NULL, NULL} | 84 | {NULL, NULL} |
| 83 | }; | 85 | }; |
| 84 | 86 | ||
| @@ -89,6 +91,8 @@ static t_opt optset[] = { | |||
| 89 | {"tcp-nodelay", opt_set_tcp_nodelay}, | 91 | {"tcp-nodelay", opt_set_tcp_nodelay}, |
| 90 | {"ipv6-v6only", opt_set_ip6_v6only}, | 92 | {"ipv6-v6only", opt_set_ip6_v6only}, |
| 91 | {"linger", opt_set_linger}, | 93 | {"linger", opt_set_linger}, |
| 94 | {"recv-buffer-size", opt_set_recv_buf_size}, | ||
| 95 | {"send-buffer-size", opt_set_send_buf_size}, | ||
| 92 | {NULL, NULL} | 96 | {NULL, NULL} |
| 93 | }; | 97 | }; |
| 94 | 98 | ||
| @@ -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 | ||
