3 /*=========================================================================*\
4 * Common option interface
7 * This module provides a common interface to socket options, used mainly by
9 \*=========================================================================*/
15 typedef struct t_opt
{
17 int (*func
)(lua_State
*L
, p_socket ps
);
22 #define IPV6_V6ONLY 27
25 /* supported options for setoption */
26 int opt_set_dontroute(lua_State
*L
, p_socket ps
);
27 int opt_set_broadcast(lua_State
*L
, p_socket ps
);
28 int opt_set_reuseaddr(lua_State
*L
, p_socket ps
);
29 int opt_set_tcp_nodelay(lua_State
*L
, p_socket ps
);
30 int opt_set_keepalive(lua_State
*L
, p_socket ps
);
31 int opt_set_linger(lua_State
*L
, p_socket ps
);
32 int opt_set_reuseaddr(lua_State
*L
, p_socket ps
);
33 int opt_set_reuseport(lua_State
*L
, p_socket ps
);
34 int opt_set_ip_multicast_if(lua_State
*L
, p_socket ps
);
35 int opt_set_ip_multicast_ttl(lua_State
*L
, p_socket ps
);
36 int opt_set_ip_multicast_loop(lua_State
*L
, p_socket ps
);
37 int opt_set_ip_add_membership(lua_State
*L
, p_socket ps
);
38 int opt_set_ip_drop_membersip(lua_State
*L
, p_socket ps
);
39 int opt_set_ip6_v6only(lua_State
*L
, p_socket ps
);
41 /* supported options for getoption */
42 int opt_get_reuseaddr(lua_State
*L
, p_socket ps
);
43 int opt_get_tcp_nodelay(lua_State
*L
, p_socket ps
);
44 int opt_get_keepalive(lua_State
*L
, p_socket ps
);
45 int opt_get_linger(lua_State
*L
, p_socket ps
);
46 int opt_get_reuseaddr(lua_State
*L
, p_socket ps
);
47 int opt_get_ip_multicast_loop(lua_State
*L
, p_socket ps
);
48 int opt_get_ip_multicast_if(lua_State
*L
, p_socket ps
);
50 /* invokes the appropriate option handler */
51 int opt_meth_setoption(lua_State
*L
, p_opt opt
, p_socket ps
);
52 int opt_meth_getoption(lua_State
*L
, p_opt opt
, p_socket ps
);