nfqws,tpws: remove @<config_file> function from OpenBSD

This commit is contained in:
bol-van
2024-11-03 15:32:51 +03:00
parent 74b6281770
commit 31d4eaaa14
4 changed files with 32 additions and 0 deletions

View File

@@ -6,7 +6,9 @@
#include <sys/param.h>
#include <sys/queue.h>
#include <time.h>
#ifndef __OpenBSD__
#include <wordexp.h>
#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;

View File

@@ -122,7 +122,9 @@ static int get_default_ttl(void)
static void exithelp(void)
{
printf(
#ifndef __OpenBSD__
" @<config_file>|$<config_file>\t\t; read file for options. must be the only argument. other options are ignored.\n\n"
#endif
" --bind-addr=<v4_addr>|<v6_addr>\t; for v6 link locals append %%interface_name\n"
" --bind-iface4=<interface_name>\t\t; bind to the first ipv4 addr of interface\n"
" --bind-iface6=<interface_name>\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(&params.wexp);
}
#endif
static void cleanup_params(void)
{
#ifndef __OpenBSD__
cleanup_args();
#endif
dp_list_destroy(&params.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
}