Lots done in move to typeless
This commit is contained in:
@ -178,20 +178,6 @@ int main (int argc, char *argv[])
|
||||
|
||||
|
||||
|
||||
/*
|
||||
cw_Cfg_t * tcfg = cw_cfg_create();
|
||||
cw_cfg_set(tcfg,"tube.0","hallo");
|
||||
cw_cfg_set(tcfg,"tube.1","welt");
|
||||
cw_cfg_set(tcfg,"tube.2","der guten laune");
|
||||
cw_cfg_dump(tcfg);
|
||||
|
||||
printf("Next Index: %d\n",cw_cfg_get_next_index(tcfg,"kinder"));
|
||||
|
||||
|
||||
exit(0);
|
||||
*/
|
||||
|
||||
|
||||
/* parse arguments */
|
||||
parse_args (argc, argv, &bootcfg);
|
||||
|
||||
@ -213,6 +199,39 @@ int main (int argc, char *argv[])
|
||||
|
||||
|
||||
cw_log_name = "AC-Tube";
|
||||
|
||||
/*
|
||||
|
||||
{
|
||||
int rc;
|
||||
cw_Cfg_t * cfg = global_cfg;
|
||||
struct cw_Cfg_entry e, *result;
|
||||
|
||||
e.key="hi";
|
||||
|
||||
rc = cw_cfg_base_exists(cfg,"ac-descriptor");
|
||||
if (!rc ){
|
||||
printf("No!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("RESULT: %d\n",rc);
|
||||
|
||||
cw_cfg_set(tcfg,"tube.0","hallo");
|
||||
cw_cfg_set(tcfg,"tube.1","welt");
|
||||
cw_cfg_set(tcfg,"tube.2","der guten laune");
|
||||
cw_cfg_dump(tcfg);
|
||||
|
||||
printf("Next Index: %d\n",cw_cfg_get_next_index(tcfg,"kinder"));
|
||||
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
start_shell();
|
||||
|
@ -54,3 +54,15 @@ ac-descriptor/stations: 0
|
||||
|
||||
capwap-control-ip-address/address.0: 192.168.0.14
|
||||
|
||||
|
||||
|
||||
#
|
||||
# CAPWAP Timers
|
||||
#
|
||||
capwap-timers/change-state-pending-timer: Word: 3
|
||||
capwap-timers/data-check-timer: Word: 10
|
||||
capwap-timers/echo-interval :Byte: 30
|
||||
capwap-timers/max-discovery-interval :Byte: 10
|
||||
|
||||
|
||||
|
||||
|
@ -131,10 +131,13 @@ void set_cmd(struct shelldata *sd, const char *str)
|
||||
{
|
||||
struct cw_Conn * conn;
|
||||
struct cw_Val_Reader r;
|
||||
char key[CW_KTV_MAX_KEY_LEN];
|
||||
char type[CW_KTV_MAX_KEY_LEN];
|
||||
char key[CW_CFG_MAX_KEY_LEN];
|
||||
char type[CW_CFG_MAX_KEY_LEN];
|
||||
char val[2048];
|
||||
cw_ktv_init_str_reader(&r,str,strlen(str));
|
||||
|
||||
stop();
|
||||
|
||||
// cw_ktv_init_str_reader(&r,str,strlen(str));
|
||||
|
||||
cw_ktv_parse_string(&r,key,type,val);
|
||||
/*cw_ktv_parse_string(key,type,val, 2048);*/
|
||||
@ -145,7 +148,7 @@ void set_cmd(struct shelldata *sd, const char *str)
|
||||
|
||||
void del_cmd(struct shelldata *sd, const char *str)
|
||||
{
|
||||
char key[CW_KTV_MAX_KEY_LEN];
|
||||
char key[CW_CFG_MAX_KEY_LEN];
|
||||
sscanf(str,"%s",key);
|
||||
cw_ktv_del_sub(sd->update_cfg,key);
|
||||
}
|
||||
@ -342,7 +345,7 @@ void execute_cmd (struct shelldata * sd, const char *str)
|
||||
return;
|
||||
|
||||
|
||||
char key[CW_KTV_MAX_KEY_LEN];
|
||||
char key[CW_CFG_MAX_KEY_LEN];
|
||||
char type[128];
|
||||
char val[2048];
|
||||
|
||||
|
@ -37,7 +37,6 @@
|
||||
|
||||
#include "ac.h"
|
||||
#include "conf.h"
|
||||
#include "db.h"
|
||||
#include "socklist.h"
|
||||
#include "wtpman.h"
|
||||
#include "wtplist.h"
|
||||
@ -617,27 +616,49 @@ void wtpman_destroy(struct wtpman *wtpman)
|
||||
{
|
||||
if (wtpman->conn)
|
||||
conn_destroy(wtpman->conn);
|
||||
|
||||
if (wtpman->wtp_cfg)
|
||||
cw_cfg_destroy(wtpman->wtp_cfg);
|
||||
|
||||
free(wtpman);
|
||||
}
|
||||
|
||||
static void discovery_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
|
||||
static void copy(struct cw_ElemHandlerParams * params)
|
||||
{
|
||||
cw_dbg(DBG_X,"Discovery->Callback");
|
||||
struct wtpman * wtpman;
|
||||
wtpman = (struct wtpman*)params->conn->data;
|
||||
|
||||
cw_dbg(DBG_X,"------------- Here is the config we ve got from WTP ---------------- ");
|
||||
cw_cfg_dump(params->cfg);
|
||||
cw_dbg(DBG_X,"------------- This was the config we ve got from WTP ---------------- ");
|
||||
cw_dbg(DBG_X,"Now copying:");
|
||||
cw_cfg_copy(params->cfg,wtpman->wtp_cfg);
|
||||
cw_dbg(DBG_X,"Copying done.");
|
||||
}
|
||||
|
||||
static void join_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
static int discovery_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
{
|
||||
struct wtpman * wtpman = (struct wtpman *)params->conn->data;
|
||||
cw_dbg(DBG_X,"JOIN->Callback");
|
||||
wtpman->pjoin(params,elems_ptr,elems_len);
|
||||
cw_dbg(DBG_X,"DISCOVERY Callback");
|
||||
copy(params);
|
||||
cw_cfg_clear(params->cfg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void update_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
static int join_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
{
|
||||
struct wtpman * wtpman = (struct wtpman *)params->conn->data;
|
||||
cw_dbg(DBG_X,"UPDATE->Callback");
|
||||
if ( wtpman->pupdate )
|
||||
wtpman->pupdate(params,elems_ptr,elems_len);
|
||||
cw_dbg(DBG_X,"JOIN Callback");
|
||||
copy(params);
|
||||
cw_cfg_clear(params->cfg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int update_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len)
|
||||
{
|
||||
cw_dbg(DBG_X,"UPDATE Callback");
|
||||
copy(params);
|
||||
cw_cfg_clear(params->cfg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -646,8 +667,8 @@ static void update_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr,
|
||||
static setup_complete(struct cw_Conn *conn)
|
||||
{
|
||||
struct wtpman * wtpman = (struct wtpman *)conn->data;
|
||||
wtpman->pjoin = cw_msgset_set_postprocess(conn->msgset,CAPWAP_MSG_JOIN_REQUEST,join_cb);
|
||||
wtpman->pupdate = cw_msgset_set_postprocess(conn->msgset,CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,update_cb);
|
||||
// wtpman->pjoin = cw_msgset_set_postprocess(conn->msgset,CAPWAP_MSG_JOIN_REQUEST,join_cb);
|
||||
// wtpman->pupdate = cw_msgset_set_postprocess(conn->msgset,CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,update_cb);
|
||||
cw_dbg(DBG_X,"SETUP COMPLETE");
|
||||
|
||||
}
|
||||
@ -704,6 +725,8 @@ struct wtpman *wtpman_create(int socklistindex, struct sockaddr *srcaddr,
|
||||
}
|
||||
wtpman->conn->global_cfg = global_cfg;
|
||||
wtpman->conn->local_cfg = cw_cfg_create();
|
||||
wtpman->wtp_cfg = cw_cfg_create();
|
||||
|
||||
|
||||
wtpman->conn->role = CW_ROLE_AC;
|
||||
wtpman->conn->data=wtpman;
|
||||
@ -716,6 +739,17 @@ struct wtpman *wtpman_create(int socklistindex, struct sockaddr *srcaddr,
|
||||
CAPWAP_MSG_DISCOVERY_REQUEST,
|
||||
discovery_cb);
|
||||
|
||||
cw_conn_set_msg_cb(wtpman->conn,
|
||||
CAPWAP_MSG_JOIN_REQUEST,
|
||||
join_cb);
|
||||
|
||||
cw_conn_set_msg_cb(wtpman->conn,
|
||||
CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
|
||||
update_cb);
|
||||
|
||||
|
||||
|
||||
|
||||
// wtpman->conn->mods = conf_mods;
|
||||
|
||||
wtpman->conn->strict_capwap = conf_strict_capwap;
|
||||
@ -764,7 +798,7 @@ struct wtpman *wtpman_create(int socklistindex, struct sockaddr *srcaddr,
|
||||
|
||||
void wtpman_addpacket(struct wtpman *wtpman, uint8_t * packet, int len)
|
||||
{
|
||||
cw_dbg(DBG_X,"ADD PACKET DETECTED %d",wtpman->conn->detected);
|
||||
// cw_dbg(DBG_X,"ADD PACKET DETECTED %d",wtpman->conn->detected);
|
||||
conn_q_add_packet(wtpman->conn, packet, len);
|
||||
}
|
||||
|
||||
|
@ -38,12 +38,9 @@ struct wtpman {
|
||||
from a .ckv file on startup.
|
||||
*/
|
||||
|
||||
cw_Cfg_t * wtp_cfg;
|
||||
|
||||
cw_MsgCallbackFun pdiscovery;
|
||||
cw_MsgCallbackFun pjoin;
|
||||
cw_MsgCallbackFun pupdate;
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user