Cisco AP can connect up to a data channel
FossilOrigin-Name: 3019e0265c564fb45223620a60ea7f4f1702fa00804804d5c9351a4f7e7d4205
This commit is contained in:
@ -79,7 +79,7 @@ capwap-timers/data-check-timer: Word: 10
|
||||
capwap-timers/echo-interval :Byte: 30
|
||||
capwap-timers/max-discovery-interval :Byte: 10
|
||||
|
||||
radio.255/admin-state :Str: enabled
|
||||
radio.255/operational-state/cause :Str: Normal
|
||||
radio.255/operational-state/state :Str: enabled
|
||||
#radio.255/admin-state :Str: enabled
|
||||
#radio.255/operational-state/cause :Str: Normal
|
||||
#radio.255/operational-state/state :Str: enabled
|
||||
|
||||
|
@ -85,20 +85,78 @@ void show_aps (FILE *out)
|
||||
}
|
||||
|
||||
|
||||
void con (FILE *out)
|
||||
{
|
||||
struct connlist * cl;
|
||||
mavliter_t it;
|
||||
|
||||
|
||||
|
||||
wtplist_lock();
|
||||
|
||||
cl = wtplist_get_connlist();
|
||||
|
||||
|
||||
mavliter_init (&it, cl->by_addr);
|
||||
fprintf (out, "IP\t\t\twtp-name\n");
|
||||
mavliter_foreach (&it) {
|
||||
cw_KTV_t * result;
|
||||
char addr[SOCK_ADDR_BUFSIZE];
|
||||
char wtp_name[CAPWAP_MAX_WTP_NAME_LEN];
|
||||
struct conn * conn;
|
||||
conn = mavliter_get_ptr (&it);
|
||||
|
||||
sock_addr2str_p (&conn->addr, addr);
|
||||
|
||||
result = cw_ktv_get (conn->remote_cfg, "wtp-name", NULL);
|
||||
|
||||
if (result == NULL) {
|
||||
strcpy (wtp_name, "");
|
||||
|
||||
} else {
|
||||
result->type->to_str (result, wtp_name, CAPWAP_MAX_WTP_NAME_LEN);
|
||||
}
|
||||
|
||||
|
||||
fprintf (out, "Con!! %s\t\t%s\n", addr, wtp_name);
|
||||
|
||||
{
|
||||
mavl_t update;
|
||||
update = cw_ktv_create();
|
||||
cw_ktv_set_byte(update,"radio.255/admin-state",1);
|
||||
conn->update_cfg=update;
|
||||
}
|
||||
|
||||
|
||||
fprintf(out,"\n");
|
||||
|
||||
}
|
||||
wtplist_unlock();
|
||||
}
|
||||
|
||||
|
||||
void execute_cmd (FILE * out, const char *str)
|
||||
{
|
||||
char cmd[1024];
|
||||
char args[1024];
|
||||
int n;
|
||||
|
||||
|
||||
sscanf (str, "%s%s", cmd, args);
|
||||
n = sscanf (str, "%s%s", cmd, args);
|
||||
|
||||
if (n<=0)
|
||||
return;
|
||||
/*printf("CMD: %s, ARGS:\n",cmd);*/
|
||||
|
||||
if (strcmp (cmd, "s") == 0) {
|
||||
show_aps (out);
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp (cmd, "con")==0){
|
||||
con(out);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -116,7 +174,7 @@ void shell_loop (FILE *file)
|
||||
do {
|
||||
fprintf (file, "actube[%d]:>", fileno (file));
|
||||
fflush (file);
|
||||
|
||||
str[0]=0;
|
||||
fgets (str, sizeof (str), file);
|
||||
execute_cmd (file, str);
|
||||
|
||||
|
@ -386,6 +386,9 @@ static void * wtpman_main(void *arg)
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
switch (conn->capwap_transition){
|
||||
case CW_TRANSITION(CAPWAP_STATE_DTLS_SETUP, CAPWAP_STATE_JOIN):
|
||||
@ -435,8 +438,25 @@ static void * wtpman_main(void *arg)
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
while (!cw_timer_timeout(timer)) {
|
||||
if (conn->update_cfg != NULL){
|
||||
mavl_t tmp;
|
||||
tmp = conn->local_cfg;
|
||||
|
||||
conn->local_cfg=conn->update_cfg;
|
||||
|
||||
cw_dbg(DBG_INFO, "Updating WTP %s",sock_addr2str(&conn->addr,sock_buf));
|
||||
|
||||
rc = cw_send_request(conn, CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST);
|
||||
conn->update_cfg=NULL;
|
||||
conn->local_cfg=tmp;
|
||||
}
|
||||
|
||||
|
||||
rc = cw_read_messages(wtpman->conn);
|
||||
if (rc < 0) {
|
||||
if (errno == EAGAIN)
|
||||
|
Reference in New Issue
Block a user