From 4c9d1746c058d55fbea50e60ed4f44bcf51c1cca Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Thu, 29 Mar 2018 08:53:26 +0000 Subject: [PATCH] Work on cw_select_ac function FossilOrigin-Name: e245853b773869ddbf45dc5f454a61e8c7c32817659fe3d629c79eebfd6fbc45 --- actube.workspace | 4 ++-- src/wtp/discovery.c | 46 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/actube.workspace b/actube.workspace index e0162c79..07586c53 100644 --- a/actube.workspace +++ b/actube.workspace @@ -1,11 +1,11 @@ - + - + diff --git a/src/wtp/discovery.c b/src/wtp/discovery.c index af59b0c7..55d0bba1 100644 --- a/src/wtp/discovery.c +++ b/src/wtp/discovery.c @@ -16,11 +16,53 @@ #include "wtp.h" +int cw_select_ac(mlist_t aclist){ + mlistelem_t * e; + mavl_t best_ac; + + best_ac=NULL; + + mlist_foreach(e,aclist){ + char str[1024]; + char key[CW_KTV_MAX_KEY_LEN]; + mavl_t cfg; + int i; + + cw_KTV_t * val; + cfg = mlistelem_get_ptr(e); + val = cw_ktv_get(cfg,"ac-name", CW_TYPE_BSTR16); + if (val==NULL) + continue; + if (best_ac==NULL){ + best_ac=cfg; + } + + + val->type->to_str(val,str,1024); + + i=0; + do { + sprintf(key,"%s.%d","capwap-control-ip-address/wtps",i); + val = cw_ktv_get(cfg,key,CW_TYPE_WORD); + if (val == NULL) + break; + + }while(1); + printf("Here we have an AC: %s\n",str); + + + } + + + + return 0; +} + static int run_discovery(struct conn *conn) { /*// conn->incomming = mbag_create();*/ time_t timer; - uint8_t dtype=0; +/* uint8_t dtype=0;*/ mlist_t discovery_results; struct sockaddr_storage from; @@ -58,7 +100,7 @@ static int run_discovery(struct conn *conn) conn->remote_cfg=cw_ktv_create(); } - + cw_select_ac(discovery_results); /*