diff --git a/src/ac/ac_main.c b/src/ac/ac_main.c index 17514368..11406dd8 100644 --- a/src/ac/ac_main.c +++ b/src/ac/ac_main.c @@ -33,7 +33,6 @@ #include "socklist.h" -#include "db.h" #include "cw/capwap_crypto.h" @@ -78,12 +77,18 @@ static int parse_args (int argc, char *argv[], struct bootcfg * bootcfg) exit(EXIT_SUCCESS); break; case 'd':{ - int b = cw_strlist_get_id(cw_dbg_strings, optarg); + if (!cw_dbg_set_level_from_str(optarg)){ + fprintf(stderr,"Invalid debug option: %s\n",optarg); + exit(EXIT_FAILURE); + } + + +/* int b = cw_strlist_get_id(cw_dbg_strings, optarg); if (b==-1){ fprintf(stderr,"Invalid debug option: %s\n",optarg); exit(EXIT_FAILURE); } - cw_dbg_set_level(b, 1); + cw_dbg_set_level(b, 1);*/ break; } @@ -259,7 +264,7 @@ int main (int argc, char *argv[]) errX: if (global_cfg) - mavl_destroy(global_cfg); + cw_cfg_destroy(global_cfg); if (discovery_cache) discovery_cache_destroy(discovery_cache); @@ -302,8 +307,8 @@ int ac_run(cw_Cfg_t * cfg) conf_parse_listen_addr (s, addr, port, &proto); socklist_add_unicast (addr, port, proto, - cw_cfg_get_bool(cfg,"actube/ipv4","true"), - cw_cfg_get_bool(cfg,"actube/ipv6","true") + cw_cfg_get_bool(cfg,"actube/ipv4",1), + cw_cfg_get_bool(cfg,"actube/ipv6",1) ); } if (!i) { diff --git a/src/ac/discovery_cache.c b/src/ac/discovery_cache.c index 1704b37d..8413a547 100644 --- a/src/ac/discovery_cache.c +++ b/src/ac/discovery_cache.c @@ -114,7 +114,6 @@ void discovery_cache_add(struct cw_DiscoveryCache *cache, cw_dbg(DBG_X,"////////////////////////// ADDD CAHCE ///////////////////////"); char str[128]; sock_addrtostr(addr,str,128,1); - printf("Add addr: %s\n",str); } struct cw_DiscoveryCacheElem * cur = cache->queue+cache->qpos; @@ -159,7 +158,6 @@ int discovery_cache_get(struct cw_DiscoveryCache * cache,struct sockaddr *addr, cw_dbg(DBG_X,"DISCOVERY CACHE ---------------------------- GET ENTER"); char str[128]; sock_addrtostr(addr,str,128,1); - printf("Add addr: %s\n",str); } search_ptr = &search; @@ -169,7 +167,6 @@ int discovery_cache_get(struct cw_DiscoveryCache * cache,struct sockaddr *addr, cw_dbg(DBG_X,"DISCOVERY CACHE ---------------------------- FOUND 1 with Port"); char str[128]; sock_addrtostr(addr,str,128,1); - printf("Add addr: %s\n",str); } @@ -196,7 +193,6 @@ int discovery_cache_get(struct cw_DiscoveryCache * cache,struct sockaddr *addr, cw_dbg(DBG_X,"DISCOVERY CACHE ---------------------------- DOUND BY ADDR"); char str[128]; sock_addrtostr(addr,str,128,1); - printf("Add addr: %s\n",str); } diff --git a/src/ac/wtpman.c b/src/ac/wtpman.c index a567856b..321cfa7e 100644 --- a/src/ac/wtpman.c +++ b/src/ac/wtpman.c @@ -64,11 +64,13 @@ static void wtpman_run_discovery(void *arg) wtpman->conn->capwap_state = CAPWAP_STATE_DISCOVERY; + while (!cw_timer_timeout(timer) && wtpman->conn->capwap_state == CAPWAP_STATE_DISCOVERY) { int rc; rc = cw_read_messages(wtpman->conn); + if (cw_result_is_ok(rc)) { wtpman->conn->capwap_state = CAPWAP_STATE_JOIN; @@ -85,7 +87,6 @@ static void wtpman_run_discovery(void *arg) } } - return; } @@ -606,12 +607,14 @@ static void copy(struct cw_ElemHandlerParams * params) conn = (struct cw_Conn*)params->conn; - 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,conn->local_cfg,0,""); - cw_dbg(DBG_X,"Copying done."); +// 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,conn->local_cfg,0,""); + cw_cfg_copy(params->cfg, params->conn->local_cfg,DBG_CFG_UPDATES,"GlobalCfg"); + +// cw_dbg(DBG_X,"Copying done."); } static int discovery_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len) @@ -649,7 +652,24 @@ static int update_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, const char * wtpname = cw_cfg_get(conn->local_cfg,"wtp-name","default"); sprintf(filename,"wtp-status-%s.ckv",wtpname); cw_cfg_save(filename,params->cfg,NULL); -stop(); +//stop(); + return 0; +} + +static int event_cb(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len) +{ + struct cw_Conn * conn = (struct cw_Conn*)params->conn; + char filename[200]; + + + + cw_dbg(DBG_X,"WTP EVENT Callback"); + copy(params); + + const char * wtpname = cw_cfg_get(conn->local_cfg,"wtp-name","default"); + sprintf(filename,"wtp-status-%s.ckv",wtpname); + cw_cfg_save(filename,params->cfg,NULL); +//stop(); return 0; } @@ -739,6 +759,10 @@ struct wtpman *wtpman_create(int socklistindex, struct sockaddr *srcaddr, CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST, update_cb); + cw_conn_set_msg_cb(wtpman->conn, + CAPWAP_MSG_WTP_EVENT_REQUEST, + event_cb); + diff --git a/src/cw/Makefile b/src/cw/Makefile index 72234d9b..e2cc1b08 100644 --- a/src/cw/Makefile +++ b/src/cw/Makefile @@ -18,7 +18,6 @@ CWSRC=\ cw_in_capwap_local_ipv4_address.c\ cw_in_capwap_local_ipv6_address.c\ cw_in_generic_with_index.c\ - cw_in_generic_struct.c\ cw_in_radio_generic_struct.c\ cw_in_idx_generic.c\ cw_in_idx_generic_struct.c\ @@ -67,6 +66,7 @@ CWSRC=\ cw_write_radio_element.c\ cw_detect_nat.c\ cw_read_from.c \ + cw_in_generic_struct.c\ # cw_in_check_disc_req.c\ # cw_in_check_img_data_req_ac.c\ @@ -210,6 +210,7 @@ MISCSRC=\ val.c \ discovery.c\ message.c\ + cw_out_radio_generic_struct.c\ # intavltree.c\ @@ -228,7 +229,6 @@ DTLSSRC+=\ RADIOSRC=\ - cw_out_radio_generic_struct.c\ # cw_in_radio_generic.c\ # cw_out_radio_generic.c\ diff --git a/src/cw/cfg.c b/src/cw/cfg.c index 09f37465..838f6d38 100644 --- a/src/cw/cfg.c +++ b/src/cw/cfg.c @@ -621,6 +621,19 @@ uint16_t cw_cfg_get_word(cw_Cfg_t * cfg, char *key, uint16_t def) return v.val.word; } +uint16_t cw_cfg_get_word_l(cw_Cfg_t ** cfg, char *key, uint16_t def) +{ + struct cw_Val v; + const char *s = cw_cfg_get_l(cfg,key,NULL); + if (s==NULL) + return def; + CW_TYPE_WORD->from_str(&v,s); + return v.val.word; +} + + + + /* int cw_cfg_get_word(cw_Cfg_t * cfg, char *key, const char * def) { diff --git a/src/cw/cfg.h b/src/cw/cfg.h index 2d2062c4..32fab202 100644 --- a/src/cw/cfg.h +++ b/src/cw/cfg.h @@ -55,6 +55,7 @@ cw_Val_t * cw_cfg_get_val_l(cw_Cfg_t ** cfgs, const char *key, const struct cw_T int cw_cfg_base_exists_l(cw_Cfg_t ** cfgs, const char *key); int cw_cfg_save(const char *filename, cw_Cfg_t *cfg, const char *format, ...); +uint16_t cw_cfg_get_word_l(cw_Cfg_t ** cfg, char *key, uint16_t def); diff --git a/src/cw/conn.c b/src/cw/conn.c index 07aff594..8e1346da 100644 --- a/src/cw/conn.c +++ b/src/cw/conn.c @@ -139,7 +139,7 @@ struct cw_Conn * cw_conn_create(int sock, struct sockaddr * addr, int qsize) /* conn->send_data_packet = conn_send_data_packet;*/ conn->last_seqnum_received=-1; - conn->mtu=600; + conn->mtu=1480; conn->cur_packet=0; @@ -149,7 +149,7 @@ struct cw_Conn * cw_conn_create(int sock, struct sockaddr * addr, int qsize) conn->write = conn->send_packet; conn->read = conn->recv_packet; - conn->dtls_mtu = 600; + conn->dtls_mtu = 1480; @@ -349,7 +349,8 @@ static int process_elements(struct cw_Conn *conn, uint8_t * rawmsg, int len, /* pre-check message */ if (payloadlen - 8 != elems_len) { - +//printf ("The elems_len is %d\n",elems_len); +//printf ("The len = %d\n",len); if (conn->strict_hdr) { cw_dbg(DBG_MSG_ERR, "Discarding message from %s, msgelems len=%d, payload len=%d, (Strict CAPWAP) ", @@ -365,7 +366,7 @@ static int process_elements(struct cw_Conn *conn, uint8_t * rawmsg, int len, "Packet from from %s has %d bytes of extra data, ignoring.", sock_addr2str(&conn->addr, sock_buf), payloadlen - 8 - elems_len); - elems_len = len - 8; + //elems_len = len - 8; } if (elems_len > payloadlen - 8) { diff --git a/src/cw/conn_q_add_packet.c b/src/cw/conn_q_add_packet.c index 1ad61e99..a12ffe6c 100644 --- a/src/cw/conn_q_add_packet.c +++ b/src/cw/conn_q_add_packet.c @@ -42,7 +42,6 @@ void conn_q_add_packet(struct cw_Conn * conn,uint8_t *packet,int len) conn->q[qwpos]=malloc(len+4); if (conn->q[qwpos]==NULL) return; - *((uint32_t*)(conn->q[qwpos]))=len; memcpy(conn->q[qwpos]+4,packet,len); conn->qwpos=qwpos+1; diff --git a/src/cw/conn_recv_packet.c b/src/cw/conn_recv_packet.c index 8e1aa66b..bdf00a35 100644 --- a/src/cw/conn_recv_packet.c +++ b/src/cw/conn_recv_packet.c @@ -29,6 +29,7 @@ int conn_recv_packet_(struct cw_Conn *conn, uint8_t * buf, int len, int flags) { + printf("conn_recv\n"); int n; while ((n = recv(conn->sock, (char *) buf, len, flags)) < 0) { if (errno != EINTR) { diff --git a/src/cw/cw.h b/src/cw/cw.h index 4e3887ba..b170db40 100644 --- a/src/cw/cw.h +++ b/src/cw/cw.h @@ -353,7 +353,7 @@ int cw_check_missing_mand(struct cw_MsgData *msgdata, mavl_t keys, mavl_t handle -extern int cw_read_descriptor_subelems(mavl_t store, const char * key, uint8_t * data, int len, +extern int cw_read_descriptor_subelems(cw_Cfg_t * store, const char * key, uint8_t * data, int len, struct cw_DescriptorSubelemDef *elems); /* @@ -362,7 +362,7 @@ int cw_read_wtp_descriptor(mavl_t mbag, struct cw_Conn *conn, struct cw_DescriptorSubelemDef *allowed); */ -int cw_read_wtp_descriptor(mavl_t mbag, struct cw_Conn *conn, +int cw_read_wtp_descriptor(cw_Cfg_t * mbag, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed); @@ -373,12 +373,12 @@ int cw_write_radio_element(struct cw_ElemHandler * handler, struct cw_ElemHandle uint8_t * dst); -extern int cw_read_wtp_descriptor_7(mavl_t mbag, struct cw_Conn *conn, +extern int cw_read_wtp_descriptor_7(cw_Cfg_t * cfg, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed); -int cw_read_ac_descriptor(mavl_t store, +int cw_read_ac_descriptor(cw_Cfg_t * store, struct cw_ElemHandler *eh, struct cw_ElemHandlerParams * params, uint8_t *data, int len, diff --git a/src/cw/cw_check_missing_mand.c b/src/cw/cw_check_missing_mand.c index 73a93bcb..b0ea230c 100644 --- a/src/cw/cw_check_missing_mand.c +++ b/src/cw/cw_check_missing_mand.c @@ -9,6 +9,9 @@ int cw_check_missing_mand(struct cw_MsgData *msgdata, mavl_t keys, mavl_t handle char *mandkey, *result; mlist_t missing; int count; + + if (msgdata==NULL) + return 0; missing = mlist_create_conststr(); if (missing==NULL){ diff --git a/src/cw/cw_in_generic_struct.c b/src/cw/cw_in_generic_struct.c index 5f936c69..8ac806a2 100644 --- a/src/cw/cw_in_generic_struct.c +++ b/src/cw/cw_in_generic_struct.c @@ -10,7 +10,7 @@ int cw_in_generic_struct(struct cw_ElemHandler * handler, struct cw_ElemHandlerP { cw_dbg(DBG_X,"STRUCT KEY: %s",handler->key); stop(); - const char * key; +/* const char * key; char tmpkey[CW_CFG_MAX_KEY_LEN]; @@ -22,11 +22,8 @@ int cw_in_generic_struct(struct cw_ElemHandler * handler, struct cw_ElemHandlerP key = handler->key; } -printf("CW_IN_GENERIC STRUCT: %s\n",key); +//printf("CW_IN_GENERIC STRUCT: %s\n",key); -/* int (*mkkey)(struct cw_ElemHandler * handler, char *dst, struct cw_ElemHandlerParams * params, - uint8_t*data, int len); -*/ if (!handler->type){ cw_log(LOG_ERR,"Can't handle element: %s, no type defined",handler->name); @@ -34,6 +31,6 @@ printf("CW_IN_GENERIC STRUCT: %s\n",key); } cw_ktv_read_struct(params->cfg,handler->type,key,elem_data,elem_len); - +*/ return CAPWAP_RESULT_SUCCESS; } diff --git a/src/cw/cw_out_generic_with_index.c b/src/cw/cw_out_generic_with_index.c index 44f9c65d..b0e5a401 100644 --- a/src/cw/cw_out_generic_with_index.c +++ b/src/cw/cw_out_generic_with_index.c @@ -7,9 +7,6 @@ int cw_out_generic_with_index(struct cw_ElemHandler * eh, struct cw_ElemHandlerParams * params, uint8_t * dst) { - char key[CW_CFG_MAX_KEY_LEN]; - int idx; - cw_Val_t * result, search; int len,start; uint8_t * ob; struct cw_Cfg_entry *e; @@ -18,7 +15,6 @@ int cw_out_generic_with_index(struct cw_ElemHandler * eh, int i,l; - idx = 0; ob = dst; cw_cfg_iter_init(params->cfg_list[0], &cfi, eh->key); @@ -42,31 +38,5 @@ int cw_out_generic_with_index(struct cw_ElemHandler * eh, return ob-dst; - stop(); - return 0; - - - - do { - sprintf(key,"%s.%d",eh->key,idx); - search.key=key; - result = mavl_get_first(params->cfg,&search); - if (result==NULL) - break; - if (strncmp(result->key,key,strlen(key))!=0) - break; - - start = params->msgset->header_len(eh); - len = cw_put_byte(ob+start,idx); - - len += result->type->put(result,ob+start+len); - - ob += params->msgset->write_header(eh,ob,len); - - idx++; - - }while(1); - - return ob-dst; } diff --git a/src/cw/cw_out_radio_generic_struct.c b/src/cw/cw_out_radio_generic_struct.c index 62abe0df..3992f50a 100644 --- a/src/cw/cw_out_radio_generic_struct.c +++ b/src/cw/cw_out_radio_generic_struct.c @@ -133,11 +133,11 @@ int cw_out_traverse(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams { - char current[CW_CFG_MAX_KEY_LEN]; - int stack[10]; - stack[0]=0; + //char current[CW_CFG_MAX_KEY_LEN]; + //int stack[10]; + //stack[0]=0; - current[0]=0; + //current[0]=0; stop(); return 0; diff --git a/src/cw/cw_read_ac_descriptor.c b/src/cw/cw_read_ac_descriptor.c index d15f1e3d..f90266ca 100644 --- a/src/cw/cw_read_ac_descriptor.c +++ b/src/cw/cw_read_ac_descriptor.c @@ -25,7 +25,7 @@ cw_ValStruct_t acstatus [] = { -int cw_read_ac_descriptor(mavl_t store, +int cw_read_ac_descriptor(cw_Cfg_t * store, struct cw_ElemHandler *eh, struct cw_ElemHandlerParams * params, uint8_t *data, int len, diff --git a/src/cw/cw_read_descriptor_subelems.c b/src/cw/cw_read_descriptor_subelems.c index 768072ec..92bd0ed0 100644 --- a/src/cw/cw_read_descriptor_subelems.c +++ b/src/cw/cw_read_descriptor_subelems.c @@ -22,7 +22,7 @@ #include "keys.h" -int cw_read_descriptor_subelems(mavl_t cfg, const char *parent_key, +int cw_read_descriptor_subelems(cw_Cfg_t *cfg, const char *parent_key, uint8_t * data, int len, struct cw_DescriptorSubelemDef *elems) { diff --git a/src/cw/cw_read_wtp_descriptor.c b/src/cw/cw_read_wtp_descriptor.c index 4c9c036e..a8f0727c 100644 --- a/src/cw/cw_read_wtp_descriptor.c +++ b/src/cw/cw_read_wtp_descriptor.c @@ -16,7 +16,7 @@ static struct cw_DescriptorSubelemDef allowed_default[] = { }; -int cw_read_wtp_descriptor(mavl_t cfg, struct cw_Conn *conn, +int cw_read_wtp_descriptor(cw_Cfg_t * cfg, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed) { diff --git a/src/cw/cw_read_wtp_descriptor_7.c b/src/cw/cw_read_wtp_descriptor_7.c index a6c7b1a9..904e42b9 100644 --- a/src/cw/cw_read_wtp_descriptor_7.c +++ b/src/cw/cw_read_wtp_descriptor_7.c @@ -20,7 +20,7 @@ static struct cw_DescriptorSubelemDef allowed_default[] = { /** * Read WTP Descriptor in Cisco-Style (Draft 7) */ -int cw_read_wtp_descriptor_7(mavl_t cfg, struct cw_Conn *conn, +int cw_read_wtp_descriptor_7(cw_Cfg_t * cfg, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed) { diff --git a/src/cw/cw_setup_dtls.c b/src/cw/cw_setup_dtls.c index f8d432ad..f1dcbb57 100644 --- a/src/cw/cw_setup_dtls.c +++ b/src/cw/cw_setup_dtls.c @@ -50,10 +50,10 @@ int cw_setup_dtls(struct cw_Conn *conn, cw_Cfg_t * cfg, const char *prefix, conn->dtls_cipher = cw_cfg_get(cfg, key, default_cipher); sprintf(key, "%s/%s", prefix, "ssl-psk"); - conn->dtls_psk = cw_cfg_get(cfg, key, NULL); + conn->dtls_psk = (bstr16_t)cw_cfg_get(cfg, key, NULL); sprintf(key, "%s/%s", prefix, "ssl-psk-enable"); - conn->dtls_psk_enable = cw_cfg_get_bool(cfg, key, "flase"); + conn->dtls_psk_enable = cw_cfg_get_bool(cfg, key, 0); if (conn->dtls_psk_enable) { security |= CAPWAP_FLAG_AC_SECURITY_S; diff --git a/src/cw/dbg.c b/src/cw/dbg.c index 2b8c4d10..eea32fa3 100644 --- a/src/cw/dbg.c +++ b/src/cw/dbg.c @@ -92,7 +92,7 @@ static struct cw_StrListElem theme0[] = { {DBG_WARN, ANSI_CYAN}, {DBG_MOD, ANSI_WHITE}, // {DBG_CFG_DMP, ANSI_BCYAN }, - {DBG_CFG_UPDATES,ANSI_BRED}, + {DBG_CFG_UPDATES,ANSI_GREEN}, {CW_STR_STOP, ""} }; diff --git a/src/cw/dbg.h b/src/cw/dbg.h index 2b8cafb6..0a39cb29 100644 --- a/src/cw/dbg.h +++ b/src/cw/dbg.h @@ -120,10 +120,12 @@ enum cw_dbg_levels{ DBG_MSG_COMPOSE = (1<<26), DBG_CFG_UPDATES = (1<<27), + + DBG_ELEM_VNDR = (1<<28), DBG_X = (1<<30), - DBG_ALL = (0xffffffff), + DBG_ALL = (0x7fffffff), DBG_ELEM_DMP_IN = 7, diff --git a/src/cw/dbg_strings.c b/src/cw/dbg_strings.c index d6996334..cecdc14f 100644 --- a/src/cw/dbg_strings.c +++ b/src/cw/dbg_strings.c @@ -47,42 +47,49 @@ struct cw_StrListElem cw_dbg_strings[] = { { DBG_MSG_DMP_IN, "msg_dmp_in" }, { DBG_MSG_DMP_OUT, "msg_dmp_out" }, - { DBG_MSG_ERR, "msg_err"}, + { DBG_MSG_ERR, "msg_err"}, - { DBG_RFC, "rfc", }, + { DBG_RFC, "rfc", }, - { DBG_ELEM_IN, "elem_in"}, - { DBG_ELEM_OUT, "elem_out"}, - { DBG_ELEM_DMP, "elem_dmp"}, - - { DBG_ELEM_ERR, "elem_err" }, - { DBG_ELEM_DETAIL_IN, "elem_detail_in" }, - { DBG_ELEM_DETAIL_OUT, "elem_detail_out" }, + { DBG_ELEM_IN, "elem_in"}, + { DBG_ELEM_OUT, "elem_out"}, + { DBG_ELEM_DMP, "elem_dmp"}, + { DBG_ELEM_ERR, "elem_err" }, + { DBG_ELEM_DETAIL_IN, "elem_detail_in" }, + { DBG_ELEM_DETAIL_OUT, "elem_detail_out" }, + { DBG_ELEM_VNDR, "elem_vndr"}, - { DBG_DTLS, "dtls" }, - { DBG_DTLS_BIO, "dtls_bio" }, - { DBG_DTLS_BIO_DMP, "dtls_bio_dmp"}, - { DBG_DTLS_DETAIL, "dtls_detail"}, + { DBG_DTLS, "dtls" }, + { DBG_DTLS_BIO, "dtls_bio" }, + { DBG_DTLS_BIO_DMP, "dtls_bio_dmp"}, + { DBG_DTLS_DETAIL, "dtls_detail"}, - { DBG_CFG_UPDATES, "cfg_updates" }, + { DBG_CFG_UPDATES, "cfg_updates" }, // {DBG_CFG_DMP, "cfg_dmp" }, - { DBG_WARN, "warn" }, + { DBG_WARN, "warn" }, - { DBG_MOD,"mod"}, - { DBG_STATE, "state" }, - { DBG_MSG_COMPOSE, "msg_compose" }, + { DBG_MOD, "mod"}, + { DBG_STATE, "state" }, + { DBG_MSG_COMPOSE, "msg_compose" }, { (DBG_MSG_IN | DBG_MSG_OUT), "msg" }, { (DBG_PKT_IN | DBG_PKT_OUT), "pkt" }, { (DBG_ELEM_IN | DBG_ELEM_OUT), "elem" }, { (DBG_ELEM_DETAIL_IN | DBG_ELEM_DETAIL_OUT), "elem_detail" }, { (DBG_ELEM_IN | DBG_ELEM_OUT | DBG_ELEM_DMP | DBG_ELEM_DETAIL_IN | DBG_ELEM_DETAIL_OUT), "elem_all" }, - { (DBG_MSG_IN | DBG_MSG_OUT | DBG_ELEM_IN | DBG_ELEM_OUT | DBG_STATE), "std" }, - { DBG_ALL, "all"}, + { ( DBG_MSG_IN | DBG_MSG_OUT | + DBG_ELEM_IN | DBG_ELEM_OUT | + DBG_MSG_ERR | DBG_ELEM_ERR | + DBG_PKT_ERR | DBG_RFC | DBG_WARN + + + | DBG_STATE), "std" }, + + { DBG_ALL, "all"}, { CW_STR_STOP, NULL } diff --git a/src/cw/dtls_openssl.c b/src/cw/dtls_openssl.c index aa02d1a8..92ed848c 100644 --- a/src/cw/dtls_openssl.c +++ b/src/cw/dtls_openssl.c @@ -224,7 +224,7 @@ int dtls_openssl_set_certs(struct cw_Conn * conn, struct dtls_openssl_data *d) { int rc; if (conn->dtls_key_file && conn->dtls_cert_file){ - SSL_CTX_set_default_passwd_cb_userdata(d->ctx, conn->dtls_key_pass); + SSL_CTX_set_default_passwd_cb_userdata(d->ctx, (char*)conn->dtls_key_pass); SSL_CTX_set_default_passwd_cb(d->ctx, pem_passwd_cb); @@ -291,18 +291,18 @@ return 1; - +/* static unsigned int psk_server_cb(SSL *ssl,const char *identity, unsigned char * psk, unsigned int max_psk_len) { BIO * b = SSL_get_rbio(ssl); - struct cw_Conn * conn = BIO_get_data(b); /*->ptr;*/ - + struct cw_Conn * conn = BIO_get_data(b); //->ptr; + int l = bstr16_len(conn->dtls_psk) < max_psk_len ? bstr16_len(conn->dtls_psk) : max_psk_len; memcpy(psk,conn->dtls_psk,l); return l; } - +*/ @@ -323,10 +323,8 @@ struct dtls_openssl_data * dtls_openssl_data_create(struct cw_Conn * conn, const } rc = SSL_CTX_get_security_level(d->ctx); - printf("Security Level is %d\n"); SSL_CTX_set_security_level(d->ctx,0); - printf("Security Level is %d\n"); diff --git a/src/cw/dtls_openssl_accept.c b/src/cw/dtls_openssl_accept.c index 101d4654..068f9f1d 100644 --- a/src/cw/dtls_openssl_accept.c +++ b/src/cw/dtls_openssl_accept.c @@ -32,7 +32,7 @@ int dtls_openssl_accept(struct cw_Conn *conn) if (!conn->dtls_data) conn->dtls_data = - dtls_openssl_data_create(conn, DTLSv1_server_method(), + dtls_openssl_data_create(conn, DTLS_server_method(), dtls_openssl_bio_method()); d = (struct dtls_openssl_data *) conn->dtls_data; diff --git a/src/cw/message.c b/src/cw/message.c index 4b0e6bc1..099b1138 100644 --- a/src/cw/message.c +++ b/src/cw/message.c @@ -11,6 +11,8 @@ int cw_encode_elements(struct cw_ElemHandlerParams *params, mlist_t elements_lis struct mlistelem * elem; len =0; + params->len=len; + mlist_foreach(elem,elements_list){ int l; struct cw_ElemData * data; @@ -52,6 +54,7 @@ int cw_encode_elements(struct cw_ElemHandlerParams *params, mlist_t elements_lis data->proto, data->vendor, data->id, handler->name,l); len += l; + params->len=len; } return len; @@ -96,6 +99,7 @@ int cw_compose_message(struct cw_Conn *conn, uint8_t * rawout) len =0; //cw_dbg(DBG_X,"setting with update CFG"); params.conn=conn; + params.rawmsg = rawout; params.cfg_list[0]=conn->update_cfg; params.cfg_list[1]=conn->local_cfg; params.cfg_list[2]=conn->global_cfg; @@ -220,7 +224,10 @@ int cw_decode_element(struct cw_ElemHandlerParams *params, int proto, elem_data_search.id = elem_id; elem_data_search.proto = proto; elem_data_search.vendor = vendor; - elem_data = mavl_get(params->msgdata->elements_tree, &elem_data_search); + if (params->msgdata) + elem_data = mavl_get(params->msgdata->elements_tree, &elem_data_search); + else + elem_data = NULL; if (!elem_data) { cw_dbg(DBG_ELEM_ERR, "Element %d - %s, not allowed here", elem_id, handler->name); @@ -249,7 +256,7 @@ int cw_decode_element(struct cw_ElemHandlerParams *params, int proto, return -1; } - if (!handler->flags) + if (!handler->flags || cw_dbg_is_level(DBG_ELEM_VNDR)) cw_dbg_elem(params->dbg_level, NULL, params->msgdata->type, handler, data, len); @@ -273,7 +280,6 @@ int cw_decode_elements(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr //mand_found = mavl_create_conststr(); //unrecognized = mlist_create(NULL,NULL,sizeof(uint8_t*)); - cw_foreach_elem(elem, elems_ptr, elems_len) { int rc; diff --git a/src/cw/mod.c b/src/cw/mod.c index 9ff1397f..5d91ca23 100644 --- a/src/cw/mod.c +++ b/src/cw/mod.c @@ -119,7 +119,7 @@ void cw_mod_set_path(const char *path) * @param mod_name Name of the module * @return a pointer to the module interface */ -struct cw_Mod *cw_mod_load(const char *mod_name, mavl_t global_cfg, int role) +struct cw_Mod *cw_mod_load(const char *mod_name, cw_Cfg_t * global_cfg, int role) { struct cw_Mod search; struct cw_Mod *mod; diff --git a/src/cw/mod.h b/src/cw/mod.h index df35f0a1..61303bcf 100644 --- a/src/cw/mod.h +++ b/src/cw/mod.h @@ -29,7 +29,7 @@ #include "sock.h" #include "conn.h" - +#include "cfg.h" enum { CW_MOD_MODE_CAPWAP, @@ -44,7 +44,7 @@ struct cw_Mod { const char *name; /** Initializion method */ - int (*init) (struct cw_Mod *mod, mavl_t global_cfg, int role); + int (*init) (struct cw_Mod *mod, cw_Cfg_t * global_cfg, int role); /** Detect capwap * This function is called after receiving and disassembling a complete @@ -93,7 +93,7 @@ extern int mod_caching; #define mod_set_caching(var) (mod_caching=var) #define mod_get_caching() (mod_caching) -struct cw_Mod * cw_mod_load(const char * mod_name, mavl_t global_cfg, int role); +struct cw_Mod * cw_mod_load(const char * mod_name, cw_Cfg_t * global_cfg, int role); struct cw_Mod * cw_mod_add_to_list(struct cw_Mod * mod ); struct cw_Mod * cw_mod_detect(struct cw_Conn *conn, uint8_t * rawmsg, int len, diff --git a/src/cw/msgset.c b/src/cw/msgset.c index 92fb5d0a..f75f6a05 100644 --- a/src/cw/msgset.c +++ b/src/cw/msgset.c @@ -384,6 +384,9 @@ int cw_msgset_add_states(struct cw_MsgSet * set, cw_StateMachineState_t * states return 1; } + + + /** * @brief Find message data to a specific message * @param set message set @@ -392,9 +395,14 @@ int cw_msgset_add_states(struct cw_MsgSet * set, cw_StateMachineState_t * states */ struct cw_MsgData *cw_msgset_get_msgdata(struct cw_MsgSet *set, int type) { - struct cw_MsgData search; + + struct cw_MsgData search, *result; search.type = type; - return mavl_get(set->msgdata, &search); + result = mavl_get(set->msgdata, &search); + if (result != NULL) + return result; + + return NULL; } typedef int (*cw_MsgCallbackFun)(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr, int elems_len); diff --git a/src/cw/msgset.h b/src/cw/msgset.h index a17fb7c4..3989259d 100644 --- a/src/cw/msgset.h +++ b/src/cw/msgset.h @@ -24,18 +24,20 @@ struct cw_ElemData{ }; struct cw_ElemHandlerParams { - struct cw_Conn * conn; /**< a connection the message belongs to*/ - struct cw_MsgSet * msgset; + struct cw_Conn * conn; /**< a connection the message belongs to*/ + uint8_t * rawmsg; + struct cw_MsgSet * msgset; /**< msgset to use */ struct cw_MsgData * msgdata; struct cw_ElemData * elemdata; struct sockaddr *from; - mavl_t mand_found; - mlist_t unrecognized; -// cw_Val_t * elem; + mavl_t mand_found; /**< used to ad the keys of mand. msg elements + found while parsing */ + mlist_t unrecognized; /**< to catch ids of unreconized mss elements */ char * debug_details; uint32_t dbg_level; cw_Cfg_t * cfg; cw_Cfg_t * cfg_list[10]; + int len; }; diff --git a/src/cw/val.h b/src/cw/val.h index 00fa91fb..1e0b06eb 100644 --- a/src/cw/val.h +++ b/src/cw/val.h @@ -146,12 +146,6 @@ struct cw_ValIndexed{ }; typedef struct cw_ValIndexed cw_ValIndexed_t; -int cw_ktv_read_struct(mavl_t ktv,const cw_ValStruct_t * stru, const char *pkey, - uint8_t * data, int len); -int cw_ktv_write_struct(mavl_t ktv, mavl_t def, const cw_ValStruct_t * stru, const char *pkey, - uint8_t * dst); - - extern const struct cw_Type cw_type_byte; extern const struct cw_Type cw_type_word; @@ -178,24 +172,7 @@ extern const struct cw_Type cw_type_struct; /* void cw_kvstore_mavl_delete(const void *data); */ -cw_Val_t *cw_ktv_add(mavl_t kvstore, const char *key, const struct cw_Type *type, - const void * valguard, - const uint8_t * data, int len); -void cw_ktv_del_sub(mavl_t ktvstore, const char *basekey); - -cw_Val_t * cw_ktv_replace(mavl_t kvtstore, const char *key, const struct cw_Type *type, - const void * valguard, - const uint8_t * data, int len); - -const char * cw_ktv_add_from_str(mavl_t kvtstore, const char *key, const struct cw_Type *type, - const void * valguard, - const char * str); - -int cw_ktv_mavlcmp(const void *v1, const void *v2); -int cw_ktv_mavlcmp_type_by_name(const void *v1,const void *v2); - -void cw_ktv_mavldel(void *data); /** * Create a KTV store diff --git a/src/mod/capwap/capwap_in_vendor_specific_payload.c b/src/mod/capwap/capwap_in_vendor_specific_payload.c index ad890182..b42bb348 100644 --- a/src/mod/capwap/capwap_in_vendor_specific_payload.c +++ b/src/mod/capwap/capwap_in_vendor_specific_payload.c @@ -26,6 +26,9 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler, if (!vhandler) { + cw_dbg_elem(params->dbg_level, NULL, params->msgdata->type, handler, + data, len); + cw_dbg(DBG_WARN, "Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.", cw_strvendor(vendor_id), elem_id, params->msgdata->type, diff --git a/src/mod/capwap/capwap_in_wtp_board_data.c b/src/mod/capwap/capwap_in_wtp_board_data.c index 0aa3832d..7e8511ec 100644 --- a/src/mod/capwap/capwap_in_wtp_board_data.c +++ b/src/mod/capwap/capwap_in_wtp_board_data.c @@ -30,7 +30,7 @@ #include "cw/keys.h" -static void readsubelems_wtp_board_data(mavl_t cfg, uint8_t * msgelem, +static void readsubelems_wtp_board_data(cw_Cfg_t * cfg, uint8_t * msgelem, int len) { int i = 0; diff --git a/src/mod/cisco/cisco_actions.c b/src/mod/cisco/cisco_actions.c index b4d98c18..9e1d3485 100644 --- a/src/mod/cisco/cisco_actions.c +++ b/src/mod/cisco/cisco_actions.c @@ -437,6 +437,17 @@ static cw_ValStruct_t cisco_tx_power[]={ {NULL,NULL,0,0} }; + +static cw_ValStruct_t cisco_lw_radio_module_info_stru[]={ + {CW_TYPE_STR,"name",21,-1}, + {CW_TYPE_STR,"serial",11,-1}, + {CW_TYPE_STR,"type",25,-1}, + {CW_TYPE_STR,"descr",126,-1}, + {NULL,NULL,0,0} +}; + + + static cw_ValStruct_t cisco_ap_qos[]={ {CW_TYPE_BYTE,"tag-packets",1,-1}, {CW_TYPE_BYTE,"uranium-queue-depth",1,-1}, @@ -597,7 +608,7 @@ static int cisco_in_lw_del_wlan(struct cw_ElemHandler *eh, uint8_t * data, int len) { stop(); - +/* int wlan_id, radio_id; char key[CW_CFG_MAX_KEY_LEN]; @@ -606,7 +617,7 @@ static int cisco_in_lw_del_wlan(struct cw_ElemHandler *eh, sprintf(key,"radio.%d/wlan.%d",radio_id,wlan_id); cw_ktv_del_sub(params->cfg,key); cw_dbg(DBG_INFO,"Del WLAN rid=%d, id=%d",wlan_id); - return 0; + return 0;*/ } @@ -955,7 +966,7 @@ static struct cw_ElemHandler handlers70[] = { } , { - "Path MTU", /* name */ + "Cisco LWAPP Path MTU", /* name */ CISCO_LWELEM_PATH_MTU, /* Element ID */ CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */ 0,0, /* min/max length */ @@ -1518,7 +1529,7 @@ static struct cw_ElemHandler handlers70[] = { { - "Cisco LWAP Elem 9", /* name */ + "Cisco LWAPP Elem 9", /* name */ CISCO_LWELEM_9, /* Element ID */ CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */ @@ -1531,7 +1542,7 @@ static struct cw_ElemHandler handlers70[] = { }, { - "Cisco LWAP Elem 11", /* name */ + "Cisco LWAPP Elem 11", /* name */ CISCO_LWELEM_11, /* Element ID */ CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */ @@ -1585,7 +1596,7 @@ static struct cw_ElemHandler handlers70[] = { }, { - "Cisco LWAP Elem 29", /* name */ + "Cisco LWAPP Elem 29", /* name */ CISCO_LWELEM_29, /* Element ID */ CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */ @@ -1638,6 +1649,21 @@ static struct cw_ElemHandler handlers70[] = { cw_out_radio_generic /* put */ }, + { + "Cisco LWAPP Radio Module Info", /* name */ + CISCO_LWELEM_RADIO_MODULE_INFO, /* Element ID */ + CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */ + 183,183, /* min/max length */ + CW_TYPE_STRUCT, /* type */ + "cisco/radio-module-info", /* Key */ + cw_in_radio_generic, /* get */ + cw_out_radio_generic, /* put */ + NULL, + NULL, + cisco_lw_radio_module_info_stru /* param */ + }, + + { @@ -2033,7 +2059,7 @@ static struct cw_ElemHandler handlers70[] = { CW_VENDOR_ID_CISCO, 0, /* Vendor / Proto */ 1, 1, /* min/max length */ CW_TYPE_BOOL, /* type */ - "cisco/sig-toogle", /* Key */ + "cisco/sig-toggle", /* Key */ cw_in_generic, /* get */ cw_out_generic /* put */ } @@ -2140,10 +2166,9 @@ static struct cw_ElemDef join_request_elements[] ={ static struct cw_ElemDef join_response_elements[] ={ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 0, 0}, - {0,0, CAPWAP_ELEM_ECN_SUPPORT, 0, CW_DELETE}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 1, 0}, {0,0,0,00} }; @@ -2229,10 +2254,11 @@ static struct cw_ElemDef configuration_status_request_elements[] ={ {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_ETHERNET_PORT_SUBTYPE, 1, 0}, {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AC_IP_ADDR_WITH_INDEX, 0, 0}, {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_VLAN, 0, 0}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_TCP_ADJUST_MSS, 0, 0}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_DTLS_DATA_CFG, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_TCP_ADJUST_MSS, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_DTLS_DATA_CFG, 0, 0}, +// {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 0, 0}, {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_DISCOVERY_PROTOCOL, 1, 0}, {0,0,0,00} @@ -2410,6 +2436,8 @@ static struct cw_ElemDef wtp_event_request_elements[] ={ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 0, CW_IGNORE}, {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ADD_WLAN, 0, 0}, {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_RADIO_MODULE_INFO, 0, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_29, 0, 0}, {0,0,0,0,0} }; @@ -2428,10 +2456,12 @@ static struct cw_ElemDef change_state_event_request_elements[] ={ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 1, CW_IGNORE}, {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_OPER_STATE_DETAIL_CAUSE, 1, CW_IGNORE}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_105, 0, 0}, {0, 0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0}, - {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0}, + {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_RADIO_MODULE_INFO, 1, 0}, {0,0,0,0,0} diff --git a/src/mod/cisco/cisco_in_spam_vendor_specific.c b/src/mod/cisco/cisco_in_spam_vendor_specific.c index 3fc9bf6c..d826b7ef 100644 --- a/src/mod/cisco/cisco_in_spam_vendor_specific.c +++ b/src/mod/cisco/cisco_in_spam_vendor_specific.c @@ -17,6 +17,9 @@ int cisco_in_spam_vendor_specific(struct cw_ElemHandler *eh, if (!vhandler) { + cw_dbg_elem(params->dbg_level, NULL, params->msgdata->type, eh, + data, len); + cw_dbg(DBG_WARN, "Can't handle Vendor Specific LWAPP Payload %s/%d, in msg %d (%s) in %s state.", cw_strvendor(vendor_id), elem_id, params->msgdata->type, diff --git a/src/mod/cisco/cisco_out_lw_path_mtu.c b/src/mod/cisco/cisco_out_lw_path_mtu.c index 9463b05b..adc19b20 100644 --- a/src/mod/cisco/cisco_out_lw_path_mtu.c +++ b/src/mod/cisco/cisco_out_lw_path_mtu.c @@ -14,21 +14,26 @@ int cisco_out_lw_path_mtu(struct cw_ElemHandler * eh, char key[CW_CFG_MAX_KEY_LEN]; int len,max; - + + int hl = params->msgset->header_len(eh); + int cl = dst-params->rawmsg; + int wl = 1400-cl-hl; + +printf("HL:%d CL:%d WL: %d\n",hl,cl,wl); + sprintf(key,"%s/%s",eh->key,"len"); - len = cw_cfg_get_word(params->cfg,key,0); + len = cw_cfg_get_word_l(params->cfg_list,key,0); if (len == 0) return 0; sprintf(key,"%s/%s",eh->key,"max"); - max = cw_cfg_get_word(params->cfg,key,0); + max = cw_cfg_get_word_l(params->cfg_list,key,0); - lw_set_word(dst+16,max); - lw_set_word(dst+16+2,len); - memset(dst+16+4,0,len-4); - - /* put the lwap elem header */ - lw_set_dword(dst + 10, eh->vendor); - lw_set_word(dst + 14, eh->id); + lw_set_word(dst+hl,max); + lw_set_word(dst+hl+2,wl); + memset(dst+hl+4,0,wl-4); - return len + 6 + cw_put_elem_vendor_hdr(dst, eh->vendor, CISCO_ELEM_SPAM_VENDOR_SPECIFIC, len+6); + len = wl; + + return params->msgset->write_header(eh,dst,len); + } diff --git a/src/mod/cisco/mod_cisco_ac.c b/src/mod/cisco/mod_cisco_ac.c index bbb159c9..bf687332 100644 --- a/src/mod/cisco/mod_cisco_ac.c +++ b/src/mod/cisco/mod_cisco_ac.c @@ -97,7 +97,7 @@ static void errfunc(cfg_t *cfg, const char *fmt, va_list ap){ } */ -static int init(struct cw_Mod *mod, mavl_t global_cfg, int role) +static int init(struct cw_Mod *mod, cw_Cfg_t * global_cfg, int role) { /* uint8_t * str;*/ static char * hardware_version; /*strdup(".x01000001");*/ diff --git a/src/wtp/cisco.ckv b/src/wtp/cisco.ckv index dbeead61..49528982 100644 --- a/src/wtp/cisco.ckv +++ b/src/wtp/cisco.ckv @@ -76,6 +76,7 @@ cisco/rouge-and-mss/enable: false cisco/rouge-and-mss/tcp-adjust-mss: 0 cisco/rouge-detection/rest: .x0000000a cisco/rouge-detection/rouge-detection: true +cisco/sig-toggle: true cisco/sig-toogle: true cisco/spam-domain-secret: .xe1ffd18a8f15b3b59c0a47a7f17a96e7cb36174f00 cisco/ssl-certfile: ../../ssl/certs/wtpc.crt @@ -116,7 +117,7 @@ radio.0/cisco/elem146: .x690f radio.0/cisco/elem153: .x00 radio.0/cisco/elem156: .x020100 radio.0/cisco/elem16: .x02040b0c -radio.0/cisco/elem19: .xc0a800a10001000cc0a800a103000101003ccd774fc43bd27db633509934957d3acb000000000000000052464d000000000000000000000000000000000000000000000000000000000001060b010101 +radio.0/cisco/elem19: .xc0a800a10001000cc0a800a103000101001ecd774fc43bd27db633509934957d3acb000000000000000052464d000000000000000000000000000000000000000000000000000000000001060b010101 radio.0/cisco/elem22: .x0d00b400320102030405060708090a0b0c0d radio.0/cisco/elem24: .x003c000c radio.0/cisco/elem47: .x0100000000000000000000000000000000 @@ -169,7 +170,7 @@ radio.0/wlan.1/add-wlan/scan-defer-time: 100 radio.0/wlan.1/add-wlan/session-timout: 1800 radio.0/wlan.1/add-wlan/ssid: tubeC radio.0/wlan.1/add-wlan/wep-encryption: false -radio.0/wlan.1/add-wlan/wep-key: .xc214aef5bd4c4e1ff2574303a4 +radio.0/wlan.1/add-wlan/wep-key: .xe90245968787036bf1e1756fc8 radio.0/wlan.1/add-wlan/wep-key-index: 1 radio.0/wlan.1/add-wlan/wlan-capability: 1073 radio.0/wlan.1/add-wlan/wlan-id: 1 @@ -186,7 +187,7 @@ radio.0/wlan.13/add-wlan/scan-defer-time: 100 radio.0/wlan.13/add-wlan/session-timout: 1800 radio.0/wlan.13/add-wlan/ssid: SuperSSID radio.0/wlan.13/add-wlan/wep-encryption: false -radio.0/wlan.13/add-wlan/wep-key: .xc214aef5bd4c4e1ff2574303a4 +radio.0/wlan.13/add-wlan/wep-key: .xe90245968787036bf1e1756fc8 radio.0/wlan.13/add-wlan/wep-key-index: 1 radio.0/wlan.13/add-wlan/wlan-capability: 1057 radio.0/wlan.13/add-wlan/wlan-id: 13 @@ -204,12 +205,12 @@ radio.1/cisco/antenna-payload/unknown: 3 radio.1/cisco/channel-power: .x0808102408221c16100a04fefe2808221c16100a04fefe2c08221c16100a04fefe3008221c16100a04fefe3408221c16100a04fefe3808221c16100a04fefe3c08221c16100a04fefe4008221c16100a04fefe6408221c16100a04fefe6808221c16100a04fefe6c08221c16100a04fefe7008221c16100a04fefe7408221c16100a04fefe8408221c16100a04fefe8808221c16100a04fefe8c08221c16100a04fefe radio.1/cisco/elem145: .x01 radio.1/cisco/elem15/cfg-type: 1 - global -radio.1/cisco/elem15/channel: 124 -radio.1/cisco/elem15/rest: .x07ffffffce010001 +radio.1/cisco/elem15/channel: 48 +radio.1/cisco/elem15/rest: .x07ffffffce000000 radio.1/cisco/elem153: .x00 radio.1/cisco/elem156: .x020100 radio.1/cisco/elem16: .x0c121824 -radio.1/cisco/elem19: .xc0a800a10001000bc0a800a110000101003ccd774fc43bd27db633509934957d3acb000000000000000052464d000000000000000000000000000000000000000000000000000000000024282c3034383c4064686c707484888c01010101010101010101010101010101 +radio.1/cisco/elem19: .xc0a800a10001000bc0a800a110000101001ecd774fc43bd27db633509934957d3acb000000000000000052464d000000000000000000000000000000000000000000000000000000000024282c3034383c4064686c707484888c01010101010101010101010101010101 radio.1/cisco/elem22: .x1000b4003224282c3034383c4064686c707484888c radio.1/cisco/elem24: .x003c000c radio.1/cisco/elem47: .x0100000000000000000000000000000000 @@ -262,7 +263,7 @@ radio.1/wlan.1/add-wlan/scan-defer-time: 100 radio.1/wlan.1/add-wlan/session-timout: 1800 radio.1/wlan.1/add-wlan/ssid: tubeC radio.1/wlan.1/add-wlan/wep-encryption: false -radio.1/wlan.1/add-wlan/wep-key: .xc97bf74c5a6b5d327384ac9065 +radio.1/wlan.1/add-wlan/wep-key: .x495089a65b115670f2f2bd7c99 radio.1/wlan.1/add-wlan/wep-key-index: 1 radio.1/wlan.1/add-wlan/wlan-capability: 17 radio.1/wlan.1/add-wlan/wlan-id: 1 @@ -279,7 +280,7 @@ radio.1/wlan.13/add-wlan/scan-defer-time: 100 radio.1/wlan.13/add-wlan/session-timout: 1800 radio.1/wlan.13/add-wlan/ssid: SuperSSID radio.1/wlan.13/add-wlan/wep-encryption: false -radio.1/wlan.13/add-wlan/wep-key: .xc97bf74c5a6b5d327384ac9065 +radio.1/wlan.13/add-wlan/wep-key: .x495089a65b115670f2f2bd7c99 radio.1/wlan.13/add-wlan/wep-key-index: 1 radio.1/wlan.13/add-wlan/wlan-capability: 1 radio.1/wlan.13/add-wlan/wlan-id: 13