diff --git a/src/capwap/cwmsg_addelem_ctrl_ip_addrs.c b/src/capwap/cwmsg_addelem_ctrl_ip_addrs.c deleted file mode 100644 index ae7e506c..00000000 --- a/src/capwap/cwmsg_addelem_ctrl_ip_addrs.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - This file is part of libcapwap. - - libcapwap is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - libcapwap is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Foobar. If not, see . - -*/ -#include -#include - -#include "capwap.h" -#include "acinfo.h" -#include "cw_log.h" - - -#include "sock.h" - -//static int cwmsg_addelem_acip(struct cwmsg * msg,ACIP *ip,int ctr) -static int cwmsg_addelem_acip(void *priv, void *data) //,int ctr) -{ -// cw_log_debug2("Adding Ctrl IP %s",sock_addr2str((struct sockaddr*)data)); - - struct cwmsg *msg = (struct cwmsg *) priv; - ACIP *acip = (ACIP *) data; - - uint8_t ipmsg[18]; - - switch (acip->ip.ss_family) { - case AF_INET: - { - struct sockaddr_in *sain = (struct sockaddr_in *) &acip->ip; - memcpy(ipmsg, &sain->sin_addr.s_addr, sizeof(sain->sin_addr.s_addr)); - *((uint16_t *) (ipmsg + 4)) = htons(acip->wtp_count); /* number of wtps */ - cwmsg_addelem(msg, CW_ELEM_CONTROL_IPV4_ADDRESS, ipmsg, 6); - } - break; -#ifdef WITH_IPV6 - case AF_INET6: - { - struct sockaddr_in6 *sain = (struct sockaddr_in6 *) &acip->ip; - memcpy(ipmsg, &sain->sin6_addr.s6_addr, sizeof(sain->sin6_addr.s6_addr)); - *((uint16_t *) (ipmsg + 16)) = htons(acip->wtp_count); /* number of wtps */ - cwmsg_addelem(msg, CW_ELEM_CONTROL_IPV6_ADDRESS, ipmsg, 18); - } - break; -#endif - } - return 1; -} - - -void cwmsg_addelem_ctrl_ip_addrs(struct cwmsg *msg, struct ac_info *acinfo) -{ -// printf("Counter in the list: %i\n",acinfo->aciplist->count); - aciplist_foreach(acinfo->aciplist, cwmsg_addelem_acip, msg); -} - - -/* - -void ucwmsg_addelem_ctrl_ip_addrs(struct cwmsg *msg, struct ac_info *acinfo) -{ - int i; - - - for (i=0; isalist_len; i++) - { - uint8_t ipmsg [18]; - switch (acinfo->salist[i].sa_family){ - case AF_INET: - { - struct sockaddr_in * sain = (struct sockaddr_in*)&acinfo->salist[i]; - memcpy(ipmsg,&sain->sin_addr, sizeof(sain->sin_addr)); - *((uint16_t*)(ipmsg+4))= htons(0); // number of wtps - cwmsg_addelem(msg,CWMSGELEM_CONTROL_IPV4_ADDRESS,ipmsg,6); - } - break; -#ifdef WITH_IPV6 - case AF_INET6: - { - struct sockaddr_in6 * sain = (struct sockaddr_in6*)&acinfo->salist[i]; - memcpy(ipmsg,&sain->sin6_addr, sizeof(sain->sin6_addr)); - *((uint16_t*)(ipmsg+16))= htons(0); // number of wtps - cwmsg_addelem(msg,CWMSGELEM_CONTROL_IPV6_ADDRESS,ipmsg,18); - } - break; -#endif - } - } -} - -*/ diff --git a/src/capwap/process_join_request.c b/src/capwap/process_join_request.c deleted file mode 100644 index 9a44dada..00000000 --- a/src/capwap/process_join_request.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - This file is part of libcapwap. - - libcapwap is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - libcapwap is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Foobar. If not, see . - -*/ - -#include "capwap.h" -#include "capwap_80211.h" - -#include -#include -#include - -#include "wtpinfo.h" - -#include "cw_util.h" -#include "cw_log.h" - -struct eparm { - int *mand; - struct wtpinfo *wtpinfo; -}; - - -static int process_elem(void *eparm,int type,uint8_t* msgelem,int len) -{ - - struct eparm *e = (struct eparm *) eparm; - - struct wtpinfo * wtpinfo = e->wtpinfo; - - - cw_dbg_msgelem(CW_MSG_JOIN_REQUEST, type, msgelem, len); - - - /* mandatory elements */ - if (wtpinfo_readelem_location_data(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_wtp_board_data(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_wtp_descriptor(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_wtp_name(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_session_id(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_wtp_frame_tunnel_mode(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_wtp_mac_type(wtpinfo,type,msgelem,len)) - goto foundX; - - if (wtpinfo_readelem_ecn_support(wtpinfo,type,msgelem,len)) - goto foundX; - - if (cw_readelem_capwap_local_ip_addr((struct sockaddr*)&wtpinfo->local_ip,type,msgelem,len)){ - cw_mand_elem_found(e->mand, XCWMSGELEM_CAPWAP_LOCAL_IP_ADDRESS); - return 1; - } - - /* understood capwap bindings */ - if (wtpinfo_readelem_wtp_radio_info(wtpinfo,type,msgelem,len)){ - cw_mand_elem_found(e->mand, XCWMSGELEM_CAPWAP_RADIO_INFO); - return 1; - } - - /* non-mandatory messages */ - - uint16_t ml; - if (cw_readelem_maximum_message_length(&ml,type,msgelem,len)){ - return 1; - } - - if (cw_readelem_wtp_reboot_statistics(&e->wtpinfo->reboot_statistics,type,msgelem,len)) - goto foundX; - - return 0; - - foundX: - cw_mand_elem_found(e->mand, type); - return 1; -} - - -void process_join_request(struct wtpinfo * wtpinfo, uint8_t * msg, int len) -{ - int mand[] = { - CWMSGELEM_LOCATION_DATA, - CW_ELEM_WTP_BOARD_DATA, - CW_ELEM_WTP_DESCRIPTOR, - CW_ELEM_WTP_NAME, - CW_ELEM_WTP_FRAME_TUNNEL_MODE, - CW_ELEM_WTP_MAC_TYPE, - CWMSGELEM_ECN_SUPPORT, - XCWMSGELEM_CAPWAP_LOCAL_IP_ADDRESS, - XCWMSGELEM_CAPWAP_RADIO_INFO, - -1 - }; - - - struct eparm eparm; - eparm.wtpinfo = wtpinfo; - eparm.mand = mand; - - cw_foreach_msgelem(msg, len, process_elem, - &eparm); - - cw_dbg_missing_mand_elems_(0, CW_MSG_JOIN_REQUEST, eparm.mand); - -} -