From 99bf1c6f625d0bdb50a6c66b95b3f8b1620869f0 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Mon, 7 Jun 2021 13:17:47 +0200 Subject: [PATCH] cntlr_map_debug: fix offset issue for topology response debugging --- src/core/cntlr_map_debug.c | 45 ++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/core/cntlr_map_debug.c b/src/core/cntlr_map_debug.c index e82d3568..5f018ace 100644 --- a/src/core/cntlr_map_debug.c +++ b/src/core/cntlr_map_debug.c @@ -93,7 +93,9 @@ struct tlv_ap_oper_bss { */ struct tlv_ap_oper_bss *tlv = (struct tlv_ap_oper_bss *)tv[1][0]->data; uint8_t *data = (uint8_t *) tlv + 1; - int i; + int i, offset = 0; + + offset += 1; trace("TLV: %s\n", map_stringify_tlv_type(tv[1][0]->type)); @@ -103,11 +105,11 @@ struct tlv_ap_oper_bss { int j; trace("\t\tradio_id: " MACFMT "\n", - MAC2STR(data)); - data += 6; + MAC2STR(&tlv[offset])); + offset += 6; - num_bss = *data; - data += 1; + memcpy(&num_bss, &tlv[offset], 1); + offset += 1; trace("\t\tbss_nr: %d\n", num_bss); @@ -115,18 +117,18 @@ struct tlv_ap_oper_bss { uint8_t ssidlen = 0; trace("\t\t\tbssid: " MACFMT "\n", - MAC2STR(data)); - data += 6; + MAC2STR(&tlv[offset])); + offset += 6; - ssidlen = *data; + memcpy(&ssidlen, &tlv[offset], 1); trace("\t\t\tssid_len: %d\n", ssidlen); - data += 1; + offset += 1; trace("\t\t\tssid: %.*s\n", ssidlen, - data); - data += ssidlen; + &tlv[offset]); + offset += ssidlen; } } } @@ -146,8 +148,9 @@ struct tlv_assoc_client { } __attribute__((packed)); */ struct tlv_assoc_client *tlv = (struct tlv_assoc_client *)tv[2][0]->data; - uint8_t *data = (uint8_t *) tlv + 1; - int i; + int i, offset = 0; + + offset += 1; trace("TLV: %s\n", map_stringify_tlv_type(tv[2][0]->type)); @@ -158,22 +161,22 @@ struct tlv_assoc_client { int j; trace("\t\tbssid: " MACFMT "\n", - MAC2STR(data)); - data += 6; + MAC2STR(&tlv[offset])); + offset += 6; - num_client = BUF_GET_BE16(data); - data += 2; + num_client = BUF_GET_BE16(tlv[offset]); + offset += 2; trace("\t\tassoc_clients_nr: %u\n", num_client); for (j = 0; j < num_client; j++) { uint16_t conntime = 0; trace("\t\t\tclient_addr: " MACFMT "\n", - MAC2STR(data)); - data += 6; + MAC2STR(&tlv[offset])); + offset += 6; - conntime = BUF_GET_BE16(data); - data += 2; + conntime = BUF_GET_BE16(tlv[offset]); + offset += 2; trace("\t\t\tuptime: 0x%04x\n", conntime); } } -- GitLab