diff --git a/src/capwap/Makefile b/src/capwap/Makefile index 0a4d40a5..93d8a313 100644 --- a/src/capwap/Makefile +++ b/src/capwap/Makefile @@ -122,6 +122,7 @@ CAPWAPOBJS= \ cw_readelem_radio_operational_state.o \ cw_readelem_statistics_timer.o \ cw_readelem_mtu_discovery_padding.o \ + cw_readelem_vendor_specific_payload.o \ cw_readelem_wtp_reboot_statistics.o\ cwmsg_addelem_vendor_cisco_ap_timesync.o \ lw_checksum.o diff --git a/src/capwap/capwap.h b/src/capwap/capwap.h index 01c07f59..7486f65e 100644 --- a/src/capwap/capwap.h +++ b/src/capwap/capwap.h @@ -373,6 +373,7 @@ extern void cwsend_conf_status_response(struct conn * conn,int seqnum, int rc, s extern void cwsend_unknown_response(struct conn * conn,int seqnum, int unknow_request); + extern const char * cw_msgelemtostr(int elem); extern const char * cw_msgtostr(int type); @@ -388,6 +389,8 @@ extern int cw_readelem_radio_operational_state(struct radioinfo * radioinfo, int extern int cw_readelem_statistics_timer(uint16_t *timer, int type, uint8_t * msgelem, int len); extern int cw_readelem_result_code(uint32_t *result_code, int type, uint8_t * msgelem, int len); +extern int cw_readelem_mtu_discovery_padding(int type,uint8_t *msgelem, int len); +extern int cw_readelem_vendor_specific_payload(void * data, int msgtype, int elemtype,uint8_t *msgelem, int len); diff --git a/src/capwap/cwread_discovery_request.c b/src/capwap/cwread_discovery_request.c index de03eaf1..c05ed902 100644 --- a/src/capwap/cwread_discovery_request.c +++ b/src/capwap/cwread_discovery_request.c @@ -62,9 +62,12 @@ static int wtpinfo_readelem_discovery_req(void *eparm, int type, goto foundX; /* non-mandatory mesage lements */ - if (cw_readelem_mtu_discovery_padding(type,msgelem,len)) + if (cw_readelem_mtu_discovery_padding(type, msgelem, len)) + return 1; + + if (cw_readelem_vendor_specific_payload + (e->wtpinfo, CWMSG_DISCOVERY_REQUEST, type, msgelem, len)) return 1; - return 0; foundX: