2018-03-19 17:26:01 +01:00
|
|
|
|
|
|
|
#include "capwap.h"
|
2018-03-12 11:22:06 +01:00
|
|
|
#include "msgset.h"
|
2022-07-31 17:15:32 +02:00
|
|
|
#include "val.h"
|
2018-03-07 13:13:58 +01:00
|
|
|
#include "log.h"
|
2022-08-13 09:47:12 +02:00
|
|
|
#include "dbg.h"
|
2018-03-06 03:08:14 +01:00
|
|
|
|
2018-03-09 07:44:17 +01:00
|
|
|
int cw_in_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params,
|
2018-03-19 17:26:01 +01:00
|
|
|
uint8_t * elem_data, int elem_len)
|
|
|
|
{
|
2022-08-09 22:35:47 +02:00
|
|
|
cw_Type_t * type;
|
2022-08-13 09:47:12 +02:00
|
|
|
type = (cw_Type_t*)handler->type;
|
2022-08-14 11:22:30 +02:00
|
|
|
char mkey[CW_CFG_MAX_KEY_LEN];
|
2022-08-13 09:47:12 +02:00
|
|
|
const char *key;
|
2018-03-07 13:13:58 +01:00
|
|
|
|
2022-08-09 22:35:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
if (!type){
|
2018-03-07 13:13:58 +01:00
|
|
|
cw_log(LOG_ERR,"Can't handle element: %s, no type defined",handler->name);
|
2018-03-19 17:26:01 +01:00
|
|
|
return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT;
|
2018-03-07 13:13:58 +01:00
|
|
|
}
|
2022-07-28 18:25:05 +02:00
|
|
|
|
2022-08-13 09:47:12 +02:00
|
|
|
if (handler->mkkey != NULL){
|
|
|
|
handler->mkkey(handler->key,elem_data,elem_len, mkey);
|
|
|
|
key = mkey;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
key = handler->key;
|
2022-08-09 22:35:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2022-08-13 09:47:12 +02:00
|
|
|
|
2022-08-09 22:35:47 +02:00
|
|
|
|
2022-08-13 09:47:12 +02:00
|
|
|
/* cw_dbg(DBG_X, "READ: %s / %s",type->name,key);*/
|
|
|
|
type->read(params->cfg, key,elem_data,elem_len,handler->param);
|
2018-03-19 17:26:01 +01:00
|
|
|
return CAPWAP_RESULT_SUCCESS;
|
2015-04-26 12:36:53 +02:00
|
|
|
}
|