From d55c707b480b6b3ac6081674e17d11e87491e458 Mon Sep 17 00:00:00 2001 From: bobyal1 <76859896+bobyal1@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:26:54 +0000 Subject: [PATCH 1/4] user-agent-2 --- .../src/nginx/ngx_http_opentelemetry_module.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c index cd4accb90..c19f2b508 100644 --- a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c +++ b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c @@ -2056,10 +2056,15 @@ static void fillRequestPayload(request_payload* req_payload, ngx_http_request_t* temp_request_method[(r->method_name).len]='\0'; req_payload->request_method = temp_request_method; - //char *temp_user_agent = ngx_pcalloc(r->pool, r->headers_in.user_agent->value.len +1); - //strcpy(temp_user_agent,(const char*)(r->headers_in.user_agent->value.data)); - //temp_user_agent[r->headers_in.user_agent->value.len]='\0'; - //req_payload->user_agent = temp_user_agent; + if(r->headers_in.user_agent != NULL) { + char *temp_user_agent = ngx_pcalloc(r->pool, r->headers_in.user_agent->value.len +1); + strcpy(temp_user_agent,(const char*)(r->headers_in.user_agent->value.data)); + } else { + char *temp_user_agent = 5; + strcpy(temp_user_agent,"None"); + } + temp_user_agent[r->headers_in.user_agent->value.len]='\0'; + req_payload->user_agent = temp_user_agent; ngx_uint_t remote_port = 0; if (r->connection != NULL) { From a22b618f46a68f0e747bb4e1682c77d31cf2ff6a Mon Sep 17 00:00:00 2001 From: bobyal1 <76859896+bobyal1@users.noreply.github.com> Date: Fri, 21 Mar 2025 16:31:52 +0000 Subject: [PATCH 2/4] user-agent-2 defaults to None --- .../src/nginx/ngx_http_opentelemetry_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c index c19f2b508..2cee2db3e 100644 --- a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c +++ b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c @@ -2060,7 +2060,7 @@ static void fillRequestPayload(request_payload* req_payload, ngx_http_request_t* char *temp_user_agent = ngx_pcalloc(r->pool, r->headers_in.user_agent->value.len +1); strcpy(temp_user_agent,(const char*)(r->headers_in.user_agent->value.data)); } else { - char *temp_user_agent = 5; + char *temp_user_agent = ngx_pcalloc(r->pool, 5); strcpy(temp_user_agent,"None"); } temp_user_agent[r->headers_in.user_agent->value.len]='\0'; From 9b3597b878dfacfde6d4fdb04216cb5fbe3a056f Mon Sep 17 00:00:00 2001 From: bobyal1 <76859896+bobyal1@users.noreply.github.com> Date: Fri, 21 Mar 2025 19:35:48 +0000 Subject: [PATCH 3/4] Fix user_agent null issue --- .../src/nginx/ngx_http_opentelemetry_module.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c index 2cee2db3e..7c951597c 100644 --- a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c +++ b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c @@ -2055,13 +2055,17 @@ static void fillRequestPayload(request_payload* req_payload, ngx_http_request_t* strcpy(temp_request_method,(const char*)(r->method_name).data); temp_request_method[(r->method_name).len]='\0'; req_payload->request_method = temp_request_method; - + + int usragntlen=5; + char defusragnt[5] = "None"; + if(r->headers_in.user_agent != NULL) { + usragntlen=r->headers_in.user_agent->value.len +1; + } + char *temp_user_agent = ngx_pcalloc(r->pool, usragntlen); if(r->headers_in.user_agent != NULL) { - char *temp_user_agent = ngx_pcalloc(r->pool, r->headers_in.user_agent->value.len +1); strcpy(temp_user_agent,(const char*)(r->headers_in.user_agent->value.data)); } else { - char *temp_user_agent = ngx_pcalloc(r->pool, 5); - strcpy(temp_user_agent,"None"); + strcpy(temp_user_agent,defusragnt); } temp_user_agent[r->headers_in.user_agent->value.len]='\0'; req_payload->user_agent = temp_user_agent; From d1c5f2ec4af457a8a62555674856b6b045f3fd51 Mon Sep 17 00:00:00 2001 From: bobyal1 <76859896+bobyal1@users.noreply.github.com> Date: Fri, 21 Mar 2025 21:23:15 +0000 Subject: [PATCH 4/4] Fix user agent lengrth ending char --- .../src/nginx/ngx_http_opentelemetry_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c index 7c951597c..ba1e28dd6 100644 --- a/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c +++ b/instrumentation/otel-webserver-module/src/nginx/ngx_http_opentelemetry_module.c @@ -2067,7 +2067,7 @@ static void fillRequestPayload(request_payload* req_payload, ngx_http_request_t* } else { strcpy(temp_user_agent,defusragnt); } - temp_user_agent[r->headers_in.user_agent->value.len]='\0'; + temp_user_agent[usragntlen-1]='\0'; req_payload->user_agent = temp_user_agent; ngx_uint_t remote_port = 0;