diff --git a/nfq/nfqws.c b/nfq/nfqws.c index 32443e7..a27ffcf 100644 --- a/nfq/nfqws.c +++ b/nfq/nfqws.c @@ -552,14 +552,18 @@ static bool parse_ws_scale_factor(char *s, uint16_t *wsize, uint8_t *wscale) +#ifndef __OpenBSD__ static void cleanup_args() { wordfree(¶ms.wexp); } +#endif static void cleanup_params(void) { +#ifndef __OpenBSD__ cleanup_args(); +#endif ConntrackPoolDestroy(¶ms.conntrack); @@ -851,7 +855,9 @@ static unsigned int hash_jen(const void *data,unsigned int len) static void exithelp(void) { printf( +#ifndef __OpenBSD__ " @|$\t\t\t; read file for options. must be the only argument. other options are ignored.\n\n" +#endif " --debug=0|1|syslog|@\n" #ifdef __linux__ " --qnum=\n" @@ -982,6 +988,7 @@ bool parse_tlspos(const char *s, enum tlspos *pos) return true; } +#ifndef __OpenBSD__ // no static to not allow optimizer to inline this func (save stack) void config_from_file(const char *filename) { @@ -1006,6 +1013,7 @@ void config_from_file(const char *filename) exit_clean(1); } } +#endif int main(int argc, char **argv) { @@ -1071,12 +1079,14 @@ int main(int argc, char **argv) } #endif +#ifndef __OpenBSD__ if (argc>=2 && (argv[1][0]=='@' || argv[1][0]=='$')) { config_from_file(argv[1]+1); argv=params.wexp.we_wordv; argc=params.wexp.we_wordc; } +#endif const struct option long_options[] = { {"debug",optional_argument,0,0}, // optidx=0 @@ -1826,7 +1836,9 @@ int main(int argc, char **argv) } // do not need args from file anymore +#ifndef __OpenBSD__ cleanup_args(); +#endif argv=NULL; argc=0; #ifdef __linux__ diff --git a/nfq/params.h b/nfq/params.h index 143fd24..7af45c6 100644 --- a/nfq/params.h +++ b/nfq/params.h @@ -14,7 +14,9 @@ #include #include #include +#ifndef __OpenBSD__ #include +#endif #define TLS_PARTIALS_ENABLE true @@ -96,7 +98,9 @@ bool dp_list_have_autohostlist(struct desync_profile_list_head *head); struct params_s { +#ifndef __OpenBSD__ wordexp_t wexp; // for file based config +#endif enum log_target debug_target; char debug_logfile[PATH_MAX]; diff --git a/tpws/params.h b/tpws/params.h index b34238c..d0104dc 100644 --- a/tpws/params.h +++ b/tpws/params.h @@ -6,7 +6,9 @@ #include #include #include +#ifndef __OpenBSD__ #include +#endif #include "tpws.h" #include "pools.h" @@ -81,7 +83,9 @@ void dp_list_destroy(struct desync_profile_list_head *head); struct params_s { +#ifndef __OpenBSD__ wordexp_t wexp; // for file based config +#endif int debug; enum log_target debug_target; diff --git a/tpws/tpws.c b/tpws/tpws.c index 322e680..4f16845 100644 --- a/tpws/tpws.c +++ b/tpws/tpws.c @@ -122,7 +122,9 @@ static int get_default_ttl(void) static void exithelp(void) { printf( +#ifndef __OpenBSD__ " @|$\t\t; read file for options. must be the only argument. other options are ignored.\n\n" +#endif " --bind-addr=|\t; for v6 link locals append %%interface_name\n" " --bind-iface4=\t\t; bind to the first ipv4 addr of interface\n" " --bind-iface6=\t\t; bind to the first ipv6 addr of interface\n" @@ -215,13 +217,17 @@ static void exithelp(void) ); exit(1); } +#ifndef __OpenBSD__ static void cleanup_args() { wordfree(¶ms.wexp); } +#endif static void cleanup_params(void) { +#ifndef __OpenBSD__ cleanup_args(); +#endif dp_list_destroy(¶ms.desync_profiles); @@ -364,6 +370,7 @@ static bool parse_pf_list(char *opt, struct port_filters_head *pfl) return true; } +#ifndef __OpenBSD__ // no static to not allow optimizer to inline this func (save stack) void config_from_file(const char *filename) { @@ -388,6 +395,7 @@ void config_from_file(const char *filename) exit_clean(1); } } +#endif void parse_params(int argc, char *argv[]) { @@ -427,12 +435,14 @@ void parse_params(int argc, char *argv[]) dp = &dpl->dp; dp->n = ++desync_profile_count; +#ifndef __OpenBSD__ if (argc>=2 && (argv[1][0]=='@' || argv[1][0]=='$')) { config_from_file(argv[1]+1); argv=params.wexp.we_wordv; argc=params.wexp.we_wordc; } +#endif const struct option long_options[] = { { "help",no_argument,0,0 },// optidx=0 @@ -1133,8 +1143,10 @@ void parse_params(int argc, char *argv[]) IpsetsDebug(); VPRINT("\n"); +#ifndef __OpenBSD__ // do not need args from file anymore cleanup_args(); +#endif }