From 436011fee88fb1f8e2941c518e5f7bd11d66559d Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Thu, 14 Jul 2016 15:49:58 -0400 Subject: Rewrite args parsing to prepare for libpcap. --- src/server.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/server.c') diff --git a/src/server.c b/src/server.c index 382e675..b9c2783 100644 --- a/src/server.c +++ b/src/server.c @@ -20,10 +20,9 @@ #include "uthash.h" struct s_data { + const struct common_data *common_data; struct sockaddr *s_addr; struct sockaddr_storage pkt_addr; - const char *r_host; - const char *r_port; struct o_s_sock *o_socks_by_caddr; int s_sock; socklen_t s_addrlen; @@ -299,7 +298,7 @@ static void ss_cb(EV_P_ ev_io *w, int revents __attribute__((unused))) { sock->status = TCP_ESTABLISHED; struct addrinfo *res; - r = getaddrinfo(s_data->r_host, s_data->r_port, NULL, &res); + r = getaddrinfo(s_data->common_data->remote_host, s_data->common_data->remote_port, NULL, &res); if (r) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(r)); ev_break(EV_A_ EVBREAK_ONE); @@ -375,9 +374,9 @@ static void s_finish(EV_P_ ev_signal *w __attribute__((unused)), int revents __a ev_break(EV_A_ EVBREAK_ALL); } -int start_server(const char *s_host, const char *s_port, const char *r_host, const char *r_port) { +int start_server(const struct common_data *common_data) { struct addrinfo *res; - int r = getaddrinfo(s_host, s_port, NULL, &res); + int r = getaddrinfo(common_data->listen_host, common_data->listen_port, NULL, &res); if (r) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(r)); return 1; @@ -386,10 +385,9 @@ int start_server(const char *s_host, const char *s_port, const char *r_host, con char proto[] = { 0, IPPROTO_TCP }; struct s_data s_data = { + .common_data = common_data, .s_addr = res->ai_addr, .s_addrlen = res->ai_addrlen, - .r_host = r_host, - .r_port = r_port, .csum_p = csum_sockaddr_partial(res->ai_addr, 1, csum_partial(&proto, sizeof(proto), 0)) }; -- cgit v1.2.3-54-g00ecf