changes for actubent - not compiling!

FossilOrigin-Name: adf99bdc2ee784a4acf4066b90c33fb1e6124e8c49c255d3fd5011bb33852d52
This commit is contained in:
7u83@mail.ru 2018-03-03 16:42:28 +00:00
parent ca22c44590
commit d2d1be3346
136 changed files with 585 additions and 403 deletions

View File

@ -4,8 +4,8 @@
<Project Name="wtp" Path="wtp.project" Active="No"/>
<Project Name="mod_cipwap" Path="mod_cipwap.project" Active="No"/>
<Project Name="mod_capwap" Path="mod_capwap.project" Active="No"/>
<Project Name="mod_cisco" Path="mod_cisco.project" Active="No"/>
<Project Name="libcw" Path="libcw.project" Active="Yes"/>
<Project Name="mod_cisco" Path="mod_cisco.project" Active="Yes"/>
<Project Name="libcw" Path="libcw.project" Active="No"/>
<Project Name="mod_capwap80211" Path="mod_capwap80211.project" Active="No"/>
<Project Name="mod_fortinet" Path="mod_fortinet.project" Active="No"/>
<BuildMatrix>

View File

@ -314,6 +314,11 @@
<File Name="src/cw/cw_type_word.c"/>
<File Name="src/cw/cw_types.h"/>
<File Name="src/cw/cw_type_dword.c"/>
<File Name="src/cw/mavl_cmp_dword.c"/>
<File Name="src/cw/mavl_free_bin.c"/>
<File Name="src/cw/debug.h"/>
<File Name="src/cw/debug.c"/>
<File Name="src/cw/mavl_get_ptr.c"/>
</VirtualDirectory>
</VirtualDirectory>
<Description/>

View File

@ -98,7 +98,32 @@ extern void test_sets();
int main(int argc, char *argv[])
{
/* char data[100];
mavl_t im;
mavldata_t val,itt;
mavliter_t myit;
im = mavl_create(mavl_cmp_dword,NULL);
for (itt.dword=100; itt.dword>0; itt.dword--){
printf("Copunting: %d\n",itt.dword);
mavl_add(im,&itt);
}
mavliter_init(&myit,im);
mavliter_foreach(&myit){
union mavldata * result;
result = mavliter_get(&myit);
printf("Got Value %d\n",result->dword);
}
mavl_destroy(im);
*/
int rc = 0;
/* parse arguments */

View File

@ -1,6 +1,7 @@
#include <sqlite3.h>
#include "cw/mbag.h"
#include "cw/log.h"
#include "cw/dbg.h"
#include "cw/capwap_items.h"

View File

@ -428,9 +428,9 @@ void radios_to_sql(struct conn *conn)
MAVLITER_DEFINE(it, conn->radios);
mavliter_foreach(&it) {
struct mbag_item * i = mavliter_get(&it);
int rid = i->iid;
int rid = i->u1.iid;
radio_to_sql(conn,wtp_id,rid,i->data);
radio_to_sql(conn,wtp_id,rid,i->u2.data);
}

View File

@ -21,7 +21,7 @@
* @brief Implementation of methods for actionlists.
*/
#include "mbag.h"
#include <stdlib.h>
#include <string.h>

View File

@ -29,7 +29,7 @@
#include "mavl.h"
#include "conn.h"
#include "mbag.h"
/*#include "mbag.h"*/
#include "strheap.h"
#include "intavltree.h"
#include "item.h"

View File

@ -27,7 +27,7 @@
#include <stdint.h>
#include "mbag.h"
#include <errno.h>
#include <arpa/inet.h>

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "item.h"
#include "capwap80211_items.h"
#include "capwap80211_types.h"

View File

@ -11,7 +11,7 @@ static int to_str(void *item,char *dst)
{
mbag_item_t *it= item;
uint8_t *data = (uint8_t*)it->data;
uint8_t *data = (uint8_t*)it->u2.data;
int n=*data;
data++;
@ -83,7 +83,7 @@ static struct mbag_item * from_str(const char *src)
*data=nrates;
memcpy(data+1,rates,nrates);
item->data=data;
item->u2.data=data;
return item;
@ -103,14 +103,14 @@ static struct mbag_item * get(const uint8_t *src,int len)
}
*data=len;
memcpy(data+1,src,len);
item->data=data;
item->u2.data=data;
return item;
}
static int put(struct mbag_item *i,uint8_t *dst)
{
int l=*((uint8_t*)(i->data));
memcpy(dst,i->data+1,l);
int l=*((uint8_t*)(i->u2.data));
memcpy(dst,i->u2.data+1,l);
return l;
}

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "action.h"
#include "capwap.h"

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "item.h"
#include "capwap_items.h"

