Update goodbyedpi.c
This commit is contained in:
parent
af3710abeb
commit
1d00c56872
129
src/goodbyedpi.c
129
src/goodbyedpi.c
|
|
@ -184,17 +184,12 @@ static void add_filter_str(int proto, int port) {
|
|||
size_t new_filter_size = strlen(filter_string) + (proto == IPPROTO_UDP ? strlen(udp) : strlen(tcp)) + 16;
|
||||
char *new_filter = malloc(new_filter_size);
|
||||
|
||||
if (proto == IPPROTO_UDP) {
|
||||
snprintf(new_filter, new_filter_size, udp, port, port);
|
||||
} else {
|
||||
snprintf(new_filter, new_filter_size, tcp, port, port);
|
||||
}
|
||||
sprintf(new_filter, proto == IPPROTO_UDP ? udp : tcp, port, port);
|
||||
|
||||
free(filter_string);
|
||||
filter_string = new_filter;
|
||||
}
|
||||
|
||||
|
||||
static void add_ip_id_str(int id) {
|
||||
const char *ipid = " or ip.Id == %d";
|
||||
char *addfilter = malloc(strlen(ipid) + 16);
|
||||
|
|
@ -420,92 +415,42 @@ static const char *find_http_method_end(const char *pkt, unsigned int http_frag,
|
|||
const char *method_end = NULL;
|
||||
int fragmented = 0;
|
||||
|
||||
switch (*pkt) {
|
||||
case 'G':
|
||||
if (strncmp(pkt, "GET", 3) == 0) {
|
||||
method_end = pkt + 3;
|
||||
}
|
||||
break;
|
||||
case 'P':
|
||||
if (strncmp(pkt, "POST", 4) == 0) {
|
||||
method_end = pkt + 4;
|
||||
}
|
||||
break;
|
||||
case 'H':
|
||||
if (strncmp(pkt, "HEAD", 4) == 0) {
|
||||
method_end = pkt + 4;
|
||||
}
|
||||
break;
|
||||
case 'O':
|
||||
if (strncmp(pkt, "OPTIONS", 7) == 0) {
|
||||
method_end = pkt + 7;
|
||||
}
|
||||
break;
|
||||
case 'D':
|
||||
if (strncmp(pkt, "DELETE", 6) == 0) {
|
||||
method_end = pkt + 6;
|
||||
}
|
||||
break;
|
||||
case 'T':
|
||||
if (strncmp(pkt, "TRACE", 5) == 0) {
|
||||
method_end = pkt + 5;
|
||||
}
|
||||
break;
|
||||
case 'C':
|
||||
if (strncmp(pkt, "CONNECT", 7) == 0) {
|
||||
method_end = pkt + 7;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (method_end == NULL && (http_frag == 1 || http_frag == 2)) {
|
||||
switch (*pkt) {
|
||||
case 'E':
|
||||
if (strncmp(pkt, "ET", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
if (strncmp(pkt, "ST", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'A':
|
||||
if (strncmp(pkt, "AD", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'N':
|
||||
if (strncmp(pkt, "NS", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
if (strncmp(pkt, "LE", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'R':
|
||||
if (strncmp(pkt, "RACE", http_frag + 1) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
case 'O':
|
||||
if (strncmp(pkt, "ONNECT", http_frag + 1) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (strncmp(pkt, "GET", 3) == 0) {
|
||||
method_end = pkt + 3;
|
||||
} else if (strncmp(pkt, "POST", 4) == 0) {
|
||||
method_end = pkt + 4;
|
||||
} else if (strncmp(pkt, "HEAD", 4) == 0) {
|
||||
method_end = pkt + 4;
|
||||
} else if (strncmp(pkt, "OPTIONS", 7) == 0) {
|
||||
method_end = pkt + 7;
|
||||
} else if (strncmp(pkt, "DELETE", 6) == 0) {
|
||||
method_end = pkt + 6;
|
||||
} else if (strncmp(pkt, "TRACE", 5) == 0) {
|
||||
method_end = pkt + 5;
|
||||
} else if (strncmp(pkt, "CONNECT", 7) == 0) {
|
||||
method_end = pkt + 7;
|
||||
} else if ((http_frag == 1 || http_frag == 2)) {
|
||||
if (strncmp(pkt, "ET", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "ST", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "AD", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "NS", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "LE", http_frag) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "RACE", http_frag + 1) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
} else if (strncmp(pkt, "ONNECT", http_frag + 1) == 0) {
|
||||
method_end = pkt + http_frag - 1;
|
||||
fragmented = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue