aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsurenyi <surenyi82@163.com>2018-03-25 14:58:10 +0800
committersurenyi <surenyi82@163.com>2018-03-25 14:58:10 +0800
commit97bfe1e0437e5f31d47e1fa3bd2e8784a862482d (patch)
treef164143124f65aed9b9d25c355dd3740d3de8609
parent652959890943c34d7180cae372339b91e62f0d7b (diff)
downloadluasocket-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.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 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
118int opt_set_recv_buf_size(lua_State *L, p_socket ps)
119{
120 return opt_setint(L, ps, SOL_SOCKET, SO_RCVBUF);
121}
122
123int opt_get_recv_buf_size(lua_State *L, p_socket ps)
124{
125 return opt_getint(L, ps, SOL_SOCKET, SO_RCVBUF);
126}
127
128int opt_get_send_buf_size(lua_State *L, p_socket ps)
129{
130 return opt_getint(L, ps, SOL_SOCKET, SO_SNDBUF);
131}
132
133int opt_set_send_buf_size(lua_State *L, p_socket ps)
134{
135 return opt_setint(L, ps, SOL_SOCKET, SO_SNDBUF);
136}
137
118int opt_get_broadcast(lua_State *L, p_socket ps) 138int 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);
37int opt_set_ip6_add_membership(lua_State *L, p_socket ps); 37int opt_set_ip6_add_membership(lua_State *L, p_socket ps);
38int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); 38int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps);
39int opt_set_ip6_v6only(lua_State *L, p_socket ps); 39int opt_set_ip6_v6only(lua_State *L, p_socket ps);
40int opt_set_recv_buf_size(lua_State *L, p_socket ps);
41int opt_set_send_buf_size(lua_State *L, p_socket ps);
40 42
41/* supported options for getoption */ 43/* supported options for getoption */
42int opt_get_dontroute(lua_State *L, p_socket ps); 44int 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);
54int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); 56int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps);
55int opt_get_ip6_v6only(lua_State *L, p_socket ps); 57int opt_get_ip6_v6only(lua_State *L, p_socket ps);
56int opt_get_reuseport(lua_State *L, p_socket ps); 58int opt_get_reuseport(lua_State *L, p_socket ps);
59int opt_get_recv_buf_size(lua_State *L, p_socket ps);
60int 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 */
59int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); 63int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps);
diff --git a/src/tcp.c b/src/tcp.c
index ef9ee6f..f64cb10 100644
--- a/src/tcp.c
+++ b/src/tcp.c
@@ -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
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