Inserted a lot of debug printfs, fixed some bugs

This commit is contained in:
2022-07-30 19:44:57 +02:00
parent ac58b6cc72
commit d582503c78
15 changed files with 189 additions and 150 deletions

View File

@ -199,29 +199,29 @@ ssl_cert="../../ssl/certs/ac-xcisco.pem"
#
dbg = info # Show all kind of infos
# dbg += all
dbg += msg_in # Incomming CAPWAP messages
dbg += msg_out # Outgoing CAPWAP messages
dbg += msg_err # Be verbose about capwap message errors like re-transmission
dbg += msg_dmp
dbg += elem_in # CAPWAP message elements
dbg += elem_out
dbg += subelem #
dbg += elem_err # Errors in message elements
dbg += elem_dmp # Print hex dump for capwap messages elements
dbg += rfc # Show warnings if CAPWAP messages don't conform to RFC
dbg += pkt_in # CAPWAP packets received
dbg += pkt_out # CAPWAP packets sent
dbg += pkt # CAPWAP packets both sent and received
dbg += pkt_dmp # Hex dump CAPWAP packets.
dbg += pkt_err # Show messages about malformed packets when detected
dbg += dtls # Messages concerning DTLS
# dbg += msg_in # Incomming CAPWAP messages
# dbg += msg_out # Outgoing CAPWAP messages
# dbg += msg_err # Be verbose about capwap message errors like re-transmission
# dbg += msg_dmp
# dbg += elem_in # CAPWAP message elements
# dbg += elem_out
# dbg += subelem #
# dbg += elem_err # Errors in message elements
# dbg += elem_dmp # Print hex dump for capwap messages elements
# dbg += rfc # Show warnings if CAPWAP messages don't conform to RFC
# dbg += pkt_in # CAPWAP packets received
# dbg += pkt_out # CAPWAP packets sent
# dbg += pkt # CAPWAP packets both sent and received
# dbg += pkt_dmp # Hex dump CAPWAP packets.
# dbg += pkt_err # Show messages about malformed packets when detected
# dbg += dtls # Messages concerning DTLS
# dbg += dtls_detail # DTLS in more detail
dbg += dtls_bio # DTLS BIO operations
# dbg += dtls_bio # DTLS BIO operations
# dbg += dtls_bio_dmp # HeXy dump data in BIO operations
dbg += warn # misc warnings
dbg += mod # Debugs specific to mod
dbg += cfg_dmp
dbg += state
# dbg += warn # misc warnings
# dbg += mod # Debugs specific to mod
# dbg += cfg_dmp
# dbg += state
#
# dbg += all # all of the above
# dbg += err # Same as dbg_err and pkt_err

View File

