diff --git a/src/capwap/capwap.h b/src/capwap/capwap.h index d9bcc11a..d81fa2b5 100644 --- a/src/capwap/capwap.h +++ b/src/capwap/capwap.h @@ -1017,6 +1017,9 @@ static inline const char *cw_strelemp_(cw_strheap_t h, int msg_id) extern int cw_in_generic(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,struct sockaddr *from); +extern int cw_in_generic2(struct conn *conn, struct cw_action_in *a, uint8_t * data, + int len,struct sockaddr *from); + extern int cw_in_vendor_specific_payload(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,struct sockaddr *from); extern int cw_in_wtp_name(struct conn *conn, struct cw_action_in *a, uint8_t * data, diff --git a/src/capwap/cw_in_generic2.c b/src/capwap/cw_in_generic2.c index eb1f3c5e..e54442c3 100644 --- a/src/capwap/cw_in_generic2.c +++ b/src/capwap/cw_in_generic2.c @@ -5,6 +5,8 @@ #include "mbag.h" #include "capwap.h" +#include "item.h" + int static check_len(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from) @@ -68,6 +70,19 @@ int static do_save(mbag_t itemstore, struct conn *conn, struct cw_action_in *a, return 1; } + + const cw_itemdef_t * idef = cw_itemdef_get(conn->actions->items,a->item_id,CW_ITEM_NONE); + + if (!idef) { + cw_log(LOG_ERR,"No itemdef found for %s",a->item_id); + return 0; + } + + +// printf("Idef: %s\n",idef->type->name); + + + cw_log(LOG_ERR, "Can't handle item type %d in definition for incomming msg %d (%s) - %d, cw_in_generic.", a->itemtype, a->msg_id, cw_strmsg(a->msg_id), a->elem_id); @@ -80,9 +95,6 @@ int cw_in_generic2(struct conn *conn, struct cw_action_in *a, uint8_t * data, in struct sockaddr *from) { - printf("Here is cw in generic 2\n"); - exit(0); - if (!check_len(conn, a, data, len, from)) return 0; diff --git a/src/capwap/mod/capwap/mod_capwap_ac.c b/src/capwap/mod/capwap/mod_capwap_ac.c index 1142d0e9..5f8576b0 100644 --- a/src/capwap/mod/capwap/mod_capwap_ac.c +++ b/src/capwap/mod/capwap/mod_capwap_ac.c @@ -28,6 +28,7 @@ static int detect(struct conn *conn,const uint8_t *rawmsg, int rawlen,struct soc { cw_log(LOG_INFO,"Detecting ..."); conn->detected=1; + conn->actions=&actions; return 1; }