From a5ca8481fc901710d0e1abf352f5bc78682c608d Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Fri, 24 Nov 2023 15:09:44 +0100 Subject: [PATCH] dpp: wip3 --- src/cntlr_map.c | 28 ++++++++++++++++------------ src/dpp.c | 6 +++++- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/cntlr_map.c b/src/cntlr_map.c index c026b6e2..856d0a1f 100644 --- a/src/cntlr_map.c +++ b/src/cntlr_map.c @@ -3476,7 +3476,7 @@ int handle_proxied_encap_dpp(void *cntlr, struct cmdu_buff *cmdu, UNUSED(hash); if (!validate_proxied_encap_dpp(cmdu, tv)) { - dbg("cmdu validation: [PROXIED_ENCAP_DPP] failed\n"); + err("cmdu validation: [PROXIED_ENCAP_DPP] failed\n"); return -1; } @@ -3495,7 +3495,7 @@ int handle_proxied_encap_dpp(void *cntlr, struct cmdu_buff *cmdu, /* TODO: what do we do if there is no mac address? * for which frames is this applicable? */ - dbg("DPP: Proxied encap are expected to contain enrollee MAC\n"); + err("DPP: Proxied encap are expected to contain enrollee MAC\n"); return -1; } @@ -3559,30 +3559,34 @@ int handle_proxied_encap_dpp(void *cntlr, struct cmdu_buff *cmdu, return -1; #endif #ifdef USE_LIBDPP + err("%s: Received frametype:%d from enrollee:"MACFMT"\n", __func__, frm->type, MAC2STR(enrollee)); + dump(frame, framelen, "DPP Frame Received"); switch (frm->type) { case DPP_PA_PRESENCE_ANNOUNCEMENT: { int ret; ret = dpp_process_presence_announcement(c->dpp, enrollee, frame, - framelen); + framelen, n); if (ret) { - dbg("Failed to build presence announcement frame!\n"); + err("Failed to build presence announcement frame!\n"); break; } - ret = dpp_set_peer_private_data(c->dpp, enrollee, n); - if (ret) { - dbg("Failed to set private data!\n"); - break; - } - /* FALLTHROUGH */ + //ret = dpp_set_peer_private_data(c->dpp, enrollee, n); + //if (ret) { + // err("Failed to set private data!\n"); + // break; + //} + ///* FALLTHROUGH */ + break; } case DPP_PA_AUTHENTICATION_RESP: case DPP_PUB_AF_GAS_INITIAL_REQ: case DPP_PA_CONFIGURATION_RESULT: case DPP_PA_PEER_DISCOVERY_REQ: case DPP_PA_CONNECTION_STATUS_RESULT: { + err("|%s:%d|\n", __func__ ,__LINE__); void *event = dpp_sm_create_event(c->dpp, enrollee, DPP_EVENT_RX_FRAME, framelen, frame); @@ -3595,7 +3599,7 @@ int handle_proxied_encap_dpp(void *cntlr, struct cmdu_buff *cmdu, } default: - dbg("Unknown frame!\n"); + err("Unknown frame!\n"); break; } #endif @@ -3645,7 +3649,7 @@ int handle_direct_encap_dpp(void *cntlr, struct cmdu_buff *cmdu, ret = dpp_process_presence_announcement(c->dpp, cmdu->origin, frame, - framelen); + framelen, NULL); if (ret) { dbg("Failed to build presence announcement frame!\n"); break; diff --git a/src/dpp.c b/src/dpp.c index ed7222d9..0ddcf790 100644 --- a/src/dpp.c +++ b/src/dpp.c @@ -275,17 +275,19 @@ int dpp_frame_handler(void *dpp, uint8_t *smac, enum dpp_event ev, return -1; } - dbg("DPP frametype %s\n", dpp_frame_type2str(frametype)); + err("DPP frametype %s\n", dpp_frame_type2str(frametype)); c = dpp_get_ctx_private_data(dpp); if (!c) return -1; + dump(frame, framelen, "DPP Frame Response"); /* if peer has private data, it is the proxy node * thus we can infer its a proxied encap DPP message */ proxy = dpp_get_peer_private_data(dpp, smac); if (proxy) { + err("|%s:%d|\n", __func__, __LINE__); resp = cntlr_gen_proxied_encap_dpp(c, smac, frametype, frame, framelen, NULL, 0); @@ -295,6 +297,7 @@ int dpp_frame_handler(void *dpp, uint8_t *smac, enum dpp_event ev, return -1; } } else { + err("|%s:%d|\n", __func__, __LINE__); resp = cntlr_gen_direct_encap_dpp(c, smac, frame, framelen); if (!resp) { @@ -311,6 +314,7 @@ int dpp_frame_handler(void *dpp, uint8_t *smac, enum dpp_event ev, list_for_each_entry(n, &c->nodelist, list) { memcpy(resp->origin, n->alid, 6); + err("|%s:%d| send frame to "MACFMT"\n", __func__, __LINE__, MAC2STR(n->alid)); send_cmdu(c, resp); } cmdu_free(resp); -- GitLab