diff options
Diffstat (limited to 'src/lib/protocols/http.c')
-rw-r--r-- | src/lib/protocols/http.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/src/lib/protocols/http.c b/src/lib/protocols/http.c index eb64265ee..d190e1e9b 100644 --- a/src/lib/protocols/http.c +++ b/src/lib/protocols/http.c @@ -265,7 +265,7 @@ static void ndpi_check_user_agent(struct ndpi_detection_module_struct *ndpi_stru // printf("***** [%s:%d] ==> '%s'\n", __FILE__, __LINE__, ua); // printf("***** %u\n", ndpi_check_dga_name(ndpi_struct, NULL, "uclient-fetch]")); - + if((strlen(ua) < 4) || (!strncmp(ua, "test", 4)) || (!strncmp(ua, "<?", 2)) @@ -339,28 +339,8 @@ static void check_content_type_and_change_protocol(struct ndpi_detection_module_ if(flow->packet.http_method.len < 3) flow->http.method = NDPI_HTTP_METHOD_UNKNOWN; - else { - switch(flow->packet.http_method.ptr[0]) { - case 'O': flow->http.method = NDPI_HTTP_METHOD_OPTIONS; break; - case 'G': flow->http.method = NDPI_HTTP_METHOD_GET; break; - case 'H': flow->http.method = NDPI_HTTP_METHOD_HEAD; break; - - case 'P': - switch(flow->packet.http_method.ptr[1]) { - case 'A': flow->http.method = NDPI_HTTP_METHOD_PATCH; break; - case 'O': flow->http.method = NDPI_HTTP_METHOD_POST; break; - case 'U': flow->http.method = NDPI_HTTP_METHOD_PUT; break; - } - break; - - case 'D': flow->http.method = NDPI_HTTP_METHOD_DELETE; break; - case 'T': flow->http.method = NDPI_HTTP_METHOD_TRACE; break; - case 'C': flow->http.method = NDPI_HTTP_METHOD_CONNECT; break; - default: - flow->http.method = NDPI_HTTP_METHOD_UNKNOWN; - break; - } - } + else + flow->http.method = ndpi_http_str2method((const char*)flow->packet.http_method.ptr); } if(packet->user_agent_line.ptr != NULL && packet->user_agent_line.len != 0) { @@ -613,7 +593,7 @@ static u_int16_t http_request_url_offset(struct ndpi_detection_module_struct *nd /* Check first char */ if(!packet->payload_packet_len || !strchr(http_fs,packet->payload[0])) return 0; - + /** FIRST PAYLOAD PACKET FROM CLIENT **/ |