Browse Source

Merge 693fa6dbb7 into 39507e66e0

pull/97/merge
Mengü Nazlı 7 years ago
committed by GitHub
parent
commit
f149c614ff
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      src/goodbyedpi.c

19
src/goodbyedpi.c

@ -124,6 +124,7 @@ static struct option long_options[] = {
{"dnsv6-port", required_argument, 0, '@' },
{"dns-verb", no_argument, 0, 'v' },
{"blacklist", required_argument, 0, 'b' },
{"whitelist", required_argument, 0, 'h' },
{"ip-id", required_argument, 0, 'i' },
{0, 0, 0, 0 }
};
@ -353,7 +354,8 @@ int main(int argc, char *argv[]) {
do_http_allports = 0,
do_host_mixedcase = 0,
do_dnsv4_redirect = 0, do_dnsv6_redirect = 0,
do_dns_verb = 0, do_blacklist = 0;
do_dns_verb = 0,
do_blacklist = 0, do_whitelist = 0;
unsigned int http_fragment_size = 0;
unsigned int https_fragment_size = 0;
uint32_t dnsv4_addr = 0;
@ -567,6 +569,13 @@ int main(int argc, char *argv[]) {
exit(EXIT_FAILURE);
}
break;
case 'h':
do_whitelist = 1;
if (!blackwhitelist_load_list(optarg)) {
printf("Can't load whitelist from file!\n");
exit(EXIT_FAILURE);
}
break;
default:
puts("Usage: goodbyedpi.exe [OPTION...]\n"
" -p block passive DPI\n"
@ -588,6 +597,8 @@ int main(int argc, char *argv[]) {
" --dns-verb print verbose DNS redirection messages\n"
" --blacklist [txtfile] perform HTTP tricks only to host names and subdomains from\n"
" supplied text file. This option can be supplied multiple times.\n"
" --whitelist [txtfile] Do not perform HTTP tricks to host names and subdomains from\n"
" supplied text file. This option can be supplied multiple times.\n"
"\n"
" -1 -p -r -s -f 2 -k 2 -n -e 2 (most compatible mode, default)\n"
" -2 -p -r -s -f 2 -k 2 -n -e 40 (better speed for HTTPS yet still compatible)\n"
@ -597,6 +608,11 @@ int main(int argc, char *argv[]) {
}
}
if (do_blacklist && do_whitelist) {
printf("Can't use blacklist and whitelist at the same time!\n");
exit(EXIT_FAILURE);
}
if (!http_fragment_size)
http_fragment_size = 2;
if (!https_fragment_size)
@ -741,6 +757,7 @@ int main(int argc, char *argv[]) {
if (find_header_and_get_info(packet_data, packet_dataLen,
http_host_find, &hdr_name_addr, &hdr_value_addr, &hdr_value_len) &&
hdr_value_len > 0 && hdr_value_len <= HOST_MAXLEN &&
(do_whitelist ? !blackwhitelist_check_hostname(hdr_value_addr, hdr_value_len) : 1) &&
(do_blacklist ? blackwhitelist_check_hostname(hdr_value_addr, hdr_value_len) : 1))
{
host_addr = hdr_value_addr;

Loading…
Cancel
Save