From 220d54b76f1bec515347c1069b043eeb49a5c146 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Fri, 9 Mar 2018 06:45:07 +0000 Subject: [PATCH] new message processing stack FossilOrigin-Name: 155290b6ce1abbb6d8b760cf937f4c1e436e5df798637fd46dc0b2912950927e --- src/cw/cw_process_element.c | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/cw/cw_process_element.c diff --git a/src/cw/cw_process_element.c b/src/cw/cw_process_element.c new file mode 100644 index 00000000..8a8e3a4d --- /dev/null +++ b/src/cw/cw_process_element.c @@ -0,0 +1,57 @@ + + +#include "cw.h" +#include "dbg.h" + +/** + * @brief Process a CAPWAP message element + * @param conn + * @param msgdata + * @param handler + * @param elems_ptr + * @param elems_len + * @return + */ +int cw_process_element(struct cw_ElemHandlerParams *params, int proto, int vendor,int elem_id, + uint8_t * data, int len){ + +printf("The process elemnt handler is here \n"); + + struct cw_ElemHandler * handler; + struct cw_ElemData * elem_data, elem_data_search; + + /*uint8_t * elem_data;*/ + + + handler = cw_msgset_get_elemhandler(params->conn->msgset,0, 0, elem_id); + if (!handler) { + cw_dbg(DBG_ELEM_ERR, "Unknown message element: %d, ignoring", + elem_id); + return 0; + } + + + elem_data_search.id=elem_id; + elem_data_search.proto=0; + elem_data_search.vendor=0; + + elem_data = mavl_find_ptr(params->msgdata->elements_tree,&elem_data_search); + + if (!elem_data){ + cw_dbg(DBG_ELEM_ERR, "Element %d - %s, not allowed here", + elem_id, handler->name); + return 0; + } + + + + cw_dbg_elem(DBG_ELEM, params->conn, params->msgdata->type, handler, + data,len); + + handler->get(handler, params, data, len); + + + + + return 0; +}