Add files via upload
This commit is contained in:
parent
d7cc055037
commit
06500c3fca
|
|
@ -333,26 +333,25 @@ static int find_header_and_get_info(const char *pktdata, unsigned int pktlen,
|
||||||
const char *hdrname,
|
const char *hdrname,
|
||||||
char **hdrnameaddr,
|
char **hdrnameaddr,
|
||||||
char **hdrvalueaddr, unsigned int *hdrvaluelen) {
|
char **hdrvalueaddr, unsigned int *hdrvaluelen) {
|
||||||
|
|
||||||
char *hdr_begin;
|
|
||||||
char *data_addr_rn;
|
char *data_addr_rn;
|
||||||
|
char *hdr_begin;
|
||||||
|
|
||||||
*hdrvaluelen = 0u;
|
*hdrvaluelen = 0u;
|
||||||
*hdrnameaddr = NULL;
|
*hdrnameaddr = NULL;
|
||||||
*hdrvalueaddr = NULL;
|
*hdrvalueaddr = NULL;
|
||||||
|
|
||||||
/* Search for the header using Boyer-Moore */
|
/* Search for the header */
|
||||||
hdr_begin = boyer_moore_search(pktdata, pktlen,
|
hdr_begin = dumb_memmem(pktdata, pktlen,
|
||||||
hdrname, strlen(hdrname));
|
hdrname, strlen(hdrname));
|
||||||
if (!hdr_begin) return FALSE;
|
if (!hdr_begin) return FALSE;
|
||||||
if (pktdata > hdr_begin) return FALSE;
|
if (pktdata > hdr_begin) return FALSE;
|
||||||
|
|
||||||
/* Set header address */
|
/* Set header address */
|
||||||
*hdrnameaddr = hdr_begin;
|
*hdrnameaddr = hdr_begin;
|
||||||
*hdrvalueaddr = hdr_begin + strlen(hdrname);
|
*hdrvalueaddr = hdr_begin + strlen(hdrname);
|
||||||
|
|
||||||
/* Search for header end using Boyer-Moore */
|
/* Search for header end (\r\n) */
|
||||||
data_addr_rn = boyer_moore_search(*hdrvalueaddr,
|
data_addr_rn = dumb_memmem(*hdrvalueaddr,
|
||||||
pktlen - (uintptr_t)(*hdrvalueaddr - pktdata),
|
pktlen - (uintptr_t)(*hdrvalueaddr - pktdata),
|
||||||
"\r\n", 2);
|
"\r\n", 2);
|
||||||
if (data_addr_rn) {
|
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)
|
if (*hdrvaluelen >= 3 && *hdrvaluelen <= HOST_MAXLEN)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Very crude Server Name Indication (TLS ClientHello hostname) extractor.
|
* Very crude Server Name Indication (TLS ClientHello hostname) extractor.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue