mirror of
https://github.com/bol-van/zapret.git
synced 2025-05-06 10:40:48 +05:00
nfqws: do not use interface name for ip->hostname
This commit is contained in:
parent
6f1286b5b9
commit
c91ddf4a54
24
nfq/desync.c
24
nfq/desync.c
@ -799,11 +799,11 @@ static void autottl_rediscover(t_ctrack *ctrack, const struct in_addr *a4, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ipcache_put_hostname(const struct in_addr *a4, const struct in6_addr *a6, const char *iface, const char *hostname)
|
static bool ipcache_put_hostname(const struct in_addr *a4, const struct in6_addr *a6, const char *hostname)
|
||||||
{
|
{
|
||||||
if (!params.cache_hostnames) return true;
|
if (!params.cache_hostname) return true;
|
||||||
|
|
||||||
ip_cache_item *ipc = ipcacheTouch(¶ms.ipcache,a4,a6,iface);
|
ip_cache_item *ipc = ipcacheTouch(¶ms.ipcache,a4,a6,NULL);
|
||||||
if (!ipc)
|
if (!ipc)
|
||||||
{
|
{
|
||||||
DLOG_ERR("ipcache_put_hostname: out of memory\n");
|
DLOG_ERR("ipcache_put_hostname: out of memory\n");
|
||||||
@ -818,14 +818,14 @@ static bool ipcache_put_hostname(const struct in_addr *a4, const struct in6_addr
|
|||||||
DLOG("hostname cached: %s\n", hostname);
|
DLOG("hostname cached: %s\n", hostname);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
static bool ipcache_get_hostname(const struct in_addr *a4, const struct in6_addr *a6, const char *iface, char *hostname, size_t hostname_buf_len)
|
static bool ipcache_get_hostname(const struct in_addr *a4, const struct in6_addr *a6, char *hostname, size_t hostname_buf_len)
|
||||||
{
|
{
|
||||||
if (!params.cache_hostnames)
|
if (!params.cache_hostname)
|
||||||
{
|
{
|
||||||
*hostname = 0;
|
*hostname = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
ip_cache_item *ipc = ipcacheTouch(¶ms.ipcache,a4,a6,iface);
|
ip_cache_item *ipc = ipcacheTouch(¶ms.ipcache,a4,a6,NULL);
|
||||||
if (!ipc)
|
if (!ipc)
|
||||||
{
|
{
|
||||||
DLOG_ERR("ipcache_get_hostname: out of memory\n");
|
DLOG_ERR("ipcache_get_hostname: out of memory\n");
|
||||||
@ -1144,7 +1144,7 @@ static uint8_t dpi_desync_tcp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
{
|
{
|
||||||
if (!ctrack_replay->hostname && !bReverse)
|
if (!ctrack_replay->hostname && !bReverse)
|
||||||
{
|
{
|
||||||
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host, sizeof(host)) && *host)
|
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host, sizeof(host)) && *host)
|
||||||
if (!(ctrack_replay->hostname = strdup(host)))
|
if (!(ctrack_replay->hostname = strdup(host)))
|
||||||
DLOG_ERR("strdup(host): out of memory\n");
|
DLOG_ERR("strdup(host): out of memory\n");
|
||||||
}
|
}
|
||||||
@ -1177,7 +1177,7 @@ static uint8_t dpi_desync_tcp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
hostname = ctrack->hostname;
|
hostname = ctrack->hostname;
|
||||||
if (!hostname && !bReverse)
|
if (!hostname && !bReverse)
|
||||||
{
|
{
|
||||||
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host, sizeof(host)) && *host)
|
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host, sizeof(host)) && *host)
|
||||||
if (!(hostname = ctrack_replay->hostname = strdup(host)))
|
if (!(hostname = ctrack_replay->hostname = strdup(host)))
|
||||||
DLOG_ERR("strdup(host): out of memory\n");
|
DLOG_ERR("strdup(host): out of memory\n");
|
||||||
}
|
}
|
||||||
@ -1522,7 +1522,7 @@ static uint8_t dpi_desync_tcp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
reasm_orig_cancel(ctrack);
|
reasm_orig_cancel(ctrack);
|
||||||
goto send_orig;
|
goto send_orig;
|
||||||
}
|
}
|
||||||
if (!ipcache_put_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host))
|
if (!ipcache_put_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host))
|
||||||
{
|
{
|
||||||
reasm_orig_cancel(ctrack);
|
reasm_orig_cancel(ctrack);
|
||||||
goto send_orig;
|
goto send_orig;
|
||||||
@ -2350,7 +2350,7 @@ static uint8_t dpi_desync_udp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
{
|
{
|
||||||
if (!ctrack_replay->hostname && !bReverse)
|
if (!ctrack_replay->hostname && !bReverse)
|
||||||
{
|
{
|
||||||
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host, sizeof(host)) && *host)
|
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host, sizeof(host)) && *host)
|
||||||
if (!(ctrack_replay->hostname = strdup(host)))
|
if (!(ctrack_replay->hostname = strdup(host)))
|
||||||
DLOG_ERR("strdup(host): out of memory\n");
|
DLOG_ERR("strdup(host): out of memory\n");
|
||||||
}
|
}
|
||||||
@ -2386,7 +2386,7 @@ static uint8_t dpi_desync_udp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
hostname = ctrack->hostname;
|
hostname = ctrack->hostname;
|
||||||
if (!hostname && !bReverse)
|
if (!hostname && !bReverse)
|
||||||
{
|
{
|
||||||
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host, sizeof(host)) && *host)
|
if (ipcache_get_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host, sizeof(host)) && *host)
|
||||||
if (!(hostname = ctrack_replay->hostname = strdup(host)))
|
if (!(hostname = ctrack_replay->hostname = strdup(host)))
|
||||||
DLOG_ERR("strdup(host): out of memory\n");
|
DLOG_ERR("strdup(host): out of memory\n");
|
||||||
}
|
}
|
||||||
@ -2652,7 +2652,7 @@ static uint8_t dpi_desync_udp_packet_play(bool replay, size_t reasm_offset, uint
|
|||||||
DLOG_ERR("hostname dup : out of memory");
|
DLOG_ERR("hostname dup : out of memory");
|
||||||
goto send_orig;
|
goto send_orig;
|
||||||
}
|
}
|
||||||
if (!ipcache_put_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , ifout, host))
|
if (!ipcache_put_hostname(dis->ip ? &dis->ip->ip_dst : NULL,dis->ip6 ? &dis->ip6->ip6_dst : NULL , host))
|
||||||
goto send_orig;
|
goto send_orig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
nfq/nfqws.c
14
nfq/nfqws.c
@ -99,7 +99,7 @@ static void onusr2(int sig)
|
|||||||
printf("\nDESYNC PROFILE %d\n",dpl->dp.n);
|
printf("\nDESYNC PROFILE %d\n",dpl->dp.n);
|
||||||
HostFailPoolDump(dpl->dp.hostlist_auto_fail_counters);
|
HostFailPoolDump(dpl->dp.hostlist_auto_fail_counters);
|
||||||
}
|
}
|
||||||
if (params.autottl_present || params.cache_hostnames)
|
if (params.autottl_present || params.cache_hostname)
|
||||||
{
|
{
|
||||||
printf("\nIPCACHE\n");
|
printf("\nIPCACHE\n");
|
||||||
ipcachePrint(¶ms.ipcache);
|
ipcachePrint(¶ms.ipcache);
|
||||||
@ -1418,7 +1418,7 @@ static void exithelp(void)
|
|||||||
#endif
|
#endif
|
||||||
" --ctrack-timeouts=S:E:F[:U]\t\t\t; internal conntrack timeouts for TCP SYN, ESTABLISHED, FIN stages, UDP timeout. default %u:%u:%u:%u\n"
|
" --ctrack-timeouts=S:E:F[:U]\t\t\t; internal conntrack timeouts for TCP SYN, ESTABLISHED, FIN stages, UDP timeout. default %u:%u:%u:%u\n"
|
||||||
" --ipcache-lifetime=<int>\t\t\t; time in seconds to keep cached hop count and domain name (default %u)\n"
|
" --ipcache-lifetime=<int>\t\t\t; time in seconds to keep cached hop count and domain name (default %u)\n"
|
||||||
" --ipcache-hostnames=[0|1]\t\t\t; 1 or no argument enables ip->hostname caching\n"
|
" --ipcache-hostname=[0|1]\t\t\t; 1 or no argument enables ip->hostname caching\n"
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
"\nWINDIVERT FILTER:\n"
|
"\nWINDIVERT FILTER:\n"
|
||||||
" --wf-iface=<int>[.<int>]\t\t\t; numeric network interface and subinterface indexes\n"
|
" --wf-iface=<int>[.<int>]\t\t\t; numeric network interface and subinterface indexes\n"
|
||||||
@ -1621,7 +1621,7 @@ enum opt_indices {
|
|||||||
IDX_WSSIZE_CUTOFF,
|
IDX_WSSIZE_CUTOFF,
|
||||||
IDX_CTRACK_TIMEOUTS,
|
IDX_CTRACK_TIMEOUTS,
|
||||||
IDX_IPCACHE_LIFETIME,
|
IDX_IPCACHE_LIFETIME,
|
||||||
IDX_IPCACHE_HOSTNAMES,
|
IDX_IPCACHE_HOSTNAME,
|
||||||
IDX_HOSTCASE,
|
IDX_HOSTCASE,
|
||||||
IDX_HOSTSPELL,
|
IDX_HOSTSPELL,
|
||||||
IDX_HOSTNOSPACE,
|
IDX_HOSTNOSPACE,
|
||||||
@ -1740,7 +1740,7 @@ static const struct option long_options[] = {
|
|||||||
[IDX_WSSIZE_CUTOFF] = {"wssize-cutoff", required_argument, 0, 0},
|
[IDX_WSSIZE_CUTOFF] = {"wssize-cutoff", required_argument, 0, 0},
|
||||||
[IDX_CTRACK_TIMEOUTS] = {"ctrack-timeouts", required_argument, 0, 0},
|
[IDX_CTRACK_TIMEOUTS] = {"ctrack-timeouts", required_argument, 0, 0},
|
||||||
[IDX_IPCACHE_LIFETIME] = {"ipcache-lifetime", required_argument, 0, 0},
|
[IDX_IPCACHE_LIFETIME] = {"ipcache-lifetime", required_argument, 0, 0},
|
||||||
[IDX_IPCACHE_HOSTNAMES] = {"ipcache-hostnames", optional_argument, 0, 0},
|
[IDX_IPCACHE_HOSTNAME] = {"ipcache-hostname", optional_argument, 0, 0},
|
||||||
[IDX_HOSTCASE] = {"hostcase", no_argument, 0, 0},
|
[IDX_HOSTCASE] = {"hostcase", no_argument, 0, 0},
|
||||||
[IDX_HOSTSPELL] = {"hostspell", required_argument, 0, 0},
|
[IDX_HOSTSPELL] = {"hostspell", required_argument, 0, 0},
|
||||||
[IDX_HOSTNOSPACE] = {"hostnospace", no_argument, 0, 0},
|
[IDX_HOSTNOSPACE] = {"hostnospace", no_argument, 0, 0},
|
||||||
@ -2055,8 +2055,8 @@ int main(int argc, char **argv)
|
|||||||
exit_clean(1);
|
exit_clean(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IDX_IPCACHE_HOSTNAMES:
|
case IDX_IPCACHE_HOSTNAME:
|
||||||
params.cache_hostnames = !optarg || !!atoi(optarg);
|
params.cache_hostname = !optarg || !!atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case IDX_HOSTCASE:
|
case IDX_HOSTCASE:
|
||||||
dp->hostcase = true;
|
dp->hostcase = true;
|
||||||
@ -2964,7 +2964,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
DLOG("initializing conntrack with timeouts tcp=%u:%u:%u udp=%u\n", params.ctrack_t_syn, params.ctrack_t_est, params.ctrack_t_fin, params.ctrack_t_udp);
|
DLOG("initializing conntrack with timeouts tcp=%u:%u:%u udp=%u\n", params.ctrack_t_syn, params.ctrack_t_est, params.ctrack_t_fin, params.ctrack_t_udp);
|
||||||
if (params.autottl_present || params.cache_hostnames) DLOG("ipcache lifetime %us\n", params.ipcache_lifetime);
|
if (params.autottl_present || params.cache_hostname) DLOG("ipcache lifetime %us\n", params.ipcache_lifetime);
|
||||||
ConntrackPoolInit(¶ms.conntrack, 10, params.ctrack_t_syn, params.ctrack_t_est, params.ctrack_t_fin, params.ctrack_t_udp);
|
ConntrackPoolInit(¶ms.conntrack, 10, params.ctrack_t_syn, params.ctrack_t_est, params.ctrack_t_fin, params.ctrack_t_udp);
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -199,7 +199,7 @@ struct params_s
|
|||||||
t_conntrack conntrack;
|
t_conntrack conntrack;
|
||||||
|
|
||||||
unsigned int ipcache_lifetime;
|
unsigned int ipcache_lifetime;
|
||||||
bool autottl_present,cache_hostnames;
|
bool autottl_present,cache_hostname;
|
||||||
ip_cache ipcache;
|
ip_cache ipcache;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user