2018-03-26 00:00:21 +02:00
|
|
|
|
|
|
|
#include "capwap.h"
|
|
|
|
#include "msgset.h"
|
|
|
|
#include "ktv.h"
|
|
|
|
#include "log.h"
|
|
|
|
|
|
|
|
int cw_in_generic_struct(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params,
|
|
|
|
uint8_t * elem_data, int elem_len)
|
|
|
|
{
|
2018-04-23 07:51:56 +02:00
|
|
|
const char * key;
|
|
|
|
char tmpkey[CW_KTV_MAX_KEY_LEN];
|
|
|
|
|
|
|
|
if (handler->mkkey != NULL){
|
|
|
|
handler->mkkey(key,elem_data,elem_len, tmpkey);
|
|
|
|
key = tmpkey;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
key = handler->key;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* int (*mkkey)(struct cw_ElemHandler * handler, char *dst, struct cw_ElemHandlerParams * params,
|
|
|
|
uint8_t*data, int len);
|
|
|
|
*/
|
2018-03-26 00:00:21 +02:00
|
|
|
|
|
|
|
if (!handler->type){
|
|
|
|
cw_log(LOG_ERR,"Can't handle element: %s, no type defined",handler->name);
|
|
|
|
return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT;
|
|
|
|
}
|
|
|
|
|
2018-04-23 07:51:56 +02:00
|
|
|
cw_ktv_read_struct(params->conn->remote_cfg,handler->type,key,elem_data,elem_len);
|
|
|
|
|
2018-03-26 00:00:21 +02:00
|
|
|
return CAPWAP_RESULT_SUCCESS;
|
|
|
|
}
|