Work on state machine
This commit is contained in:
@ -641,14 +641,10 @@ struct cw_ac_status {
|
||||
*/
|
||||
enum capwap_states {
|
||||
CW_STATE_NONE = 0,
|
||||
/** Discovery State */
|
||||
CAPWAP_STATE_DISCOVERY,
|
||||
/** Join State */
|
||||
CAPWAP_STATE_JOIN,
|
||||
CAPWAP_STATE_JOIN_COMPLETE,
|
||||
|
||||
/** Config State */
|
||||
CAPWAP_STATE_CONFIGURE,
|
||||
CAPWAP_STATE_DISCOVERY, /**< Discovery State */
|
||||
CAPWAP_STATE_JOIN, /**< Join State */
|
||||
CAPWAP_STATE_JOIN_COMPLETE,
|
||||
CAPWAP_STATE_CONFIGURE, /**< Config State */
|
||||
CAPWAP_STATE_DTLS_SETUP, /**< DTLS Setup */
|
||||
/** Image Data Upload */
|
||||
CW_STATE_IMAGE_DATA,
|
||||
|
@ -2,15 +2,15 @@
|
||||
#include "capwap.h"
|
||||
|
||||
struct cw_StrListElem capwap_strings_state[] = {
|
||||
{ CAPWAP_STATE_DISCOVERY, "Discovery" },
|
||||
{ CAPWAP_STATE_JOIN,"Join" },
|
||||
{ CAPWAP_STATE_RUN,"Run" },
|
||||
{ CAPWAP_STATE_CONFIGURE,"Configure" },
|
||||
{ CW_STATE_IMAGE_DATA,"Image Data" },
|
||||
{ CAPWAP_STATE_DTLS_SETUP, "DTLS Setup" },
|
||||
{ CAPWAP_STATE_DATA_CHECK, "Data Check" },
|
||||
{ CAPWAP_STATE_TIMEOUT, "Timeout"},
|
||||
{ CW_STR_STOP,"Undefined" },
|
||||
|
||||
{ CW_STATE_NONE, "None"},
|
||||
{ CAPWAP_STATE_DISCOVERY, "Discovery" },
|
||||
{ CAPWAP_STATE_JOIN,"Join" },
|
||||
{ CAPWAP_STATE_RUN,"Run" },
|
||||
{ CAPWAP_STATE_CONFIGURE,"Configure" },
|
||||
{ CW_STATE_IMAGE_DATA,"Image Data" },
|
||||
{ CAPWAP_STATE_DTLS_SETUP, "DTLS Setup" },
|
||||
{ CAPWAP_STATE_DATA_CHECK, "Data Check" },
|
||||
{ CAPWAP_STATE_TIMEOUT, "Timeout"},
|
||||
{ CW_STR_STOP,"Undefined" },
|
||||
};
|
||||
|
||||
|
11
src/cw/cfg.c
11
src/cw/cfg.c
@ -491,6 +491,17 @@ int cw_cfg_get_bool(cw_Cfg_t * cfg, const char * key, const char *def)
|
||||
return v.val.boolean;
|
||||
}
|
||||
|
||||
|
||||
uint8_t cw_cfg_get_byte(cw_Cfg_t * cfg, char *key, const char * def)
|
||||
{
|
||||
struct cw_Val v;
|
||||
const char *s = cw_cfg_get(cfg,key,def);
|
||||
CW_TYPE_BYTE->from_str(&v,s);
|
||||
return v.val.word;
|
||||
}
|
||||
|
||||
|
||||
|
||||
uint16_t cw_cfg_get_word(cw_Cfg_t * cfg, char *key, const char * def)
|
||||
{
|
||||
struct cw_Val v;
|
||||
|
@ -32,6 +32,7 @@ void cw_cfg_iter_init(cw_Cfg_t * cfg, struct cw_Cfg_iter *cfi, const char *base)
|
||||
int cw_cfg_get_bool(cw_Cfg_t * cfg, const char * key, const char *def);
|
||||
uint16_t cw_cfg_get_word(cw_Cfg_t * cfg, char *key, const char * def);
|
||||
void cw_cfg_set_int(cw_Cfg_t * cfg, const char * key, int val);
|
||||
uint8_t cw_cfg_get_byte(cw_Cfg_t * cfg, char *key, const char * def);
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -93,6 +93,7 @@ printf("Elem: %d %d %d %s\n", data->proto, data->vendor, data->id, handler->name
|
||||
continue;
|
||||
}
|
||||
|
||||
cw_dbg(DBG_X,"Hello!");
|
||||
|
||||
if (handler->put == NULL){
|
||||
if (data->mand){
|
||||
@ -122,9 +123,12 @@ printf("Elem: %d %d %d %s\n", data->proto, data->vendor, data->id, handler->name
|
||||
cisco/ap-led-flash-config/flash-enable
|
||||
}*/
|
||||
|
||||
|
||||
cw_dbg(DBG_X,"Calling Handler put for %s",handler->name);
|
||||
|
||||
l = handler->put(handler,¶ms,dst+len);
|
||||
|
||||
cw_dbg(DBG_X,"L = %d",l);
|
||||
|
||||
/* if(l>0)
|
||||
cw_dbg_elem(DBG_ELEM_OUT,conn,type,handler,dst+len,l);
|
||||
* if (strlen(details)){
|
||||
|
@ -235,7 +235,7 @@ struct cw_Conn {
|
||||
|
||||
|
||||
int detected;
|
||||
void * mods;
|
||||
// void * mods;
|
||||
|
||||
|
||||
int (*msg_start)(struct cw_Conn*conn,struct cw_action_in *a,uint8_t*data,int len,struct sockaddr *from);
|
||||
|
@ -660,6 +660,7 @@ int cw_read_messages(struct cw_Conn *conn)
|
||||
{
|
||||
uint8_t buf[2024];
|
||||
int len = 2024;
|
||||
cw_dbg(DBG_X,"Conn cw_read_messages from dsco request");
|
||||
|
||||
int n = conn->read(conn, buf, len);
|
||||
if (n < 0)
|
||||
|
@ -55,7 +55,7 @@ uint32_t cw_dbg_opt_level = 0;
|
||||
|
||||
|
||||
|
||||
static struct cw_StrListElem color_on[] = {
|
||||
static struct cw_StrListElem theme0[] = {
|
||||
{DBG_PKT_IN, ANSI_YELLOW},
|
||||
{DBG_PKT_OUT, ANSI_YELLOW ANSI_ITALIC},
|
||||
|
||||
@ -86,7 +86,7 @@ static struct cw_StrListElem color_on[] = {
|
||||
|
||||
{DBG_INFO, ANSI_DEFAULT},
|
||||
|
||||
{DBG_STATE, ANSI_BBLACK ANSI_BOLD },
|
||||
{DBG_STATE, ANSI_GREEN ANSI_BOLD},
|
||||
|
||||
{DBG_RFC, ANSI_BRED},
|
||||
{DBG_X, "\x1b[31m"},
|
||||
@ -98,6 +98,9 @@ static struct cw_StrListElem color_on[] = {
|
||||
{CW_STR_STOP, ""}
|
||||
};
|
||||
|
||||
static struct cw_StrListElem * color_on = theme0;
|
||||
|
||||
|
||||
struct cw_StrListElem color_ontext[] = {
|
||||
|
||||
/* {DBG_ELEM_DMP, "\x1b[37m"},*/
|
||||
@ -132,7 +135,7 @@ static struct cw_StrListElem prefix[] = {
|
||||
{DBG_DTLS_DETAIL, " DTLS - "},
|
||||
{DBG_WARN, " Warning - "},
|
||||
{DBG_MOD, " Mod - "},
|
||||
{DBG_STATE, " State Machine - "},
|
||||
{DBG_STATE, " STATEMACHINE - "},
|
||||
{DBG_CFG_SET, " Cfg Set - "},
|
||||
|
||||
|
||||
|
@ -120,7 +120,7 @@ enum cw_dbg_levels{
|
||||
/** Debug Mods */
|
||||
DBG_MOD,
|
||||
|
||||
DBG_STATE, /**<Debug State machein */
|
||||
DBG_STATE, /**<Debug State machine */
|
||||
|
||||
DBG_ALL,
|
||||
|
||||
|
@ -103,8 +103,8 @@ void cw_msgset_destroy(struct cw_MsgSet *set)
|
||||
mavl_destroy(set->handlers_by_id);
|
||||
if (set->handlers_by_key)
|
||||
mavl_destroy(set->handlers_by_key);
|
||||
if (set->state_machine)
|
||||
mavl_destroy(set->state_machine);
|
||||
if (set->statemachine_states)
|
||||
mavl_destroy(set->statemachine_states);
|
||||
free(set);
|
||||
}
|
||||
|
||||
@ -160,8 +160,8 @@ struct cw_MsgSet *cw_msgset_create()
|
||||
}
|
||||
|
||||
|
||||
set->state_machine = mavl_create(cmp_machinestate,NULL,sizeof(cw_StateMachineState_t));
|
||||
if (set->state_machine == NULL)
|
||||
set->statemachine_states = mavl_create(cmp_machinestate,NULL,sizeof(cw_StateMachineState_t));
|
||||
if (set->statemachine_states == NULL)
|
||||
{
|
||||
cw_msgset_destroy(set);
|
||||
return NULL;
|
||||
@ -359,7 +359,7 @@ int cw_msgset_add_states(struct cw_MsgSet * set, cw_StateMachineState_t * states
|
||||
s=states;
|
||||
while (s->state != 0){
|
||||
const char * repstr;
|
||||
mavl_replace(set->state_machine,s,&replaced);
|
||||
mavl_replace(set->statemachine_states,s,&replaced);
|
||||
|
||||
if (replaced){
|
||||
repstr = "Replacing";
|
||||
|
@ -68,7 +68,7 @@ struct cw_MsgSet {
|
||||
mavl_t handlers_by_id;
|
||||
mavl_t handlers_by_key;
|
||||
mavl_t types_tree;
|
||||
mavl_t state_machine;
|
||||
mavl_t statemachine_states;
|
||||
int (*write_header)(struct cw_ElemHandler * handler, uint8_t * dst, int len);
|
||||
int (*header_len)(struct cw_ElemHandler *handler);
|
||||
};
|
||||
|
Reference in New Issue
Block a user