moved local_cfg, remote_cfg ... to cw_ElemData struct

This commit is contained in:
2022-07-28 01:36:16 +02:00
parent 6ac1c87b2f
commit b894c00a7e
86 changed files with 360 additions and 243 deletions

View File

@ -30,6 +30,7 @@ DNAME := $(LIBARCHDIR)/mod_capwap.so
CFLAGS+=-fPIC
CFLAGS+= -I ../../ -I../ -I../../include
CFLAGS+=$(INC2)
all: $(SNAME) $(DNAME)
static: $(SNAME)

View File

@ -549,6 +549,7 @@ static struct cw_ElemDef change_state_event_request_elements[] ={
static cw_State_t change_state_event_response_states[] = {
{CAPWAP_STATE_JOIN,CAPWAP_STATE_JOIN},
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
{0,0}
};
static struct cw_ElemDef change_state_event_response_elements[] ={

View File

@ -16,6 +16,6 @@ int capwap_in_ac_descriptor(struct cw_ElemHandler *eh,
};
return cw_read_ac_descriptor(params->conn->remote_cfg,eh,params,data,len,allowed);
return cw_read_ac_descriptor(params->remote_cfg,eh,params,data,len,allowed);
}

View File

@ -20,7 +20,7 @@
* @file
* @brief Implements cw_in_capwap_control_ip_address
*/
#include "cw/conn.h"
#include "mod_capwap.h"
@ -32,15 +32,15 @@ int capwap_in_capwap_control_ip_address(struct cw_ElemHandler *eh,
int idx;
sprintf(key,"%s/address",eh->key);
idx = cw_ktv_idx_get(params->conn->remote_cfg,key);
idx = cw_ktv_idx_get(params->remote_cfg,key);
/* printf("SKEY is %s , idx: %d\n",key,idx);*/
sprintf(key,"%s/address.%d",eh->key,idx+1);
cw_ktv_add(params->conn->remote_cfg,key,CW_TYPE_IPADDRESS,NULL,data,len-2);
cw_ktv_add(params->remote_cfg,key,CW_TYPE_IPADDRESS,NULL,data,len-2);
sprintf(key,"%s/wtps.%d",eh->key,idx+1);
cw_ktv_add(params->conn->remote_cfg,key,CW_TYPE_WORD,NULL,data+len-2,2);
cw_ktv_add(params->remote_cfg,key,CW_TYPE_WORD,NULL,data+len-2,2);
/* if (handler-id == CW_ELEM_CAPWAP_CONTROL_IPV4_ADDRESS) {
struct sockaddr_in addr;

View File

@ -36,7 +36,7 @@ int capwap_in_mtu_discovery_padding(struct cw_ElemHandler *eh,
cw_dbg(DBG_RFC,
"MTU discovery padding msg elem contains %d non-0xFF byte(s) out of %d, See RFC 5415.",
n, len);
if (params->conn->strict_capwap)
if (0 /*params->conn->strict_capwap*/)
return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT;
}
return CAPWAP_RESULT_SUCCESS;

View File

@ -22,14 +22,14 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler,
vendor_id = cw_get_dword(data);
elem_id = cw_get_word(data + 4);
vhandler = cw_msgset_get_elemhandler(params->conn->msgset,0,vendor_id,elem_id);
vhandler = cw_msgset_get_elemhandler(params->msgset,0,vendor_id,elem_id);
if (!vhandler) {
cw_dbg(DBG_WARN,
"Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.",
cw_strvendor(vendor_id), elem_id, params->msgdata->type,
params->msgdata->name, cw_strstate(params->conn->capwap_state));
params->msgdata->name, NULL /*cw_strstate(params->conn->capwap_state)*/);
return 0;
}

View File

@ -19,6 +19,7 @@
#include <stdlib.h>
#include <string.h>
#include "cw/conn.h"
#include "mod_capwap.h"
#include "cw/dbg.h"
@ -133,7 +134,7 @@ int capwap_in_wtp_board_data(struct cw_ElemHandler *eh, struct cw_ElemHandlerPar
char vendor_key[128];
mavl_t cfg = params->conn->remote_cfg;
mavl_t cfg = params->remote_cfg;
sprintf(vendor_key,"%s/%s",eh->key,CW_SKEY_VENDOR);

View File

@ -26,7 +26,8 @@ int capwap_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPar
int len)
{
int rc;
rc =cw_read_wtp_descriptor(params->conn->remote_cfg, params->conn, eh, data, len, NULL);
/*rc =cw_read_wtp_descriptor(params->remote_cfg, params->conn, eh, data, len, NULL);*/
rc =cw_read_wtp_descriptor(params->remote_cfg, NULL, eh, data, len, NULL);
return rc;
}

View File

