aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/ssdp.c
diff options
context:
space:
mode:
authorIvan Kapranov <44571881+koltiradw@users.noreply.github.com>2025-02-17 15:38:24 +0300
committerGitHub <noreply@github.com>2025-02-17 13:38:24 +0100
commit6d2e0ce930c0441a35e5655bd30a35f27a98ee24 (patch)
tree59db82d5802fe18e6cf5e80ab778f3b409174725 /src/lib/protocols/ssdp.c
parentc0c9f649ed807c25a2a14f840d52132521244f04 (diff)
added metadata fields for M-NOTIFY (#2733)
Diffstat (limited to 'src/lib/protocols/ssdp.c')
-rw-r--r--src/lib/protocols/ssdp.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/lib/protocols/ssdp.c b/src/lib/protocols/ssdp.c
index acaf14e47..bd9f857ba 100644
--- a/src/lib/protocols/ssdp.c
+++ b/src/lib/protocols/ssdp.c
@@ -176,6 +176,38 @@ static void ssdp_parse_lines(struct ndpi_detection_module_struct
flow->protos.ssdp.server[packet->server_line.len] = '\0';
}
}
+
+ if (packet->man.ptr != NULL && packet->man.len > 0) {
+ flow->protos.ssdp.man = ndpi_malloc(packet->man.len + 1);
+ if (flow->protos.ssdp.man) {
+ memcpy(flow->protos.ssdp.man, packet->man.ptr, packet->man.len);
+ flow->protos.ssdp.man[packet->man.len] = '\0';
+ }
+ }
+
+ if (packet->mx.ptr != NULL && packet->mx.len > 0) {
+ flow->protos.ssdp.mx = ndpi_malloc(packet->mx.len + 1);
+ if (flow->protos.ssdp.mx) {
+ memcpy(flow->protos.ssdp.mx, packet->mx.ptr, packet->mx.len);
+ flow->protos.ssdp.mx[packet->mx.len] = '\0';
+ }
+ }
+
+ if (packet->st.ptr != NULL && packet->st.len > 0) {
+ flow->protos.ssdp.st = ndpi_malloc(packet->st.len + 1);
+ if (flow->protos.ssdp.st) {
+ memcpy(flow->protos.ssdp.st, packet->st.ptr, packet->st.len);
+ flow->protos.ssdp.st[packet->st.len] = '\0';
+ }
+ }
+
+ if (packet->user_agent_line.ptr != NULL && packet->user_agent_line.len > 0) {
+ flow->protos.ssdp.user_agent = ndpi_malloc(packet->user_agent_line.len + 1);
+ if (flow->protos.ssdp.user_agent) {
+ memcpy(flow->protos.ssdp.user_agent, packet->user_agent_line.ptr, packet->user_agent_line.len);
+ flow->protos.ssdp.user_agent[packet->user_agent_line.len] = '\0';
+ }
+ }
}
static void ndpi_int_ssdp_add_connection(struct ndpi_detection_module_struct