From 06500c3fcaf0d00b38a04ea67b963f915475ed57 Mon Sep 17 00:00:00 2001 From: SashaXser <24498484+SashaXser@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:26:36 +0400 Subject: [PATCH] Add files via upload --- src/goodbyedpi.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/goodbyedpi.c b/src/goodbyedpi.c index 8d11a63..d6cbb5b 100644 --- a/src/goodbyedpi.c +++ b/src/goodbyedpi.c @@ -333,26 +333,25 @@ static int find_header_and_get_info(const char *pktdata, unsigned int pktlen, const char *hdrname, char **hdrnameaddr, char **hdrvalueaddr, unsigned int *hdrvaluelen) { - - char *hdr_begin; char *data_addr_rn; + char *hdr_begin; *hdrvaluelen = 0u; *hdrnameaddr = NULL; *hdrvalueaddr = NULL; - /* Search for the header using Boyer-Moore */ - hdr_begin = boyer_moore_search(pktdata, pktlen, + /* Search for the header */ + hdr_begin = dumb_memmem(pktdata, pktlen, hdrname, strlen(hdrname)); if (!hdr_begin) return FALSE; if (pktdata > hdr_begin) return FALSE; - /* Set header address */ + /* Set header address */ *hdrnameaddr = hdr_begin; *hdrvalueaddr = hdr_begin + strlen(hdrname); - /* Search for header end using Boyer-Moore */ - data_addr_rn = boyer_moore_search(*hdrvalueaddr, + /* Search for header end (\r\n) */ + data_addr_rn = dumb_memmem(*hdrvalueaddr, pktlen - (uintptr_t)(*hdrvalueaddr - pktdata), "\r\n", 2); if (data_addr_rn) { @@ -360,11 +359,9 @@ static int find_header_and_get_info(const char *pktdata, unsigned int pktlen, if (*hdrvaluelen >= 3 && *hdrvaluelen <= HOST_MAXLEN) return TRUE; } - return FALSE; } - /** * Very crude Server Name Indication (TLS ClientHello hostname) extractor. */