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

@ -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(&params.wexp);
}
#endif
static void cleanup_params(void)
{
#ifndef __OpenBSD__
cleanup_args();
#endif
ConntrackPoolDestroy(&params.conntrack);
@ -851,7 +855,9 @@ static unsigned int hash_jen(const void *data,unsigned int len)
static void exithelp(void)
{
printf(
#ifndef __OpenBSD__
" @<config_file>|$<config_file>\t\t\t; read file for options. must be the only argument. other options are ignored.\n\n"
#endif
" --debug=0|1|syslog|@<filename>\n"
#ifdef __linux__
" --qnum=<nfqueue_number>\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__

View File

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

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
}