From f5ac7c0d67895691f18a0e25cb15fcd197ff9f29 Mon Sep 17 00:00:00 2001 From: ValdikSS Date: Sun, 11 Jun 2017 21:50:22 +0300 Subject: [PATCH] Change TCP Window Size based on SrcPort, not DstPort. When HTTPS fragment size was set, the program always used it for HTTP, even if HTTP fragmentation was disabled. This is due to a bug which checked DstPort, not SrcPort, and the packets passed DstPort != htons(80) HTTPS check. --- goodbyedpi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/goodbyedpi.c b/goodbyedpi.c index 25f9d12..f66a3b2 100644 --- a/goodbyedpi.c +++ b/goodbyedpi.c @@ -355,11 +355,11 @@ int main(int argc, char *argv[]) { if (addr.Direction == WINDIVERT_DIRECTION_INBOUND && ppTcpHdr->Syn == 1) { //printf("Changing Window Size!\n"); - if (do_fragment_http && ppTcpHdr->DstPort == htons(80)) { + if (do_fragment_http && ppTcpHdr->SrcPort == htons(80)) { change_window_size(packet, http_fragment_size); WinDivertHelperCalcChecksums(packet, packetLen, 0); } - else if (do_fragment_https && ppTcpHdr->DstPort != htons(80)) { + else if (do_fragment_https && ppTcpHdr->SrcPort != htons(80)) { change_window_size(packet, https_fragment_size); WinDivertHelperCalcChecksums(packet, packetLen, 0); }