From 67abaf89eb9f3de8d7e00f310c502fc7534af2b7 Mon Sep 17 00:00:00 2001 From: cjtallman Date: Thu, 11 Jun 2015 09:02:20 -0700 Subject: [PATCH] Added missing options for UDP getoption. Documentation says "dontroute", "broadcast", "reuseaddr", and "reuseport" are supported as arguments to getoption, however their implementations were missing. --- src/options.c | 10 ++++++++++ src/options.h | 3 ++- src/udp.c | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/options.c b/src/options.c index 8ac2a14..0c96721 100644 --- a/src/options.c +++ b/src/options.c @@ -105,11 +105,21 @@ int opt_set_dontroute(lua_State *L, p_socket ps) return opt_setboolean(L, ps, SOL_SOCKET, SO_DONTROUTE); } +int opt_get_dontroute(lua_State *L, p_socket ps) +{ + return opt_getboolean(L, ps, SOL_SOCKET, SO_DONTROUTE); +} + int opt_set_broadcast(lua_State *L, p_socket ps) { return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST); } +int opt_get_broadcast(lua_State *L, p_socket ps) +{ + return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST); +} + int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps) { return opt_setint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS); diff --git a/src/options.h b/src/options.h index b75db37..ad1b00d 100644 --- a/src/options.h +++ b/src/options.h @@ -40,11 +40,12 @@ int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); int opt_set_ip6_v6only(lua_State *L, p_socket ps); /* supported options for getoption */ +int opt_get_dontroute(lua_State *L, p_socket ps); +int opt_get_broadcast(lua_State *L, p_socket ps); int opt_get_reuseaddr(lua_State *L, p_socket ps); int opt_get_tcp_nodelay(lua_State *L, p_socket ps); int opt_get_keepalive(lua_State *L, p_socket ps); int opt_get_linger(lua_State *L, p_socket ps); -int opt_get_reuseaddr(lua_State *L, p_socket ps); int opt_get_ip_multicast_loop(lua_State *L, p_socket ps); int opt_get_ip_multicast_if(lua_State *L, p_socket ps); int opt_get_error(lua_State *L, p_socket ps); diff --git a/src/udp.c b/src/udp.c index 12e320a..a364ed7 100644 --- a/src/udp.c +++ b/src/udp.c @@ -89,6 +89,10 @@ static t_opt optset[] = { /* socket options for getoption */ static t_opt optget[] = { + {"dontroute", opt_get_dontroute}, + {"broadcast", opt_get_broadcast}, + {"reuseaddr", opt_get_reuseaddr}, + {"reuseport", opt_get_reuseport}, {"ip-multicast-if", opt_get_ip_multicast_if}, {"ip-multicast-loop", opt_get_ip_multicast_loop}, {"error", opt_get_error},