From 32cdd1183e79c81d69b4be3cfe8a94890bd189b5 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 10 Jul 2018 15:43:10 +0200 Subject: [PATCH] Specify the family at run-time for TCP/UDP servers This is still using IPv4 by default for the moment. --- server/fwknopd.c | 4 ++-- server/pcap_capture.c | 2 +- server/tcp_server.c | 3 +-- server/tcp_server.h | 2 +- server/udp_server.c | 3 +-- server/udp_server.h | 2 +- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/server/fwknopd.c b/server/fwknopd.c index d7b1abff..4fbad5c0 100644 --- a/server/fwknopd.c +++ b/server/fwknopd.c @@ -259,7 +259,7 @@ main(int argc, char **argv) if(opts.enable_udp_server || strncasecmp(opts.config[CONF_ENABLE_UDP_SERVER], "Y", 1) == 0) { - if(run_udp_server(&opts) < 0) + if(run_udp_server(&opts, AF_INET) < 0) { log_msg(LOG_ERR, "Fatal run_udp_server() error"); clean_exit(&opts, FW_CLEANUP, EXIT_FAILURE); @@ -280,7 +280,7 @@ main(int argc, char **argv) */ if(strncasecmp(opts.config[CONF_ENABLE_TCP_SERVER], "Y", 1) == 0) { - if(run_tcp_server(&opts) < 0) + if(run_tcp_server(&opts, AF_INET) < 0) { log_msg(LOG_ERR, "Fatal run_tcp_server() error"); clean_exit(&opts, FW_CLEANUP, EXIT_FAILURE); diff --git a/server/pcap_capture.c b/server/pcap_capture.c index e25904b5..73678feb 100644 --- a/server/pcap_capture.c +++ b/server/pcap_capture.c @@ -211,7 +211,7 @@ pcap_capture(fko_srv_options_t *opts) /* Attempt to restart tcp server ? */ usleep(1000000); - run_tcp_server(opts); + run_tcp_server(opts, AF_INET); } } diff --git a/server/tcp_server.c b/server/tcp_server.c index 6dc8a8af..5ea2cabe 100644 --- a/server/tcp_server.c +++ b/server/tcp_server.c @@ -51,9 +51,8 @@ * the child process or -1 if there is a fork error. */ int -run_tcp_server(fko_srv_options_t *opts) +run_tcp_server(fko_srv_options_t *opts, int family) { - const int family = AF_INET; #if !CODE_COVERAGE pid_t pid, ppid; #endif diff --git a/server/tcp_server.h b/server/tcp_server.h index 13db296e..9368efb9 100644 --- a/server/tcp_server.h +++ b/server/tcp_server.h @@ -32,7 +32,7 @@ /* Function prototypes */ -int run_tcp_server(fko_srv_options_t *opts); +int run_tcp_server(fko_srv_options_t *opts, int family); #endif /* TCP_SERVER_H */ diff --git a/server/udp_server.c b/server/udp_server.c index 620ba1c9..f56a9b27 100644 --- a/server/udp_server.c +++ b/server/udp_server.c @@ -50,9 +50,8 @@ #include int -run_udp_server(fko_srv_options_t *opts) +run_udp_server(fko_srv_options_t *opts, int family) { - const int family = AF_INET; int s_sock, sfd_flags, selval, pkt_len; int rv=1, chk_rm_all=0; fd_set sfd_set; diff --git a/server/udp_server.h b/server/udp_server.h index dcbdfec2..c601b66b 100644 --- a/server/udp_server.h +++ b/server/udp_server.h @@ -32,7 +32,7 @@ /* Function prototypes */ -int run_udp_server(fko_srv_options_t *opts); +int run_udp_server(fko_srv_options_t *opts, int family); #endif /* UDP_SERVER_H */