mirror of
https://github.com/bol-van/zapret.git
synced 2025-05-24 22:32:58 +03:00
Compare commits
6 Commits
15ac91cfab
...
3d40c6456c
Author | SHA1 | Date | |
---|---|---|---|
|
3d40c6456c | ||
|
2be5f1221a | ||
|
fef64e8849 | ||
|
675a8e52b6 | ||
|
d9a24b4105 | ||
|
92ba6b439e |
40
ipset/get_antifilter_domains.sh
Normal file
40
ipset/get_antifilter_domains.sh
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IPSET_DIR="$(dirname "$0")"
|
||||||
|
IPSET_DIR="$(cd "$IPSET_DIR"; pwd)"
|
||||||
|
|
||||||
|
. "$IPSET_DIR/def.sh"
|
||||||
|
|
||||||
|
TMPLIST="$TMPDIR/list.txt"
|
||||||
|
|
||||||
|
URL="https://antifilter.download/list/domains.lst"
|
||||||
|
|
||||||
|
dl()
|
||||||
|
{
|
||||||
|
# $1 - url
|
||||||
|
# $2 - file
|
||||||
|
# $3 - minsize
|
||||||
|
# $4 - maxsize
|
||||||
|
curl -L -H "Accept-Encoding: gzip" -k --fail --max-time 60 --connect-timeout 10 --retry 4 --max-filesize 251658240 -o "$TMPLIST" "$1" ||
|
||||||
|
{
|
||||||
|
echo list download failed : $1
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
|
||||||
|
if test $dlsize -lt $3; then
|
||||||
|
echo list is too small : $dlsize bytes. can be bad.
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
zzcat "$TMPLIST" | tr -d '\015' | zz "$2"
|
||||||
|
rm -f "$TMPLIST"
|
||||||
|
}
|
||||||
|
|
||||||
|
# useful in case ipban set is used in custom scripts
|
||||||
|
FAIL=
|
||||||
|
getipban || FAIL=1
|
||||||
|
"$IPSET_DIR/create_ipset.sh"
|
||||||
|
[ -n "$FAIL" ] && exit
|
||||||
|
|
||||||
|
dl "$URL" "$ZHOSTLIST" 32768 4194304
|
||||||
|
|
||||||
|
exit 0
|
@ -981,7 +981,7 @@ static bool wf_make_pf(char *opt, const char *l4, const char *portname, char *bu
|
|||||||
#define DIVERT_NO_LOCALNETS_SRC "(" DIVERT_NO_LOCALNETSv4_SRC " or " DIVERT_NO_LOCALNETSv6_SRC ")"
|
#define DIVERT_NO_LOCALNETS_SRC "(" DIVERT_NO_LOCALNETSv4_SRC " or " DIVERT_NO_LOCALNETSv6_SRC ")"
|
||||||
#define DIVERT_NO_LOCALNETS_DST "(" DIVERT_NO_LOCALNETSv4_DST " or " DIVERT_NO_LOCALNETSv6_DST ")"
|
#define DIVERT_NO_LOCALNETS_DST "(" DIVERT_NO_LOCALNETSv4_DST " or " DIVERT_NO_LOCALNETSv6_DST ")"
|
||||||
|
|
||||||
#define DIVERT_TCP_NOT_EMPTY "(!tcp or tcp.Syn or tcp.PayloadLength>0)"
|
#define DIVERT_TCP_NOT_EMPTY "(!tcp or tcp.Syn or tcp.Rst or tcp.Fin or tcp.PayloadLength>0)"
|
||||||
#define DIVERT_TCP_INBOUNDS "(tcp.Ack and tcp.Syn or tcp.Rst or tcp.Fin)"
|
#define DIVERT_TCP_INBOUNDS "(tcp.Ack and tcp.Syn or tcp.Rst or tcp.Fin)"
|
||||||
|
|
||||||
// HTTP/1.? 30(2|7)
|
// HTTP/1.? 30(2|7)
|
||||||
@ -2267,9 +2267,9 @@ int main(int argc, char **argv)
|
|||||||
if (dp->desync_ttl6 == 0xFF) dp->desync_ttl6=dp->desync_ttl;
|
if (dp->desync_ttl6 == 0xFF) dp->desync_ttl6=dp->desync_ttl;
|
||||||
if (!AUTOTTL_ENABLED(dp->desync_autottl6)) dp->desync_autottl6 = dp->desync_autottl;
|
if (!AUTOTTL_ENABLED(dp->desync_autottl6)) dp->desync_autottl6 = dp->desync_autottl;
|
||||||
if (AUTOTTL_ENABLED(dp->desync_autottl))
|
if (AUTOTTL_ENABLED(dp->desync_autottl))
|
||||||
DLOG("[profile %d] autottl ipv4 %u:%u-%u\n",dp->n,dp->desync_autottl.delta,dp->desync_autottl.min,dp->desync_autottl.max);
|
DLOG("profile %d autottl ipv4 %u:%u-%u\n",dp->n,dp->desync_autottl.delta,dp->desync_autottl.min,dp->desync_autottl.max);
|
||||||
if (AUTOTTL_ENABLED(dp->desync_autottl6))
|
if (AUTOTTL_ENABLED(dp->desync_autottl6))
|
||||||
DLOG("[profile %d] autottl ipv6 %u:%u-%u\n",dp->n,dp->desync_autottl6.delta,dp->desync_autottl6.min,dp->desync_autottl6.max);
|
DLOG("profile %d autottl ipv6 %u:%u-%u\n",dp->n,dp->desync_autottl6.delta,dp->desync_autottl6.min,dp->desync_autottl6.max);
|
||||||
split_compat(dp);
|
split_compat(dp);
|
||||||
#ifndef __CYGWIN__
|
#ifndef __CYGWIN__
|
||||||
if (params.droproot && dp->hostlist_auto && chown(dp->hostlist_auto->filename, params.uid, -1))
|
if (params.droproot && dp->hostlist_auto && chown(dp->hostlist_auto->filename, params.uid, -1))
|
||||||
|
@ -12,10 +12,6 @@
|
|||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef __linux__
|
|
||||||
#include <linux/tcp.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
#include "andr/ifaddrs.h"
|
#include "andr/ifaddrs.h"
|
||||||
#else
|
#else
|
||||||
@ -23,6 +19,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "helpers.h"
|
#include "helpers.h"
|
||||||
|
#include "linux_compat.h"
|
||||||
|
|
||||||
int unique_size_t(size_t *pu, int ct)
|
int unique_size_t(size_t *pu, int ct)
|
||||||
{
|
{
|
||||||
@ -481,7 +478,7 @@ void msleep(unsigned int ms)
|
|||||||
bool socket_supports_notsent()
|
bool socket_supports_notsent()
|
||||||
{
|
{
|
||||||
int sfd;
|
int sfd;
|
||||||
struct tcp_info tcpi;
|
struct tcp_info_new tcpi;
|
||||||
|
|
||||||
sfd = socket(AF_INET,SOCK_STREAM,0);
|
sfd = socket(AF_INET,SOCK_STREAM,0);
|
||||||
if (sfd<0) return false;
|
if (sfd<0) return false;
|
||||||
@ -494,11 +491,11 @@ bool socket_supports_notsent()
|
|||||||
}
|
}
|
||||||
close(sfd);
|
close(sfd);
|
||||||
|
|
||||||
return ts>=((char *)&tcpi.tcpi_notsent_bytes - (char *)&tcpi.tcpi_state + sizeof(tcpi.tcpi_notsent_bytes));
|
return ts>=((char *)&tcpi.tcpi_notsent_bytes - (char *)&tcpi + sizeof(tcpi.tcpi_notsent_bytes));
|
||||||
}
|
}
|
||||||
bool socket_has_notsent(int sfd)
|
bool socket_has_notsent(int sfd)
|
||||||
{
|
{
|
||||||
struct tcp_info tcpi;
|
struct tcp_info_new tcpi;
|
||||||
socklen_t ts = sizeof(tcpi);
|
socklen_t ts = sizeof(tcpi);
|
||||||
|
|
||||||
if (getsockopt(sfd, IPPROTO_TCP, TCP_INFO, (char *)&tcpi, &ts) < 0)
|
if (getsockopt(sfd, IPPROTO_TCP, TCP_INFO, (char *)&tcpi, &ts) < 0)
|
||||||
|
99
tpws/linux_compat.h
Normal file
99
tpws/linux_compat.h
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
#ifdef __linux__
|
||||||
|
|
||||||
|
#include <linux/tcp.h>
|
||||||
|
|
||||||
|
// workaround for old headers
|
||||||
|
|
||||||
|
struct tcp_info_new {
|
||||||
|
__u8 tcpi_state;
|
||||||
|
__u8 tcpi_ca_state;
|
||||||
|
__u8 tcpi_retransmits;
|
||||||
|
__u8 tcpi_probes;
|
||||||
|
__u8 tcpi_backoff;
|
||||||
|
__u8 tcpi_options;
|
||||||
|
__u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
|
||||||
|
__u8 tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2;
|
||||||
|
|
||||||
|
__u32 tcpi_rto;
|
||||||
|
__u32 tcpi_ato;
|
||||||
|
__u32 tcpi_snd_mss;
|
||||||
|
__u32 tcpi_rcv_mss;
|
||||||
|
|
||||||
|
__u32 tcpi_unacked;
|
||||||
|
__u32 tcpi_sacked;
|
||||||
|
__u32 tcpi_lost;
|
||||||
|
__u32 tcpi_retrans;
|
||||||
|
__u32 tcpi_fackets;
|
||||||
|
|
||||||
|
/* Times. */
|
||||||
|
__u32 tcpi_last_data_sent;
|
||||||
|
__u32 tcpi_last_ack_sent; /* Not remembered, sorry. */
|
||||||
|
__u32 tcpi_last_data_recv;
|
||||||
|
__u32 tcpi_last_ack_recv;
|
||||||
|
|
||||||
|
/* Metrics. */
|
||||||
|
__u32 tcpi_pmtu;
|
||||||
|
__u32 tcpi_rcv_ssthresh;
|
||||||
|
__u32 tcpi_rtt;
|
||||||
|
__u32 tcpi_rttvar;
|
||||||
|
__u32 tcpi_snd_ssthresh;
|
||||||
|
__u32 tcpi_snd_cwnd;
|
||||||
|
__u32 tcpi_advmss;
|
||||||
|
__u32 tcpi_reordering;
|
||||||
|
|
||||||
|
__u32 tcpi_rcv_rtt;
|
||||||
|
__u32 tcpi_rcv_space;
|
||||||
|
|
||||||
|
__u32 tcpi_total_retrans;
|
||||||
|
|
||||||
|
__u64 tcpi_pacing_rate;
|
||||||
|
__u64 tcpi_max_pacing_rate;
|
||||||
|
__u64 tcpi_bytes_acked; /* RFC4898 tcpEStatsAppHCThruOctetsAcked */
|
||||||
|
__u64 tcpi_bytes_received; /* RFC4898 tcpEStatsAppHCThruOctetsReceived */
|
||||||
|
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
|
||||||
|
__u32 tcpi_segs_in; /* RFC4898 tcpEStatsPerfSegsIn */
|
||||||
|
|
||||||
|
__u32 tcpi_notsent_bytes;
|
||||||
|
__u32 tcpi_min_rtt;
|
||||||
|
__u32 tcpi_data_segs_in; /* RFC4898 tcpEStatsDataSegsIn */
|
||||||
|
__u32 tcpi_data_segs_out; /* RFC4898 tcpEStatsDataSegsOut */
|
||||||
|
|
||||||
|
__u64 tcpi_delivery_rate;
|
||||||
|
|
||||||
|
__u64 tcpi_busy_time; /* Time (usec) busy sending data */
|
||||||
|
__u64 tcpi_rwnd_limited; /* Time (usec) limited by receive window */
|
||||||
|
__u64 tcpi_sndbuf_limited; /* Time (usec) limited by send buffer */
|
||||||
|
|
||||||
|
__u32 tcpi_delivered;
|
||||||
|
__u32 tcpi_delivered_ce;
|
||||||
|
|
||||||
|
__u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
|
||||||
|
__u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */
|
||||||
|
__u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */
|
||||||
|
__u32 tcpi_reord_seen; /* reordering events seen */
|
||||||
|
|
||||||
|
__u32 tcpi_rcv_ooopack; /* Out-of-order packets received */
|
||||||
|
|
||||||
|
__u32 tcpi_snd_wnd; /* peer's advertised receive window after
|
||||||
|
* scaling (bytes)
|
||||||
|
*/
|
||||||
|
__u32 tcpi_rcv_wnd; /* local advertised receive window after
|
||||||
|
* scaling (bytes)
|
||||||
|
*/
|
||||||
|
|
||||||
|
__u32 tcpi_rehash; /* PLB or timeout triggered rehash attempts */
|
||||||
|
|
||||||
|
__u16 tcpi_total_rto; /* Total number of RTO timeouts, including
|
||||||
|
* SYN/SYN-ACK and recurring timeouts.
|
||||||
|
*/
|
||||||
|
__u16 tcpi_total_rto_recoveries; /* Total number of RTO
|
||||||
|
* recoveries, including any
|
||||||
|
* unfinished recovery.
|
||||||
|
*/
|
||||||
|
__u32 tcpi_total_rto_time; /* Total time spent in RTO recoveries
|
||||||
|
* in milliseconds, including any
|
||||||
|
* unfinished recovery.
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -18,7 +18,7 @@
|
|||||||
#define HOSTLIST_AUTO_FAIL_THRESHOLD_DEFAULT 3
|
#define HOSTLIST_AUTO_FAIL_THRESHOLD_DEFAULT 3
|
||||||
#define HOSTLIST_AUTO_FAIL_TIME_DEFAULT 60
|
#define HOSTLIST_AUTO_FAIL_TIME_DEFAULT 60
|
||||||
|
|
||||||
#define FIX_SEG_DEFAULT_MAX_WAIT 30
|
#define FIX_SEG_DEFAULT_MAX_WAIT 50
|
||||||
|
|
||||||
enum bindll { unwanted=0, no, prefer, force };
|
enum bindll { unwanted=0, no, prefer, force };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user