mirror of
https://github.com/ValdikSS/GoodbyeDPI.git
synced 2024-12-22 14:26:08 +00:00
Handle HTTP GET and POST in packets larger than --max-payload
If --max-payload 1200 is used and there's HTTP request with lots of cookies which exceed 1200 bytes in size, this packet would have been skipped as 'too large', and the circumvention won't be applied. Fix this by checking for "GET " or "POST" in the beginning of the packet regardless of its size.
This commit is contained in:
parent
938dce7333
commit
27a6d256f0
@ -216,7 +216,8 @@ static void add_ip_id_str(int id) {
|
|||||||
|
|
||||||
static void add_maxpayloadsize_str(unsigned short maxpayload) {
|
static void add_maxpayloadsize_str(unsigned short maxpayload) {
|
||||||
char *newstr;
|
char *newstr;
|
||||||
const char *maxpayloadsize_str = "and (tcp.PayloadLength ? tcp.PayloadLength < %hu : true)";
|
/* 0x47455420 is "GET ", 0x504F5354 is "POST", big endian. */
|
||||||
|
const char *maxpayloadsize_str = "and (tcp.PayloadLength ? tcp.PayloadLength < %hu or tcp.Payload32[0] == 0x47455420 or tcp.Payload32[0] == 0x504F5354 : true)";
|
||||||
char *addfilter = malloc(strlen(maxpayloadsize_str) + 16);
|
char *addfilter = malloc(strlen(maxpayloadsize_str) + 16);
|
||||||
|
|
||||||
sprintf(addfilter, maxpayloadsize_str, maxpayload);
|
sprintf(addfilter, maxpayloadsize_str, maxpayload);
|
||||||
|
Loading…
Reference in New Issue
Block a user