@ -225,6 +225,30 @@ void tester1()
}
static void show_cfg (FILE *out, mavl_t ktv)
{
char value[500];
struct cw_KTV * data;
mavliter_t it;
const struct cw_Type * type;
mavliter_init(&it,ktv);
mavliter_foreach(&it){
data = mavliter_get(&it);
type = data->type;
type->to_str(data,value,0);
fprintf(out,"%s :%s: %s\n",data->key,type->get_type_name(data), value);
}
}
int main (int argc, char *argv[])
{
int rc = 0;
@ -261,6 +285,8 @@ int main (int argc, char *argv[])
fclose(file);
//show_cfg(stdout,global_cfg);
//exit(0);
actube_global_cfg = global_cfg;

View File

@ -32,6 +32,7 @@ void ucfg_cmd(struct shelldata *sd, const char * cmd);
void set_cmd(struct shelldata *sd, const char * cmd);
void del_cmd(struct shelldata *sd, const char * cmd);
void send_cmd(struct shelldata *sd, const char * cmd);
void wlan0_cmd(struct shelldata *sd, const char * cmd);
void show_cfg (FILE *out, mavl_t ktv);
void show_aps (FILE *out);
@ -50,6 +51,7 @@ static struct command cmdlist[]={
{"select", select_cmd },
{"send", send_cmd},
{"set", set_cmd },
{"wlan0",wlan0_cmd},
{NULL,NULL}
@ -106,6 +108,25 @@ send_cmd(struct shelldata * sd, const char *cmd)
wtplist_unlock();
}
void
wlan0_cmd(struct shelldata * sd, const char *cmd)
{
struct conn * conn;
wtplist_lock();
conn = find_ap(sd->prompt);
if (conn==NULL){
fprintf(sd->out,"WTP '%s' not found\n",sd->prompt);
}
else {
FILE *f=fopen("wlan0.ktv","r");
cw_ktv_read_file(f,sd->update_cfg,conn->msgset->types_tree);
//conn->update_cfg=sd->update_cfg;
fclose(f);
}
wtplist_unlock();
}
void set_cmd(struct shelldata *sd, const char *str)
{
struct conn * conn;

View File

@ -114,23 +114,6 @@ static void wtpman_run_discovery(void *arg)
return;
}
/*
int xprocess_message(struct conn *conn, uint8_t * rawmsg, int rawlen,
struct sockaddr *from)
{
uint8_t *msgptr = rawmsg + cw_get_hdr_msg_offset(rawmsg);
uint32_t type = cw_get_msg_type(msgptr);
cw_log(LOG_ERR, "Hey: %d", type);
if (type == CAPWAP_MSG_DISCOVERY_REQUEST)
conn->capwap_state = CAPWAP_STATE_DISCOVERY;
return process_message(conn, rawmsg, rawlen, from);
}
*/
static int wtpman_dtls_setup(void *arg)
{
char cipherstr[512];
@ -386,62 +369,6 @@ static void * wtpman_main(void *arg)
return NULL;
};
/*
switch (conn->capwap_transition){
case CW_TRANSITION(CAPWAP_STATE_DTLS_SETUP, CAPWAP_STATE_JOIN):
{
wait_join = cw_ktv_get_word(conn->global_cfg,"wait-join",CAPWAP_WAIT_JOIN);
timer = cw_timer_start(wait_join);
break;
}
case CW_TRANSITION(CAPWAP_STATE_JOIN, CAPWAP_STATE_JOIN):
{
char wtpname[CAPWAP_MAX_WTP_NAME_LEN];
cw_KTV_t * result;
result = cw_ktv_get(conn->remote_cfg,"wtp-name",NULL);
result->type->to_str(result,wtpname,CAPWAP_MAX_WTP_NAME_LEN);
cw_dbg(DBG_INFO, "WTP joined: '%s', IP %s.",
wtpname,
sock_addr2str(&conn->addr,sock_buf)
);
break;
}
case CW_TRANSITION(CAPWAP_STATE_JOIN,CAPWAP_STATE_TIMEOUT):
{
cw_dbg(DBG_MSG_ERR, "No join request from %s after %d seconds, WTP died.",
sock_addr2str(&wtpman->conn->addr,sock_buf), wait_join);
wtpman_remove(wtpman);
return NULL;
break;
}
case CW_TRANSITION(CAPWAP_STATE_JOIN, CAPWAP_STATE_CONFIGURE):
{
wait_change_state = cw_ktv_get_word(conn->global_cfg,
"capwap-timers/change-state-pending-timer",
CAPWAP_TIMER_CHANGE_STATE_PENDING_TIMER);
break;
}
case CW_TRANSITION(CAPWAP_STATE_CONFIGURE,CAPWAP_STATE_TIMEOUT):
{
cw_dbg(DBG_MSG_ERR, "No Change State Event Request %s after %d seconds, WTP died.",
sock_addr2str(&wtpman->conn->addr,sock_buf), wait_change_state);
wtpman_remove(wtpman);
return NULL;
break;
}
}
*/
while (!cw_timer_timeout(timer)) {
if (conn->update_cfg != NULL){
@ -580,7 +507,7 @@ cw_dbg_ktv_dump(conn->remote_cfg,DBG_INFO,"-------------dump------------","DMP",
}
/*// cw_dbg(DBG_X, "Time left: %d",
//*/
// */
/*cw_timer_timeleft(wtpman->echointerval_timer);*/
if (cw_timer_timeout(wtpman->echointerval_timer)) {