| #ifndef OPTIONS_H |
| #define OPTIONS_H |
| /*=========================================================================*\ |
| * Common option interface |
| * LuaSocket toolkit |
| * |
| * This module provides a common interface to socket options, used mainly by |
| * modules UDP and TCP. |
| * |
| * RCS ID: $Id: options.h,v 1.4 2005/10/07 04:40:59 diego Exp $ |
| \*=========================================================================*/ |
| |
| #include "lua.h" |
| #include "socket.h" |
| |
| /* option registry */ |
| typedef struct t_opt { |
| const char *name; |
| int (*func)(lua_State *L, p_socket ps); |
| } t_opt; |
| typedef t_opt *p_opt; |
| |
| /* supported options */ |
| int opt_dontroute(lua_State *L, p_socket ps); |
| int opt_broadcast(lua_State *L, p_socket ps); |
| int opt_reuseaddr(lua_State *L, p_socket ps); |
| int opt_tcp_nodelay(lua_State *L, p_socket ps); |
| int opt_keepalive(lua_State *L, p_socket ps); |
| int opt_linger(lua_State *L, p_socket ps); |
| int opt_reuseaddr(lua_State *L, p_socket ps); |
| int opt_ip_multicast_ttl(lua_State *L, p_socket ps); |
| int opt_ip_multicast_loop(lua_State *L, p_socket ps); |
| int opt_ip_add_membership(lua_State *L, p_socket ps); |
| int opt_ip_drop_membersip(lua_State *L, p_socket ps); |
| |
| /* invokes the appropriate option handler */ |
| int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); |
| |
| #endif |