summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2014-02-11 20:33:55 +0000
committerChristian Pointner <equinox@anytun.org>2014-02-11 20:33:55 +0000
commit835599bb64c77907cc7d2230fc02349f1981886c (patch)
treeadb0e584785e62a76dde4fadb8d7b967d75171df
parentdepending on rail mode call update_remote before or after seq_window check (diff)
moved local socket resolver to subroutine
-rw-r--r--src/udp.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/udp.c b/src/udp.c
index f81dee7..c3e755f 100644
--- a/src/udp.c
+++ b/src/udp.c
@@ -52,15 +52,8 @@
#include <arpa/inet.h>
#include <netinet/in.h>
-int udp_init(udp_t* sock, const char* local_addr, const char* port, resolv_addr_type_t resolv_type, int rail_mode)
+static int udp_resolv_local(udp_t* sock, const char* local_addr, const char* port, resolv_addr_type_t resolv_type)
{
- if(!sock || !port)
- return -1;
-
- sock->socks_ = NULL;
- sock->active_sock_ = NULL;
- sock->rail_mode_ = rail_mode;
-
struct addrinfo hints, *res;
res = NULL;
@@ -146,6 +139,21 @@ int udp_init(udp_t* sock, const char* local_addr, const char* port, resolv_addr_
}
freeaddrinfo(res);
+ return 0;
+}
+
+int udp_init(udp_t* sock, const char* local_addr, const char* port, resolv_addr_type_t resolv_type, int rail_mode)
+{
+ if(!sock || !port)
+ return -1;
+
+ sock->socks_ = NULL;
+ sock->active_sock_ = NULL;
+ sock->rail_mode_ = rail_mode;
+
+ int ret = udp_resolv_local(sock, local_addr, port, resolv_type);
+ if(ret)
+ return ret;
if(sock->rail_mode_)
log_printf(NOTICE, "RAIL mode enabled");