More documentation and Cisco support.
FossilOrigin-Name: 0a22e4c44b2df5712b2f8edaea0712fcc7fc0ca953e86179c0a653a484197a43
This commit is contained in:
@ -11,7 +11,7 @@ ifndef ARCH
|
||||
endif
|
||||
|
||||
LDFLAGS+=-g -D_REENTRANT -L/usr/local/lib -L../capwap/$(ARCH)
|
||||
CFLAGS += -Wall -g -O3 -D_REENTRANT -DIPV6 -I/usr/local/include -I../capwap
|
||||
CFLAGS += -Wall -g -O0 -D_REENTRANT -DIPV6 -I/usr/local/include -I../capwap
|
||||
|
||||
|
||||
LIBS+=-lcapwap
|
||||
|
@ -15,12 +15,45 @@
|
||||
|
||||
|
||||
# ac_id
|
||||
# A unique id for this AC
|
||||
# A unique ID for this AC
|
||||
# If not specified, an id is build from macaddress.
|
||||
#
|
||||
# Default:
|
||||
# ac_id =
|
||||
|
||||
# hardware_version
|
||||
# Hardware version for the AC
|
||||
# If ommited, the hardware version is build from
|
||||
# the underlying OS
|
||||
#
|
||||
# Default:
|
||||
# hardware_version =
|
||||
|
||||
# software_version
|
||||
# Software version for this AC
|
||||
# If not specified, the compiled in software version is used.
|
||||
#
|
||||
# Default:
|
||||
# software_version =
|
||||
|
||||
|
||||
# cisco_hardware_version
|
||||
# Hardware version sent, when AC operates in cisco-mode
|
||||
#
|
||||
# Default:
|
||||
# cisco_hardware_version = .x01000001
|
||||
|
||||
# cisco_software_version
|
||||
# Software version sent, when operating in cisco-mode
|
||||
#
|
||||
# Default:
|
||||
# cisco_software_version = .x08006E00
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------
|
||||
# Network related
|
||||
|
@ -80,10 +80,10 @@ struct ac_info * get_acinfo()
|
||||
acinfo->vendor_id=conf_vendor_id;
|
||||
|
||||
acinfo->hardware_version=(uint8_t*)conf_hardware_version;
|
||||
acinfo->hardware_version_len=conf_hardware_version_len;
|
||||
|
||||
acinfo->software_version=(uint8_t*)conf_software_version;
|
||||
acinfo->software_version_len=conf_software_version_len;
|
||||
acinfo->cisco_hardware_version=(uint8_t*)conf_cisco_hardware_version;
|
||||
acinfo->cisco_software_version=(uint8_t*)conf_cisco_software_version;
|
||||
|
||||
|
||||
if (conf_dtls_psk)
|
||||
acinfo->security|=AC_SECURITY_S;
|
||||
|
@ -74,11 +74,17 @@ char * conf_dtls_psk=NULL;
|
||||
int conf_security=0;
|
||||
long conf_vendor_id=CONF_DEFAULT_VENDOR_ID;
|
||||
|
||||
char * conf_hardware_version=NULL;
|
||||
int conf_hardware_version_len=0;
|
||||
|
||||
char * conf_software_version=NULL;
|
||||
int conf_software_version_len=0;
|
||||
bstr_t conf_hardware_version=NULL;
|
||||
bstr_t conf_software_version=NULL;
|
||||
|
||||
bstr_t conf_cisco_hardware_version=NULL;
|
||||
bstr_t conf_cisco_software_version=NULL;
|
||||
|
||||
|
||||
//int conf_hardware_version_len=0;
|
||||
|
||||
//int conf_software_version_len=0;
|
||||
|
||||
|
||||
int conf_use_loopback = 0;
|
||||
@ -168,7 +174,7 @@ static int init_vendor_id()
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
static int convert_version_string(char * si[], int *l)
|
||||
{
|
||||
char * s = *si;
|
||||
@ -231,31 +237,47 @@ static int convert_version_string(char * si[], int *l)
|
||||
return 1;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
static int init_version()
|
||||
{
|
||||
|
||||
/* Init hardware version */
|
||||
if (!conf_hardware_version)
|
||||
{
|
||||
struct utsname u;
|
||||
int rc = uname(&u);
|
||||
if (rc<0)
|
||||
conf_hardware_version=CONF_DEFAULT_HARDWARE_VERSION;
|
||||
conf_hardware_version=(bstr_t)strdup(CONF_DEFAULT_HARDWARE_VERSION);
|
||||
else{
|
||||
char str[265];
|
||||
sprintf(str,"%s / %s %s",u.machine,u.sysname,u.release);
|
||||
conf_hardware_version=strdup(str);
|
||||
conf_hardware_version=(bstr_t)strdup(str);
|
||||
}
|
||||
|
||||
}
|
||||
conf_hardware_version_len=strlen(conf_hardware_version);
|
||||
convert_version_string(&conf_hardware_version,&conf_hardware_version_len);
|
||||
bstr_replace(&conf_hardware_version,bstr_create_from_cfgstr((char*)conf_hardware_version));
|
||||
|
||||
/* software version */
|
||||
if (!conf_software_version)
|
||||
conf_software_version=CONF_DEFAULT_SOFTWARE_VERSION;
|
||||
conf_software_version_len=strlen(conf_software_version);
|
||||
conf_software_version=(bstr_t)strdup(CONF_DEFAULT_SOFTWARE_VERSION);
|
||||
bstr_replace(&conf_software_version,bstr_create_from_cfgstr((char*)conf_software_version));
|
||||
|
||||
|
||||
/* Cisco hardware version */
|
||||
if (!conf_cisco_hardware_version)
|
||||
conf_cisco_hardware_version=(bstr_t)strdup(CONF_DEFAULT_CISCO_HARDWARE_VERSION);
|
||||
bstr_replace(&conf_cisco_hardware_version,bstr_create_from_cfgstr((char*)conf_cisco_hardware_version));
|
||||
|
||||
/* Cisco software version */
|
||||
if (!conf_cisco_software_version)
|
||||
conf_cisco_software_version=(bstr_t)strdup(CONF_DEFAULT_CISCO_SOFTWARE_VERSION);
|
||||
bstr_replace(&conf_cisco_software_version,bstr_create_from_cfgstr((char*)conf_cisco_software_version));
|
||||
|
||||
|
||||
|
||||
|
||||
convert_version_string(&conf_software_version,&conf_software_version_len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -529,7 +551,7 @@ static int conf_read_dbg_level(cfg_t *cfg)
|
||||
|
||||
for (i=0; i<n; i++) {
|
||||
char * str = cfg_getnstr(cfg,name,i);
|
||||
int u = cw_log_str2dbglevel(str);
|
||||
//int u = cw_log_str2dbglevel(str);
|
||||
cw_dbg_opt_level|=cw_log_str2dbglevel(str);
|
||||
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#include "capwap.h"
|
||||
#include "lwapp.h"
|
||||
#include "bstr.h"
|
||||
|
||||
#ifndef CONF_DEFAULT_ACNAME
|
||||
#define CONF_DEFAULT_ACNAME "AC"
|
||||
@ -57,6 +58,10 @@
|
||||
#define CONF_DEFAULT_HARDWARE_VERSION "Unknown"
|
||||
#endif
|
||||
|
||||
#define CONF_DEFAULT_CISCO_HARDWARE_VERSION ".x01000001"
|
||||
#define CONF_DEFAULT_CISCO_SOFTWARE_VERSION ".x05007E00"
|
||||
|
||||
|
||||
#ifndef CONF_DEFAULT_CONTROL_PORT
|
||||
#define CONF_DEFAULT_CONTROL_PORT CAPWAP_CONTROL_PORT
|
||||
#endif
|
||||
@ -75,10 +80,11 @@ extern struct sockaddr_storage * conf_salist;
|
||||
extern int conf_salist_len;
|
||||
|
||||
extern long conf_vendor_id;
|
||||
extern char * conf_hardware_version;
|
||||
extern int conf_hardware_version_len;
|
||||
extern char * conf_software_version;
|
||||
extern int conf_software_version_len;
|
||||
|
||||
extern bstr_t conf_hardware_version;
|
||||
extern bstr_t conf_software_version;
|
||||
extern bstr_t conf_cisco_hardware_version;
|
||||
extern bstr_t conf_cisco_software_version;
|
||||
|
||||
|
||||
|
||||
|
@ -402,6 +402,7 @@ printf("HW: %s\n",sock_hwaddr2str(bstr_data(cwrmsg->rmac),bstr_len(cwrmsg->rmac)
|
||||
|
||||
cwsend_discovery_response(wtpman->conn,cwrmsg->seqnum,&radioinfo,acinfo,&wtpman->wtpinfo);
|
||||
|
||||
|
||||
wtpman_remove(wtpman);
|
||||
}
|
||||
|
||||
@ -553,10 +554,9 @@ static int wtpman_join(void *arg,time_t timer)
|
||||
|
||||
struct radioinfo radioinfo;
|
||||
radioinfo.rid = cwrmsg->rid;
|
||||
memcpy (radioinfo.rmac, cwrmsg->rmac,8);
|
||||
// memcpy (radioinfo.rmac, cwrmsg->rmac,8);
|
||||
struct ac_info * acinfo = get_acinfo();
|
||||
|
||||
sleep(10);
|
||||
|
||||
int result_code = 0;
|
||||
cw_dbg(DBG_CW_MSG,"Sending join response to %s",CLIENT_IP);
|
||||
@ -600,9 +600,26 @@ static void wtpman_run(void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* here the WTP has joined, now image update or change state event */
|
||||
|
||||
int msgs[] = { CWMSG_IMAGE_DATA_REQUEST, CWMSG_CHANGE_STATE_EVENT_REQUEST, -1 };
|
||||
int msgs[] = { CWMSG_IMAGE_DATA_REQUEST, CWMSG_CONFIGURATION_STATUS_REQUEST, -1 };
|
||||
cwrmsg = conn_wait_for_request(wtpman->conn, msgs, timer);
|
||||
|
||||
if (!cwrmsg){
|
||||
cw_dbg(DBG_CW_MSG_ERR,"No config uration status request from %s after %d seconds, WTP died.",
|
||||
sock_addr2str(&wtpman->conn->addr),wtpman->conn->wait_join);
|
||||
wtpman_remove(wtpman);
|
||||
return;
|
||||
}
|
||||
|
||||
cwread_configuration_status_request(&wtpman->wtpinfo,cwrmsg->msgelems, cwrmsg->msgelems_len);
|
||||
// cwsend_conf_status_response(wtpman->conn,cwrmsg->seqnum,result_code,&radioinfo,acinfo,&wtpman->wtpinfo);
|
||||
|
||||
|
||||
exit(0);
|
||||
|
||||
// msgs = { CWMSG_IMAGE_DATA_REQUEST, CWMSG_CHANGE_STATE_EVENT_REQUEST, -1 };
|
||||
cwrmsg = conn_wait_for_request(wtpman->conn, msgs, timer);
|
||||
|
||||
if (!cwrmsg){
|
||||
@ -610,7 +627,10 @@ static void wtpman_run(void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
exit(0);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
switch (cwrmsg->type){
|
||||
case CWMSG_CHANGE_STATE_EVENT_REQUEST:
|
||||
@ -635,7 +655,6 @@ exit(0);
|
||||
|
||||
|
||||
printf("WTP is joined now\n");
|
||||
exit(0);
|
||||
|
||||
int result_code = 0;
|
||||
struct radioinfo * radioinfo;
|
||||
|
Reference in New Issue
Block a user