From dccf95613c7d2459aea45b1a8046fb5244d02fbe Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Fri, 4 Dec 2020 10:52:21 +0100 Subject: [PATCH] map-controller: change cntlr_gen_8021q_settings arguments --- src/core/cntlr_map.c | 15 +++++++++++++-- src/core/cntlr_tlv_generator.c | 13 +------------ src/core/cntlr_tlv_generator.h | 2 +- src/core/cntlr_ubus.c | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/core/cntlr_map.c b/src/core/cntlr_map.c index d753e5cc..9feb715e 100644 --- a/src/core/cntlr_map.c +++ b/src/core/cntlr_map.c @@ -143,6 +143,7 @@ int handle_ap_autoconfig_wsc(void *cntlr, struct cmdu_cstruct *rec_cmdu) { trace("%s: --->\n", __func__); struct controller *c = (struct controller *) cntlr; + struct agent_policy *a, *found = NULL; struct tlv_default_8021q_settings *p; struct tlv_traffic_sep_policy *p1; struct tlv_ap_radio_identifier *p2; @@ -154,7 +155,7 @@ int handle_ap_autoconfig_wsc(void *cntlr, struct cmdu_cstruct *rec_cmdu) cmdu = (struct cmdu_cstruct *)calloc(1, sizeof(struct cmdu_cstruct)); if (!cmdu) { fprintf(stderr, "failed to malloc cmdu\n"); - return UBUS_STATUS_UNKNOWN_ERROR; + return -1; } memcpy(cmdu->origin, rec_cmdu->origin, 6); @@ -163,7 +164,17 @@ int handle_ap_autoconfig_wsc(void *cntlr, struct cmdu_cstruct *rec_cmdu) strncpy(cmdu->intf_name, rec_cmdu->intf_name, sizeof(cmdu->intf_name) - 1); - p = cntlr_gen_8021q_settings(c, cmdu, rec_cmdu); + list_for_each_entry(a, &c->cfg.policylist, list) { + if (!memcmp(rec_cmdu->origin, a->agent_id, 6)) { + found = a; + break; + } + } + + if (!found) + return -1; + + p = cntlr_gen_8021q_settings(c, a); if (!p) goto fail_cmdu; cmdu->num_tlvs++; diff --git a/src/core/cntlr_tlv_generator.c b/src/core/cntlr_tlv_generator.c index f5a9f9f6..2c8b11c5 100644 --- a/src/core/cntlr_tlv_generator.c +++ b/src/core/cntlr_tlv_generator.c @@ -59,20 +59,9 @@ uint8_t *extract_tlv_by_type(struct cmdu_cstruct *cmdu, uint8_t tlv_type) } struct tlv_default_8021q_settings *cntlr_gen_8021q_settings(struct controller *c, - struct cmdu_cstruct *cmdu, struct cmdu_cstruct *rec_cmdu) + struct agent_policy *a) { struct tlv_default_8021q_settings *p; - struct agent_policy *a, *found = NULL; - - list_for_each_entry(a, &c->cfg.policylist, list) { - if (!memcmp(rec_cmdu->origin, a->agent_id, 6)) { - found = a; - break; - } - } - - if (!found) - return NULL; p = (struct tlv_default_8021q_settings *) calloc(1, sizeof(*p)); if (!p) diff --git a/src/core/cntlr_tlv_generator.h b/src/core/cntlr_tlv_generator.h index 042fc988..d409c491 100644 --- a/src/core/cntlr_tlv_generator.h +++ b/src/core/cntlr_tlv_generator.h @@ -11,7 +11,7 @@ #define CNTLR_TLV_GEN_H struct tlv_default_8021q_settings *cntlr_gen_8021q_settings(struct controller *c, - struct cmdu_cstruct *cmdu, struct cmdu_cstruct *rec_cmdu); + struct agent_policy *a); struct tlv_traffic_sep_policy *cntlr_gen_traffic_sep_policy(struct controller *c, struct cmdu_cstruct *cmdu); struct tlv_wsc *cntlr_gen_wsc(struct controller *c, diff --git a/src/core/cntlr_ubus.c b/src/core/cntlr_ubus.c index 1f98a939..87a378d5 100644 --- a/src/core/cntlr_ubus.c +++ b/src/core/cntlr_ubus.c @@ -911,9 +911,9 @@ static int cntlr_ap_policy_config(struct ubus_context *ctx, struct ubus_object * cmdu_data->tlvs[tlv_index++] = (uint8_t *)p2; - /* Default 802.1Q setting TLV */ // #ifdef PROFILE2 - p3 = cntlr_gen_8021q_settings(c, NULL, cmdu_data); + /* Default 802.1Q setting TLV */ + p3 = cntlr_gen_8021q_settings(c, found); if (!p3) goto fail_cmdu; -- GitLab