@ -58,22 +58,22 @@ int capwap_out_ac_descriptor(struct cw_ElemHandler * eh,
uint8_t *d = dst+4;
char key[CW_KTV_MAX_KEY_LEN];
d+=put_ac_status(params->conn->local_cfg,
params->conn->global_cfg,
d+=put_ac_status(params->local_cfg,
params->global_cfg,
d, eh->key);
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
d+=cw_write_descriptor_subelem (d, params->local_cfg,
CAPWAP_SUBELEM_AC_HARDWARE_VERSION, key);
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
d+=cw_write_descriptor_subelem (d, params->local_cfg,
CAPWAP_SUBELEM_AC_SOFTWARE_VERSION, key);
len = d-dst-4;
l = len + cw_put_elem_hdr(dst,eh->id,len);
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,dst,l);
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,dst,l);
return l;

View File

@ -63,9 +63,9 @@ int capwap_out_capwap_control_ip_address(struct cw_ElemHandler * eh,
int l;
sprintf(key,"%s/address.%d",eh->key,i);
address = cw_ktv_get(params->conn->local_cfg,key,CW_TYPE_IPADDRESS);
address = cw_ktv_get(params->local_cfg,key,CW_TYPE_IPADDRESS);
sprintf(key,"%s/wtps.%d",eh->key,i);
wtps = cw_ktv_get_word(params->conn->local_cfg,key,0);
wtps = cw_ktv_get_word(params->local_cfg,key,0);
i++;
if (address==NULL){
break;
@ -93,7 +93,7 @@ int capwap_out_capwap_control_ip_address(struct cw_ElemHandler * eh,
l = address->type->put(address,d+4);
l+=cw_put_word(dst+4+l,wtps);
l+=cw_put_elem_hdr(d,eh->id,l);
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,d+4,l-4);
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,d+4,l-4);
d+=l;
}while(address != NULL);

View File

@ -1,3 +1,4 @@
#include "cw/conn.h"
#include "mod_capwap.h"
#include "cw/cw.h"
@ -5,7 +6,7 @@ int capwap_out_capwap_local_ip_address(struct cw_ElemHandler * eh,
struct cw_ElemHandlerParams * params, uint8_t * dst)
{
cw_KTV_t * ip;
ip = cw_ktv_get(params->conn->local_cfg,eh->key,CW_TYPE_IPADDRESS);
ip = cw_ktv_get(params->local_cfg,eh->key,CW_TYPE_IPADDRESS);
if (ip==NULL){
return 0;
}

View File

@ -1,4 +1,5 @@
#include "cw/conn.h"
#include "cw/log.h"
#include "cw/ktv.h"
#include "cw/msgset.h"
@ -47,7 +48,7 @@ int capwap_out_wtp_board_data(struct cw_ElemHandler * eh,
d=dst+4;
cfg = params->conn->local_cfg;
cfg = params->local_cfg;
sprintf(key,"%s/%s",eh->key,CW_SKEY_VENDOR);
val = cw_ktv_get(cfg,key,CW_TYPE_DWORD);

View File

@ -36,7 +36,7 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
d = dst+4;
sprintf(key,"%s/%s",eh->key,CW_SKEY_MAX_RADIOS);
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
if (val != NULL)
d+=val->type->put(val,d);
else{
@ -45,7 +45,7 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
}
sprintf(key,"%s/%s",eh->key,CW_SKEY_RADIOS_IN_USE);
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
if (val != NULL){
d+=val->type->put(val,d);
}
@ -54,29 +54,30 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
}
/* d+=cw_put_encryption_capabilities_7(d,1); */
d+=cw_put_encryption_subelems(d,params->conn->capwap_mode);
/* d+=cw_put_encryption_subelems(d,params->conn->capwap_mode);*/
d+=cw_put_encryption_subelems(d,0);
/*cw_ktv_dump(params->conn->local_cfg,DBG_INFO,"*** ktv dump ***","","*** end of dump ***");*/
/* hardware version sub element */
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
d+=cw_write_descriptor_subelem (d, params->local_cfg,
CW_SUBELEM_WTP_HARDWARE_VERSION, key);
/* software version sub element */
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
d+=cw_write_descriptor_subelem (d, params->local_cfg,
CW_SUBELEM_WTP_SOFTWARE_VERSION, key);
/* bootloader version sub element */
sprintf(key,"%s/%s",eh->key,CW_SKEY_BOOTLOADER);
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
d+=cw_write_descriptor_subelem (d, params->local_cfg,
CW_SUBELEM_WTP_BOOTLOADER_VERSION, key);
len = d-dst-4;
l = len + cw_put_elem_hdr(dst,eh->id,len);
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,dst,l);
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,dst,l);
return l;
}