View File

@ -16,6 +16,7 @@
*/
#include "mbag.h"
#include "capwap.h"
struct capwap_msg * capwap_msg_new()

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"
struct cw_strlist_elem capwap_strings_board[] = {

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"
struct cw_strlist_elem capwap_strings_elem[] = {

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap80211.h"
#include "strlist.h"

View File

@ -19,7 +19,7 @@
* @file
* @brief Definition of CAPWAP Message Strings
*/
#include "mbag.h"
#include "capwap.h"
/**

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"
struct cw_strlist_elem capwap_strings_state[] = {

View File

@ -1,3 +1,4 @@
#include "mbag.h"
#include "capwap.h"
#include "vendors.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "capwap.h"
#include "cipwap.h"
#include "capwap_cisco.h"

View File

@ -95,8 +95,8 @@ int cw_out_cisco_wtp_radio_cfg(struct conn *conn, struct cw_action_out *a, uint8
continue;
}
// l+=cw_put_elem_radio_info(dst+l,i->id,i->data);
l+=cw_put_elem_cisco_radio_cfg(dst+l,i->iid,i->data);
l+=cw_put_elem_cisco_ap_regulatory_domain(dst+l,i->iid,i->data);
l+=cw_put_elem_cisco_radio_cfg(dst+l,i->u1.iid,i->u2.data);
l+=cw_put_elem_cisco_ap_regulatory_domain(dst+l,i->u1.iid,i->u2.data);
}
return l;
@ -147,7 +147,7 @@ int cw_radio_cisco_set_state(struct conn * conn, uint8_t *data, int len, int cau
MAVLITER_DEFINE(it,conn->radios);
mavliter_foreach(&it){
mbag_item_t *i = mavliter_get(&it);
cw_radio_set_admin_state(conn->radios,i->iid,state,cause);
cw_radio_set_admin_state(conn->radios,i->u1.iid,state,cause);
}
return 1;

View File

@ -32,12 +32,13 @@
#include "fragman.h"
#include "cwmsg.h"
#include "action.h"
/*#include "action.h"*/
/*#include "mbag.h"*/
#include "mbag.h"
#include "intavltree.h"
#include "mbag.h"
#include "mod.h"

View File

@ -1,4 +1,6 @@
#include "capwap.h"
#include "conn.h"
#include "mavl.h"
@ -13,9 +15,9 @@ void conn_clear_upd(struct conn *conn, int merge)
mavliter_foreach(&it){
struct mbag_item * ruitem = mavliter_get(&it);
mavl_t radio_upd = ruitem->data;
mavl_t radio_upd = ruitem->u2.data;
mbag_t radio = mbag_i_get_mbag(conn->radios,ruitem->iid,NULL);
mbag_t radio = mbag_i_get_mbag(conn->radios,ruitem->u1.iid,NULL);
if (radio){
mavl_merge(radio,radio_upd);
}

View File

@ -26,9 +26,10 @@
#include <errno.h>
#include "log.h"
#include "capwap.h"
#include "conn.h"
#include "sock.h"
#include "capwap.h"
/**

View File

@ -25,6 +25,7 @@
#include <string.h>
#include <errno.h>
#include "mbag.h"
#include "conn.h"
#include "sock.h"

View File

@ -21,6 +21,7 @@
*/
#include <stdlib.h>
#include "mbag.h"
#include "conn.h"
/**

View File

@ -24,6 +24,7 @@
#include <string.h>
#include "mbag.h"
#include "conn.h"
#include "capwap.h"

View File

@ -16,6 +16,7 @@
*/
#include "mbag.h"
#include "capwap.h"
#include "lwapp.h"

View File

@ -19,6 +19,7 @@
#include <stdlib.h>
#include <string.h>
#include "mbag.h"
#include "dbg.h"
#include "conn.h"
#include "sock.h"

View File

@ -15,7 +15,7 @@
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
*/
#include "mbag.h"
#include <time.h>
#include "conn.h"

View File

@ -19,7 +19,7 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "mbag.h"
#include "conn.h"
static int conn_q_recv_packet_(struct conn * conn, uint8_t * buffer,int len,int peek)

View File

@ -22,6 +22,7 @@
#include <errno.h>
#include <string.h>
#include "mbag.h"
#include "conn.h"
#include "sock.h"

View File

@ -19,6 +19,8 @@
#include <errno.h>
#include <sys/socket.h>
#include "sock.h"
#include "capwap.h"
#include "conn.h"
#include <netinet/in.h>

View File

@ -16,6 +16,7 @@
*/
#include "mbag.h"
#include <errno.h>
#include <sys/socket.h>
#include "sock.h"

View File

@ -28,6 +28,7 @@
#include <stdio.h>
#include "mbag.h"
#include "conn.h"
#include "connlist.h"

View File

@ -23,6 +23,7 @@
#include <string.h>
#include "mbag.h"
#include "capwap.h"
#include "cwmsg.h"
#include "conn.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -29,6 +29,7 @@
#include <errno.h>
#include "mbag.h"
#include "action.h"
#include "log.h"
#include "mbag.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "capwap.h"
#include "intavltree.h"
#include "dbg.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "capwap.h"
#include "capwap_items.h"
#include "cw.h"

View File

@ -28,7 +28,7 @@ int cw_detect_capwap(struct conn *conn)
mbag_item_t * item = mbag_get(is,CW_ITEM_WTP_SOFTWARE_VERSION);
if (item) {
bstrv_t s = item->data;
bstrv_t s = item->u2.data;
uint32_t v = bstrv_get_vendor_id(s);
switch(v) {

View File

@ -1,5 +1,6 @@
#include <errno.h>
#include "mbag.h"
#include "capwap.h"
#include "capwap_items.h"
#include "intavltree.h"

View File

@ -17,8 +17,8 @@ int cw_in_check_generic_resp(struct conn *conn, struct cw_action_in *a, uint8_t
mbag_item_t * result = mbag_get(conn->incomming,CW_ITEM_RESULT_CODE);
if (result ) {
if (!cw_rcok(result->dword)){
return result->dword;
if (!cw_rcok(result->u2.dword)){
return result->u2.dword;
}
}
@ -37,7 +37,7 @@ int cw_in_check_generic_resp(struct conn *conn, struct cw_action_in *a, uint8_t
/* if we hava a result code, return it */
if ( result ) {
return result->dword;
return result->u2.dword;
}
return 0;

View File

@ -1,6 +1,7 @@
#include <stdio.h>
#include <errno.h>
#include "mbag.h"
#include "capwap.h"
#include "dbg.h"
#include "log.h"
@ -22,16 +23,16 @@ int cw_in_check_img_data_req_ac(struct conn *conn, struct cw_action_in *a, uint8
struct mbag_item *i = mbag_get(conn->incomming,CW_ITEM_IMAGE_IDENTIFIER);
if (i) {
uint32_t vendor_id = bstrv_get_vendor_id(i->data);
uint32_t vendor_id = bstrv_get_vendor_id(i->u2.data);
const char * image_dir;
image_dir = mbag_get_str(conn->local,CW_ITEM_AC_IMAGE_DIR,"./img");
char * image_filename = malloc(6+bstrv_len(i->data)+1+strlen(image_dir));
char * image_filename = malloc(6+bstrv_len(i->u2.data)+1+strlen(image_dir));
if (!image_filename)
return CAPWAP_RESULT_IMAGE_DATA_ERROR;
sprintf(image_filename,"%s%04X/%s",image_dir,vendor_id,bstrv_data(i->data));
sprintf(image_filename,"%s%04X/%s",image_dir,vendor_id,bstrv_data(i->u2.data));
FILE *infile = fopen(image_filename,"rb");

View File

@ -33,16 +33,16 @@ int cw_in_check_img_data_req_wtp(struct conn *conn, struct cw_action_in *a, uint
struct mbag_item *i = mbag_get(conn->incomming,CW_ITEM_IMAGE_IDENTIFIER);
if (i) {
uint32_t vendor_id = bstrv_get_vendor_id(i->data);
uint32_t vendor_id = bstrv_get_vendor_id(i->u2.data);
const char * image_dir;
image_dir = mbag_get_str(conn->local,CW_ITEM_AC_IMAGE_DIR,"./img");
char * image_filename = malloc(6+bstrv_len(i->data)+1+strlen(image_dir));
char * image_filename = malloc(6+bstrv_len(i->u2.data)+1+strlen(image_dir));
if (!image_filename)
return CAPWAP_RESULT_IMAGE_DATA_ERROR;
sprintf(image_filename,"%s%04X/%s",image_dir,vendor_id,bstrv_data(i->data));
sprintf(image_filename,"%s%04X/%s",image_dir,vendor_id,bstrv_data(i->u2.data));
FILE *infile = fopen(image_filename,"rb");

View File

@ -1,6 +1,7 @@
#include <stdio.h>
#include <errno.h>
#include "mbag.h"
#include "capwap.h"
#include "dbg.h"
#include "log.h"
@ -26,7 +27,7 @@ int cw_in_check_img_data_resp(struct conn *conn, struct cw_action_in *a, uint8_t
mbag_item_t * iresult = mbag_get(conn->incomming, CW_ITEM_RESULT_CODE);
if ( iresult ) {
return iresult->dword;
return iresult->u2.dword;
}
return 0;

View File

@ -15,8 +15,8 @@ int cw_in_check_join_resp(struct conn *conn, struct cw_action_in *a, uint8_t * d
mbag_item_t * jresult = mbag_get(conn->incomming,CW_ITEM_RESULT_CODE);
if (jresult ) {
if (!cw_rcok(jresult->dword)){
return jresult->dword;
if (!cw_rcok(jresult->u2.dword)){
return jresult->u2.dword;
}
}
@ -37,7 +37,7 @@ int cw_in_check_join_resp(struct conn *conn, struct cw_action_in *a, uint8_t * d
if ( jresult ) {
return jresult->dword;
return jresult->u2.dword;
}
/* set result code to ok and change to configure state */

View File

@ -1,4 +1,4 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "mbag.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -1,4 +1,4 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -1,4 +1,5 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -1,4 +1,4 @@
#include "mbag.h"
#include "action.h"
#include "dbg.h"
#include "log.h"

View File

@ -27,7 +27,7 @@ int cw_out_80211_supported_rates(struct conn *conn, struct cw_action_out *a, uin
if ( i->type != MBAG_MBAG ) {
continue;
}
l+=cw_put_elem_80211_supported_rates(dst+l,i->iid,i->data);
l+=cw_put_elem_80211_supported_rates(dst+l,i->u1.iid,i->u2.data);
}
return l;
}

View File

@ -25,7 +25,7 @@ int cw_out_image_data(struct conn *conn, struct cw_action_out *a, uint8_t * dst)
return 0;
}
FILE *infile = item->data;
FILE *infile = item->u2.data;
if (infile==NULL){
cw_log(LOG_ERR,"Image Data Request infile = NULL");
return 0;

View File

@ -15,7 +15,7 @@ int cw_out_radio_administrative_states(struct conn *conn, struct cw_action_out *
if ( i->type != MBAG_MBAG ) {
continue;
}
l+=cw_put_elem_radio_administrative_state(dst+l,i->iid,i->data);
l+=cw_put_elem_radio_administrative_state(dst+l,i->u1.iid,i->u2.data);
}
return l;

View File

@ -1,6 +1,6 @@
#include "mbag.h"
#include "action.h"
#include "cw.h"
#include "cw/dbg.h"
@ -26,15 +26,15 @@ cw_dbg(DBG_X,"Radio Generic out %s",a->item_id);
struct mbag_item * item = mbag_get(radio->data,a->item_id);
struct mbag_item * item = mbag_get(radio->u2.data,a->item_id);
if (!item){
cw_dbg(DBG_X,"Not found! %s for rid %d",a->item_id,radio->iid);
cw_dbg(DBG_X,"Not found! %s for rid %d",a->item_id,radio->u1.iid);
continue;
}
int len=0;
len += cw_put_byte(d+start,radio->iid);
len += cw_put_byte(d+start,radio->u1.iid);
cw_dbg(DBG_X, "Radio generic out '%s' fro rid %d",a->item_id,radio->iid);
cw_dbg(DBG_X, "Radio generic out '%s' fro rid %d",a->item_id,radio->u1.iid);
len += cw_put_mbag_item(d + start+1, item);
if (a->vendor_id)

View File

@ -32,7 +32,7 @@ int cw_out_radio_infos(struct conn *conn, struct cw_action_out *a, uint8_t * dst
if ( i->type != MBAG_MBAG ) {
continue;
}
l+=cw_put_elem_radio_info(dst+l,i->iid,i->data);
l+=cw_put_elem_radio_info(dst+l,i->u1.iid,i->u2.data);
}
return l;

View File

@ -1,4 +1,5 @@
#include "log.h"
#include "mbag.h"
#include "conn.h"
#include "mbag.h"
@ -51,7 +52,7 @@ int cw_out_wtp_board_data(struct conn *conn, struct cw_action_out *a, uint8_t *
}
uint8_t *d = dst + 4;
d += cw_put_dword(d, i->dword);
d += cw_put_dword(d, i->u2.dword);
char buf[90];
@ -59,14 +60,14 @@ char buf[90];
if (i) {
printf("We have got an i %p\n",i);
printf("len: %d\n",bstr16_len(i->data));
memcpy(buf,bstr16_data(i->data),bstr16_len(i->data));
buf[bstr16_len(i->data)]=0;
printf("len: %d\n",bstr16_len(i->u2.data));
memcpy(buf,bstr16_data(i->u2.data),bstr16_len(i->u2.data));
buf[bstr16_len(i->u2.data)]=0;
printf("Val: %s\n",buf);
d += cw_put_word(d, CW_BOARDDATA_MODELNO);
d += cw_put_word(d, bstr16_len(i->data));
d += cw_put_data(d, bstr16_data(i->data), bstr16_len(i->data));
d += cw_put_word(d, bstr16_len(i->u2.data));
d += cw_put_data(d, bstr16_data(i->u2.data), bstr16_len(i->u2.data));
} else {
cw_log(LOG_ERR,
"Error: Can't set sub-element \"WTP Model Number\" in WTP Board Data.");
@ -75,8 +76,8 @@ printf("Val: %s\n",buf);
i = mbag_get(board_data, CW_ITEM_WTP_BOARD_SERIALNO);
if (i) {
d += cw_put_word(d, CW_BOARDDATA_SERIALNO);
d += cw_put_word(d, bstr16_len(i->data));
d += cw_put_data(d, bstr16_data(i->data), bstr16_len(i->data));
d += cw_put_word(d, bstr16_len(i->u2.data));
d += cw_put_data(d, bstr16_data(i->u2.data), bstr16_len(i->u2.data));
}else {
cw_log(LOG_ERR,
"Error: Can't set sub-element \"WTP Serial Number\" in WTP Board Data.");
@ -86,22 +87,22 @@ printf("Val: %s\n",buf);
i = mbag_get(board_data, CW_ITEM_WTP_BOARD_ID);
if (i) {
d += cw_put_word(d, CW_BOARDDATA_BOARDID);
d += cw_put_word(d, bstr16_len(i->data));
d += cw_put_data(d, bstr16_data(i->data), bstr16_len(i->data));
d += cw_put_word(d, bstr16_len(i->u2.data));
d += cw_put_data(d, bstr16_data(i->u2.data), bstr16_len(i->u2.data));
}
i = mbag_get(board_data, CW_ITEM_WTP_BOARD_REVISION);
if (i) {
d += cw_put_word(d, CW_BOARDDATA_REVISION);
d += cw_put_word(d, bstr16_len(i->data));
d += cw_put_data(d, bstr16_data(i->data), bstr16_len(i->data));
d += cw_put_word(d, bstr16_len(i->u2.data));
d += cw_put_data(d, bstr16_data(i->u2.data), bstr16_len(i->u2.data));
}
i = mbag_get(board_data, CW_ITEM_WTP_BOARD_MACADDRESS);
if (i) {
d += cw_put_word(d, CW_BOARDDATA_MACADDRESS);
d += cw_put_word(d, bstr_len(i->data));
d += cw_put_data(d, bstr_data(i->data), bstr_len(i->data));
d += cw_put_word(d, bstr_len(i->u2.data));
d += cw_put_data(d, bstr_data(i->u2.data), bstr_len(i->u2.data));
}
int l = d - dst-4;

View File

@ -1,6 +1,7 @@
#include "log.h"
#include "capwap.h"
#include "conn.h"
#include "capwap.h"
//#include "itemstore.h"
#include "capwap_items.h"
#include "capwap.h"
@ -47,7 +48,7 @@ int cw_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t *
mbag_item_t * i;
i = mbag_get(mbag,CW_ITEM_WTP_HARDWARE_VERSION);
if ( i ) {
d += cw_put_version(d,CW_SUBELEM_WTP_HARDWARE_VERSION,i->data);
d += cw_put_version(d,CW_SUBELEM_WTP_HARDWARE_VERSION,i->u2.data);
}
else {
cw_log(LOG_ERR, "Can't send Hardware Version in WTP Descriptor, not set.");
@ -55,7 +56,7 @@ int cw_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t *
i = mbag_get(mbag,CW_ITEM_WTP_SOFTWARE_VERSION);
if ( i ) {
d += cw_put_version(d,CW_SUBELEM_WTP_SOFTWARE_VERSION,i->data);
d += cw_put_version(d,CW_SUBELEM_WTP_SOFTWARE_VERSION,i->u2.data);
}
else {
cw_log(LOG_ERR, "Can't send Software Version in WTP descriptor, not set.");
@ -63,7 +64,7 @@ int cw_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t *
i = mbag_get(mbag,CW_ITEM_WTP_BOOT_VERSION);
if ( i ) {
d += cw_put_version(d,CW_SUBELEM_WTP_BOOTLOADER_VERSION,i->data);
d += cw_put_version(d,CW_SUBELEM_WTP_BOOTLOADER_VERSION,i->u2.data);
}
else {
cw_log(LOG_INFO, "Can't send Boot Version in WTP descriptor, not set.");
@ -71,7 +72,7 @@ int cw_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t *
i = mbag_get(mbag,CW_ITEM_WTP_OTHER_VERSION);
if ( i ) {
d += cw_put_version(d,CW_SUBELEM_WTP_OTHERSOFTWARE_VERSION,i->data);
d += cw_put_version(d,CW_SUBELEM_WTP_OTHERSOFTWARE_VERSION,i->u2.data);
}
else {
cw_log(LOG_INFO, "Can't send Other Version in WTP descriptor, not set.");

View File

@ -18,6 +18,7 @@
#include "log.h"
#include "mbag.h"
#include "capwap_items.h"
#include "action.h"
@ -46,7 +47,7 @@ int cw_out_wtp_reboot_statistics(struct conn *conn, struct cw_action_out *a,
return 0;
}
mbag_t rs = (mbag_t) i->data;
mbag_t rs = (mbag_t) i->u2.data;
uint8_t *d = dst + 4;
d += cw_put_word(d, mbag_get_word(rs, CW_ITEM_REBOOT_COUNT, 0));

View File

@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include "mbag.h"
#include "log.h"
#include "dbg.h"
#include "cw.h"

View File

@ -33,40 +33,40 @@ int cw_put_mbag_item(uint8_t * dst, struct mbag_item *item)
if (MBAG_STR == item->type ){
return cw_put_data(dst, item->data, strlen((char *) item->data));
return cw_put_data(dst, item->u2.data, strlen((char *) item->u2.data));
}
if (MBAG_DATA == item->type){
return cw_put_data(dst, item->data+1, *((uint8_t*)item->data));
return cw_put_data(dst, item->u2.data+1, *((uint8_t*)item->u2.data));
}
if (MBAG_BYTE == item->type){
return cw_put_byte(dst, item->byte);
return cw_put_byte(dst, item->u2.byte);
}
if (MBAG_WORD == item->type){
return cw_put_word(dst, item->word);
return cw_put_word(dst, item->u2.word);
}
if (MTYPE_DWORD == item->type){
return cw_put_dword(dst, item->dword);
return cw_put_dword(dst, item->u2.dword);
}
if (MBAG_BSTR == item->type) {
return cw_put_bstr(dst, item->data);
return cw_put_bstr(dst, item->u2.data);
}
if ( MBAG_BSTR16 == item->type)
return cw_put_bstr16(dst,item->data);
return cw_put_bstr16(dst,item->u2.data);
if (MBAG_VENDORSTR == item->type)
{
int l=0;
l+=cw_put_dword(dst, bstrv_get_vendor_id(item->data));
l+=cw_put_data(dst+4, bstrv_data(item->data),bstrv_len(item->data));
l+=cw_put_dword(dst, bstrv_get_vendor_id(item->u2.data));
l+=cw_put_data(dst+4, bstrv_data(item->u2.data),bstrv_len(item->u2.data));
return l;
}
if (MBAG_MBAG == item->type){
*((void**)dst)=item->data;
*((void**)dst)=item->u2.data;
return sizeof(void *);
}

View File

@ -46,7 +46,7 @@ int xxcw_put_radio_operational_states(mbag_t radios, uint8_t * dst, int *nerror,
mavliter_foreach(&it){
mbag_item_t * radioitem = mavliter_get(&it);
mbag_item_t *ositem = mbag_get(radioitem->data,CW_RADIOITEM_OPER_STATE);
mbag_item_t *ositem = mbag_get(radioitem->u2.data,CW_RADIOITEM_OPER_STATE);
if (!ositem){
(*nerror)++;
continue;
@ -54,10 +54,10 @@ int xxcw_put_radio_operational_states(mbag_t radios, uint8_t * dst, int *nerror,
/* Put the radio ID */
cw_put_byte(d+4,radioitem->iid);
cw_put_byte(d+4,radioitem->u1.iid);
/* Get the operational state and cause */
uint16_t os = ositem->word;
uint16_t os = ositem->u2.word;
if ( d7mode ){
/* Isolate Oper Sate from cause */
@ -77,7 +77,7 @@ int xxcw_put_radio_operational_states(mbag_t radios, uint8_t * dst, int *nerror,
/* delete the operational state item, so it won't be
sent again, until it is set by a change through
Set Radio Admin State */
mbag_del(radioitem->data,CW_RADIOITEM_OPER_STATE);
mbag_del(radioitem->u2.data,CW_RADIOITEM_OPER_STATE);
}

View File

@ -18,6 +18,7 @@
#include <string.h>
#include "mbag.h"
#include "capwap.h"
#include "conn.h"
#include "cwmsg.h"

View File

@ -27,6 +27,7 @@
*/
#include <stdarg.h>
#include "mbag.h"
#include "capwap.h"
#include "dbg.h"
#include "sock.h"
@ -166,7 +167,6 @@ static const char *get_dbg_color_off(int level)
static const char *get_dbg_prefix(int level)
{
return cw_strlist_get_str(prefix, level);
}
static const char *get_dbg_color_ontext(int level)
@ -627,9 +627,9 @@ int cw_format_item(char *dst, mbag_item_t * item)
{
*dst = 0;
if (item->type == MBAG_BSTR16) {
strncpy(dst, (char *) bstr16_data(item->data), bstr16_len(item->data));
*(dst + bstr16_len(item->data)) = 0;
return bstr16_len(item->data);
strncpy(dst, (char *) bstr16_data(item->u2.data), bstr16_len(item->u2.data));
*(dst + bstr16_len(item->u2.data)) = 0;
return bstr16_len(item->u2.data);
}
@ -693,6 +693,23 @@ void cw_dbg_version_subelem(int level, const char *context, int subtype, bstrv_t
}
/*
void dbg_istore_dmp(mbag_t s)
{

View File

@ -51,15 +51,11 @@ void cw_dbg_packet(struct conn *conn, uint8_t * packet, int len);
//#define DBGX(f,...) printf("hallo\n")
#ifdef WITH_CW_LOG_DEBUG