Fixed a lot of bugs with action lists.
FossilOrigin-Name: 8508ea2ae3a0a1d1ec2ac76ddf1c7813f802c656f4ffb1b463769347405ae85a
This commit is contained in:
parent
25cd668ca7
commit
4423c1d79e
@ -154,10 +154,10 @@ static int cw_action_out_cmp(const void *elem1, const void *elem2)
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if (!e1->item_id) {
|
if (!e1->item_id) {
|
||||||
r = strcmp("", e2->item_id);
|
r = strcmp(CW_ITEM_NONE, e2->item_id);
|
||||||
}
|
}
|
||||||
else if (!e2->item_id){
|
else if (!e2->item_id){
|
||||||
r = strcmp(e1->item_id,"");
|
r = strcmp(e1->item_id,CW_ITEM_NONE);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
r = strcmp(e1->item_id, e2->item_id);
|
r = strcmp(e1->item_id, e2->item_id);
|
||||||
@ -185,7 +185,7 @@ static int cw_action_out_cmp(const void *elem1, const void *elem2)
|
|||||||
void *cw_actionlist_add(struct avltree *t, void *a, size_t s)
|
void *cw_actionlist_add(struct avltree *t, void *a, size_t s)
|
||||||
{
|
{
|
||||||
|
|
||||||
void *r = mavl_replace_data(t, a, sizeof(struct cw_action_in));
|
void *r = mavl_replace_data(t, a, s); //sizeof(struct cw_action_in));
|
||||||
if (r) {
|
if (r) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
@ -199,6 +199,7 @@ void *cw_actionlist_add(struct avltree *t, void *a, size_t s)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "dbg.h" // Tube
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an action list for outgoing message lements
|
* Create an action list for outgoing message lements
|
||||||
@ -212,6 +213,7 @@ cw_actionlist_out_t cw_actionlist_out_create()
|
|||||||
|
|
||||||
cw_action_out_t *cw_actionlist_out_add(cw_actionlist_out_t t, struct cw_action_out * a)
|
cw_action_out_t *cw_actionlist_out_add(cw_actionlist_out_t t, struct cw_action_out * a)
|
||||||
{
|
{
|
||||||
|
DBGX("Adding out action: %d %d %p ",a->msg_id,a->elem_id,a->item_id);
|
||||||
return cw_actionlist_add(t, a, sizeof(struct cw_action_out));
|
return cw_actionlist_add(t, a, sizeof(struct cw_action_out));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ cw_action_out_t capwap_80211_actions_wtp_out[]={
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* 802.11 Radio Information */
|
/* 802.11 Radio Information */
|
||||||
{CW_MSG_DISCOVERY_REQUEST, NULL /*CW_ELEM80211_WTP_RADIO_INFORMATION*/, 0,
|
{CW_MSG_DISCOVERY_REQUEST, CW_ITEM_RADIO_INFOS /*CW_ELEM80211_WTP_RADIO_INFORMATION*/, 0,
|
||||||
CW_ELEM80211_WTP_RADIO_INFORMATION, NULL,cw_out_radio_infos, NULL,1}
|
CW_ELEM80211_WTP_RADIO_INFORMATION, NULL,cw_out_radio_infos, NULL,1}
|
||||||
,
|
,
|
||||||
|
|
||||||
@ -43,8 +43,11 @@ cw_action_out_t capwap_80211_actions_wtp_out[]={
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* 802.11 Radio Information */
|
/* 802.11 Radio Information */
|
||||||
{CW_MSG_JOIN_REQUEST, NULL /*CW_ELEM80211_WTP_RADIO_INFORMATION*/, 0,
|
{CW_MSG_JOIN_REQUEST, CW_ITEM_RADIO_INFOS, 0,
|
||||||
CW_ELEM80211_WTP_RADIO_INFORMATION, NULL,cw_out_radio_infos, NULL,1}
|
CW_ELEM80211_WTP_RADIO_INFORMATION, NULL,cw_out_radio_infos, NULL,1},
|
||||||
|
|
||||||
|
|
||||||
|
{0,0,0}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -89,6 +89,7 @@ const char CW_ITEM_WTP_BOARD_MACADDRESS[]="wtp_board_macadddress";
|
|||||||
const char CW_ITEM_WTP_BOARD_ID[]="wtp_board_id";
|
const char CW_ITEM_WTP_BOARD_ID[]="wtp_board_id";
|
||||||
const char CW_ITEM_WTP_BOARD_REVISION[]="wtp_board_revision";
|
const char CW_ITEM_WTP_BOARD_REVISION[]="wtp_board_revision";
|
||||||
const char CW_ITEM_WTP_BOARD_SERIALNO[]="serial_no";
|
const char CW_ITEM_WTP_BOARD_SERIALNO[]="serial_no";
|
||||||
|
const char CW_ITEM_RADIO_INFOS[]="radio_infos";
|
||||||
|
|
||||||
//const char CW_ITEM_XY[]="wtp_name";
|
//const char CW_ITEM_XY[]="wtp_name";
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ extern const char CW_ITEM_WTP_BOOTLOADER_VERSION[];
|
|||||||
|
|
||||||
extern const char CW_ITEM_WTP_RADIOS_IN_USE[];
|
extern const char CW_ITEM_WTP_RADIOS_IN_USE[];
|
||||||
extern const char CW_ITEM_WTP_MAX_RADIOS[];
|
extern const char CW_ITEM_WTP_MAX_RADIOS[];
|
||||||
|
extern const char CW_ITEM_RADIO_INFOS[];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,11 +63,18 @@ int cw_put_msg(struct conn *conn, uint8_t * rawout)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DBGX("Found am %p %p",am,am->item_id);
|
||||||
|
DBGX("Teh ELEM ID found '%s'",am->item_id);
|
||||||
|
|
||||||
cw_action_out_t *ae;
|
cw_action_out_t *ae;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
while(NULL != (ae=avliter_next(&i))) {
|
while(NULL != (ae=avliter_next(&i))) {
|
||||||
|
|
||||||
//DBGX("Put %d %d\n",ae->msg_id,ae->elem_id);
|
DBGX("Put %d %i %p\n",ae->msg_id,ae->elem_id,ae->item_id);
|
||||||
|
DBGX("Elem ID %s",ae->item_id);
|
||||||
|
if ( ae->item_id ) {
|
||||||
|
DBGX("Item ID: %s %p",ae->item_id,CW_ITEM_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
if (ae->msg_id != as.msg_id) {
|
if (ae->msg_id != as.msg_id) {
|
||||||
/* Element is from next msg, close action */
|
/* Element is from next msg, close action */
|
||||||
|
Loading…
Reference in New Issue
Block a user