Uses msgset.write_header and header_len again.
This commit is contained in:
@ -826,6 +826,19 @@ static cw_StateMachineState_t statemachine_states[]={
|
||||
{0,0,0}
|
||||
};
|
||||
|
||||
static int write_header(struct cw_ElemHandler * handler, uint8_t * dst, int len)
|
||||
{
|
||||
if (handler->vendor)
|
||||
return len + cw_put_elem_vendor_hdr(dst, handler->vendor, handler->id, len);
|
||||
|
||||
return len + cw_put_elem_hdr(dst, handler->id, len);
|
||||
}
|
||||
|
||||
static int header_len(struct cw_ElemHandler * handler)
|
||||
{
|
||||
return handler->vendor ? 10 : 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct cw_MsgSet * capwap_register_msg_set(struct cw_MsgSet * set, int mode){
|
||||
@ -843,6 +856,9 @@ struct cw_MsgSet * capwap_register_msg_set(struct cw_MsgSet * set, int mode){
|
||||
mavl_insert_ptr(set->types_tree,CW_TYPE_DWORD);
|
||||
mavl_insert_ptr(set->types_tree,CW_TYPE_WORD);
|
||||
|
||||
set->write_header = write_header;
|
||||
set->header_len = header_len;
|
||||
|
||||
cw_dbg(DBG_INFO,"CAPWAP: Done register messages");
|
||||
return set;
|
||||
}
|
||||
|
@ -297,9 +297,9 @@ int cisco_out_ap_regulatory_domain(struct cw_ElemHandler * eh,
|
||||
}
|
||||
}
|
||||
|
||||
start = cw_header_len(eh);
|
||||
start = params->msgset->header_len(eh);
|
||||
len = cw_ktv_write_struct(params->local_cfg,NULL,type,key,ob+start);
|
||||
ob += cw_write_header(eh,ob,len);
|
||||
ob += params->msgset->write_header(eh,ob,len);
|
||||
|
||||
idx++;
|
||||
|
||||
@ -1869,8 +1869,11 @@ static struct cw_ElemDef change_state_event_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 1, CW_IGNORE},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_OPER_STATE_DETAIL_CAUSE, 1, CW_IGNORE},
|
||||
|
||||
{0, 0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0},
|
||||
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,31 @@ static struct cw_Mod * capwap_mod = NULL;
|
||||
static struct cw_Mod * capwap80211_mod = NULL;
|
||||
|
||||
|
||||
static int write_header(struct cw_ElemHandler * handler, uint8_t * dst, int len)
|
||||
{
|
||||
if (handler->proto == 0){
|
||||
if (handler->vendor)
|
||||
return len + cw_put_elem_vendor_hdr(dst, handler->vendor, handler->id, len);
|
||||
|
||||
return len + cw_put_elem_hdr(dst, handler->id, len);
|
||||
}
|
||||
/* put the lwap elem header */
|
||||
lw_set_dword(dst + 10, handler->vendor);
|
||||
lw_set_word(dst + 14, handler->id);
|
||||
return len + 6 + cw_put_elem_vendor_hdr(dst, handler->vendor,
|
||||
CISCO_ELEM_SPAM_VENDOR_SPECIFIC, len+6);
|
||||
|
||||
}
|
||||
|
||||
static int header_len(struct cw_ElemHandler * handler)
|
||||
{
|
||||
if (handler->proto==0)
|
||||
return handler->vendor ? 10 : 4;
|
||||
|
||||
return 16;
|
||||
}
|
||||
|
||||
|
||||
static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
|
||||
{
|
||||
cw_dbg(DBG_INFO,"CISCO: Register messages");
|
||||
@ -35,6 +60,8 @@ static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
|
||||
capwap_mod->register_messages(set, CW_MOD_MODE_CAPWAP);
|
||||
capwap80211_mod->register_messages(set, CW_MOD_MODE_BINDINGS);
|
||||
cisco_register_msg_set(set,CW_MOD_MODE_CAPWAP);
|
||||
set->write_header = write_header;
|
||||
set->header_len = header_len;
|
||||
|
||||
|
||||
/* cw_dbg(DBG_MOD,"Cisco: loading cisco message set");*/
|
||||
@ -193,31 +220,6 @@ static struct cw_Mod capwap_ac = {
|
||||
};
|
||||
*/
|
||||
|
||||
static int write_header(struct cw_ElemHandler * handler, uint8_t * dst, int len)
|
||||
{
|
||||
if (handler->proto == 0){
|
||||
if (handler->vendor)
|
||||
return len + cw_put_elem_vendor_hdr(dst, handler->vendor, handler->id, len);
|
||||
|
||||
return len + cw_put_elem_hdr(dst, handler->id, len);
|
||||
}
|
||||
/* put the lwap elem header */
|
||||
lw_set_dword(dst + 10, handler->vendor);
|
||||
lw_set_word(dst + 14, handler->id);
|
||||
return len + 6 + cw_put_elem_vendor_hdr(dst, handler->vendor,
|
||||
CISCO_ELEM_SPAM_VENDOR_SPECIFIC, len+6);
|
||||
|
||||
}
|
||||
|
||||
static int header_len(struct cw_ElemHandler * handler)
|
||||
{
|
||||
if (handler->proto==0)
|
||||
return handler->vendor ? 10 : 4;
|
||||
|
||||
return 16;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int static setup_cfg(struct conn * conn)
|
||||
{
|
||||
|
Reference in New Issue
Block a user