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