Inital commit.
FossilOrigin-Name: 35c8486cd95aecfeb07c780a5efa41c8eec7638a2e78eb4ed2383620edc52d68
This commit is contained in:
		
							
								
								
									
										107
									
								
								src/ac/ac_global.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								src/ac/ac_global.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,107 @@
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "ac.h"
 | 
			
		||||
#include "conf.h"
 | 
			
		||||
#include "capwap.h"
 | 
			
		||||
#include "capwap_items.h"
 | 
			
		||||
#include "aciplist.h"
 | 
			
		||||
#include "socklist.h"
 | 
			
		||||
#include "sock.h"
 | 
			
		||||
 | 
			
		||||
struct cw_ac_status ac_status;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct cw_actiondef capwap_actions;
 | 
			
		||||
 | 
			
		||||
cw_itemstore_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; i<socklist_len;i++){
 | 
			
		||||
 | 
			
		||||
		if (socklist[i].type != SOCKLIST_UNICAST_SOCKET)
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		struct sockaddr_storage sa;
 | 
			
		||||
		unsigned int salen=sizeof(sa);
 | 
			
		||||
		if ( getsockname(socklist[i].sockfd,(struct sockaddr*)&sa,&salen)<0)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		cw_acip_t * acip;
 | 
			
		||||
		acip = malloc(sizeof(cw_acip_t));
 | 
			
		||||
		if (!acip)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		sock_copyaddr(&acip->ip,(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)
 | 
			
		||||
{
 | 
			
		||||
	printf("************************************************************************************\n");
 | 
			
		||||
	printf("The ist an iplist getter\n");
 | 
			
		||||
	return get_aciplist();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void release_iplist(void *arg,void *data)
 | 
			
		||||
{
 | 
			
		||||
	printf("And an releaser\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ac_global_init()
 | 
			
		||||
{
 | 
			
		||||
	ac_config = cw_itemstore_create();
 | 
			
		||||
	cw_itemstore_set_str(ac_config, CW_ITEM_AC_NAME, conf_acname);
 | 
			
		||||
	cw_itemstore_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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	cw_itemstore_set_version(ac_config, CW_ITEM_AC_HARDWARE_VERSION, 0,
 | 
			
		||||
				 bstr_data(conf_hardware_version), bstr_len(conf_hardware_version));
 | 
			
		||||
	cw_itemstore_set_version(ac_config, CW_ITEM_AC_SOFTWARE_VERSION, 0,
 | 
			
		||||
				 bstr_data(conf_software_version), bstr_len(conf_software_version));
 | 
			
		||||
 | 
			
		||||
//	cw_itemstore_set_avltree(ac_config, CW_ITEM_AC_IP_LIST, aciplist);
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	cw_itemstore_set_fun(ac_config, CW_ITEM_CAPWAP_CONTROL_IP_LIST, get_iplist,release_iplist,(void*)771);
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user