#include #include "ac.h" #include "conf.h" #include "cw/capwap.h" #include "cw/capwap_items.h" #include "cw/aciplist.h" #include "socklist.h" #include "cw/sock.h" struct cw_ac_status ac_status; struct cw_actiondef capwap_actions; mbag_t ac_config; cw_aciplist_t get_aciplist() { int i=0; cw_aciplist_t aciplist = cw_aciplist_create(); if(!aciplist) return 0; for (i=0; iip,(struct sockaddr*)&sa); acip->wtp_count=13; // printf ("Adding IP %s\n",sock_addr2str(&acip->ip)); cw_aciplist_add(aciplist,acip); } return aciplist; } void * get_iplist(void * arg) { return get_aciplist(); } void release_iplist(void *arg,void *data) { } int ac_global_init() { ac_config = mbag_create(); mbag_set_str(ac_config, CW_ITEM_AC_NAME, conf_acname); mbag_set_ptr(ac_config, CW_ITEM_AC_STATUS, &ac_status); ac_status.stations = 0; ac_status.limit = 1000; ac_status.active_wtps = 10; ac_status.max_wtps = 200; ac_status.security = CW_FLAG_AC_SECURITY_X | CW_FLAG_AC_SECURITY_S; ac_status.rmac_field = CW_FLAG_RMAC_SUPPORTED; ac_status.dtls_policy = CW_FLAG_DTLS_POLICY_C | CW_FLAG_DTLS_POLICY_D; mbag_set_vendorstr(ac_config, CW_ITEM_AC_HARDWARE_VERSION, 0, bstr_data(conf_hardware_version), bstr_len(conf_hardware_version)); mbag_set_vendorstr(ac_config, CW_ITEM_AC_SOFTWARE_VERSION, 0, bstr_data(conf_software_version), bstr_len(conf_software_version)); mbag_set_str(ac_config,CW_ITEM_AC_IMAGE_DIR,conf_image_dir); // mbag_set_avltree(ac_config, CW_ITEM_AC_IP_LIST, aciplist); mbag_set_fun(ac_config, CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST, get_iplist,release_iplist,(void*)771); return 1; }