mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-26 12:10:53 +03:00
nfqws,tpws: set EXEDIR env var to use in @config
This commit is contained in:
parent
4d47749e7c
commit
ce33a27c57
@ -367,14 +367,14 @@ void fill_random_az09(uint8_t *p,size_t sz)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cd_to_exe_dir(const char *argv0)
|
bool set_env_exedir(const char *argv0)
|
||||||
{
|
{
|
||||||
char *s,*d;
|
char *s,*d;
|
||||||
bool bOK=false;
|
bool bOK=false;
|
||||||
if ((s = strdup(argv0)))
|
if ((s = strdup(argv0)))
|
||||||
{
|
{
|
||||||
if ((d = dirname(s)))
|
if ((d = dirname(s)))
|
||||||
bOK = !chdir(d);
|
setenv("EXEDIR",s,1);
|
||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
return bOK;
|
return bOK;
|
||||||
|
@ -75,7 +75,7 @@ void fill_random_bytes(uint8_t *p,size_t sz);
|
|||||||
void fill_random_az(uint8_t *p,size_t sz);
|
void fill_random_az(uint8_t *p,size_t sz);
|
||||||
void fill_random_az09(uint8_t *p,size_t sz);
|
void fill_random_az09(uint8_t *p,size_t sz);
|
||||||
|
|
||||||
bool cd_to_exe_dir(const char *argv0);
|
bool set_env_exedir(const char *argv0);
|
||||||
|
|
||||||
|
|
||||||
struct cidr4
|
struct cidr4
|
||||||
|
@ -1122,6 +1122,8 @@ void config_from_file(const char *filename)
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
set_env_exedir(argv[0]);
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
if (service_run(argc, argv))
|
if (service_run(argc, argv))
|
||||||
{
|
{
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <ifaddrs.h>
|
#include <ifaddrs.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <libgen.h>
|
||||||
|
|
||||||
#include "helpers.h"
|
#include "helpers.h"
|
||||||
|
|
||||||
@ -349,6 +350,20 @@ bool pf_is_empty(const port_filter *pf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool set_env_exedir(const char *argv0)
|
||||||
|
{
|
||||||
|
char *s,*d;
|
||||||
|
bool bOK=false;
|
||||||
|
if ((s = strdup(argv0)))
|
||||||
|
{
|
||||||
|
if ((d = dirname(s)))
|
||||||
|
setenv("EXEDIR",s,1);
|
||||||
|
free(s);
|
||||||
|
}
|
||||||
|
return bOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void mask_from_preflen6_make(uint8_t plen, struct in6_addr *a)
|
static void mask_from_preflen6_make(uint8_t plen, struct in6_addr *a)
|
||||||
{
|
{
|
||||||
if (plen >= 128)
|
if (plen >= 128)
|
||||||
|
@ -73,6 +73,8 @@ bool pf_in_range(uint16_t port, const port_filter *pf);
|
|||||||
bool pf_parse(const char *s, port_filter *pf);
|
bool pf_parse(const char *s, port_filter *pf);
|
||||||
bool pf_is_empty(const port_filter *pf);
|
bool pf_is_empty(const port_filter *pf);
|
||||||
|
|
||||||
|
bool set_env_exedir(const char *argv0);
|
||||||
|
|
||||||
#ifndef IN_LOOPBACK
|
#ifndef IN_LOOPBACK
|
||||||
#define IN_LOOPBACK(a) ((((uint32_t) (a)) & 0xff000000) == 0x7f000000)
|
#define IN_LOOPBACK(a) ((((uint32_t) (a)) & 0xff000000) == 0x7f000000)
|
||||||
#endif
|
#endif
|
||||||
|
@ -1447,6 +1447,7 @@ int main(int argc, char *argv[])
|
|||||||
struct salisten_s list[MAX_BINDS];
|
struct salisten_s list[MAX_BINDS];
|
||||||
char ip_port[48];
|
char ip_port[48];
|
||||||
|
|
||||||
|
set_env_exedir(argv[0]);
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
mask_from_preflen6_prepare();
|
mask_from_preflen6_prepare();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user