aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/ndpi_api.h.in2
-rw-r--r--src/lib/ndpi_utils.c9
-rw-r--r--src/lib/protocols/http.c5
3 files changed, 8 insertions, 8 deletions
diff --git a/src/include/ndpi_api.h.in b/src/include/ndpi_api.h.in
index c99a02024..25c16a56d 100644
--- a/src/include/ndpi_api.h.in
+++ b/src/include/ndpi_api.h.in
@@ -930,7 +930,7 @@ extern "C" {
void ndpi_md5(const u_char *data, size_t data_len, u_char hash[16]);
const char* ndpi_http_method2str(ndpi_http_method m);
- ndpi_http_method ndpi_http_str2method(const char* method);
+ ndpi_http_method ndpi_http_str2method(const char* method, ssize_t method_len);
/* ptree (trie) API */
ndpi_ptree_t* ndpi_ptree_create(void);
diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c
index 72653bb69..5db42cffa 100644
--- a/src/lib/ndpi_utils.c
+++ b/src/lib/ndpi_utils.c
@@ -1567,7 +1567,10 @@ const char* ndpi_http_method2str(ndpi_http_method m) {
/* ******************************************************************** */
-ndpi_http_method ndpi_http_str2method(const char* method) {
+ndpi_http_method ndpi_http_str2method(const char* method, ssize_t method_len) {
+ if(!method || method_len < 3)
+ return(NDPI_HTTP_METHOD_UNKNOWN);
+
switch(method[0]) {
case 'O': return(NDPI_HTTP_METHOD_OPTIONS);
case 'G': return(NDPI_HTTP_METHOD_GET);
@@ -1584,7 +1587,7 @@ ndpi_http_method ndpi_http_str2method(const char* method) {
case 'D': return(NDPI_HTTP_METHOD_DELETE);
case 'T': return(NDPI_HTTP_METHOD_TRACE);
case 'C': return(NDPI_HTTP_METHOD_CONNECT);
+
+ default: return(NDPI_HTTP_METHOD_UNKNOWN);
}
-
- return(NDPI_HTTP_METHOD_UNKNOWN);
}
diff --git a/src/lib/protocols/http.c b/src/lib/protocols/http.c
index d190e1e9b..941c9b431 100644
--- a/src/lib/protocols/http.c
+++ b/src/lib/protocols/http.c
@@ -337,10 +337,7 @@ static void check_content_type_and_change_protocol(struct ndpi_detection_module_
ndpi_check_http_url(ndpi_struct, flow, &flow->http.url[packet->host_line.len]);
}
- if(flow->packet.http_method.len < 3)
- flow->http.method = NDPI_HTTP_METHOD_UNKNOWN;
- else
- flow->http.method = ndpi_http_str2method((const char*)flow->packet.http_method.ptr);
+ flow->http.method = ndpi_http_str2method((const char*)flow->packet.http_method.ptr, flow->packet.http_method.len);
}
if(packet->user_agent_line.ptr != NULL && packet->user_agent_line.len != 0) {