changes for actubent - not compiling!

FossilOrigin-Name: adf99bdc2ee784a4acf4066b90c33fb1e6124e8c49c255d3fd5011bb33852d52
bsdmakefiles
7u83@mail.ru 6 years ago
parent ca22c44590
commit d2d1be3346
  1. 4
      actube.workspace
  2. 5
      libcw.project
  3. 27
      src/ac/ac_main.c
  4. 1
      src/ac/db.c
  5. 4
      src/ac/wtpman.c
  6. 2
      src/cw/action.c
  7. 2
      src/cw/action.h
  8. 2
      src/cw/capwap.h
  9. 1
      src/cw/capwap80211_items.c
  10. 10
      src/cw/capwap80211_type_rateset.c
  11. 1
      src/cw/capwap_action_helpers.c
  12. 1
      src/cw/capwap_inline.c
  13. 1
      src/cw/capwap_items.c
  14. 1
      src/cw/capwap_msg_new.c
  15. 1
      src/cw/capwap_strings_board.c
  16. 1
      src/cw/capwap_strings_elem.c
  17. 1
      src/cw/capwap_strings_elem80211.c
  18. 2
      src/cw/capwap_strings_msg.c
  19. 1
      src/cw/capwap_strings_result.c
  20. 1
      src/cw/capwap_strings_state.c
  21. 1
      src/cw/capwap_strings_vendor.c
  22. 1
      src/cw/cipwap_strings_elem.c
  23. 6
      src/cw/cisco.c
  24. 7
      src/cw/conn.h
  25. 6
      src/cw/conn_clear_upd.c
  26. 3
      src/cw/conn_create.c
  27. 1
      src/cw/conn_create_noq.c
  28. 1
      src/cw/conn_destroy.c
  29. 1
      src/cw/conn_init.c
  30. 1
      src/cw/conn_prepare_image_data_request.c
  31. 1
      src/cw/conn_q_add_packet.c
  32. 2
      src/cw/conn_q_get_packet.c
  33. 2
      src/cw/conn_q_recv_packet.c
  34. 1
      src/cw/conn_recv_packet.c
  35. 2
      src/cw/conn_send_data_packet.c
  36. 1
      src/cw/conn_send_packet.c
  37. 1
      src/cw/connlist.c
  38. 1
      src/cw/cw_addelem_capwap_local_ip_addr.c
  39. 1
      src/cw/cw_in_ac_name_with_priority.c
  40. 1
      src/cw/cw_in_capwap_control_ip_address.c
  41. 1
      src/cw/cw_in_check_cfg_update_req.c
  42. 1
      src/cw/cw_in_check_chng_state_evnt_req.c
  43. 2
      src/cw/cw_in_check_cipwap_join_req.c
  44. 1
      src/cw/cw_in_check_disc_resp.c
  45. 6
      src/cw/cw_in_check_generic_resp.c
  46. 7
      src/cw/cw_in_check_img_data_req_ac.c
  47. 6
      src/cw/cw_in_check_img_data_req_wtp.c
  48. 3
      src/cw/cw_in_check_img_data_resp.c
  49. 6
      src/cw/cw_in_check_join_resp.c
  50. 2
      src/cw/cw_in_cisco_image_identifier.c
  51. 1
      src/cw/cw_in_generic.c
  52. 2
      src/cw/cw_in_generic2.c
  53. 1
      src/cw/cw_in_radio_administrative_state.c
  54. 1
      src/cw/cw_in_radio_administrative_state_wtp.c
  55. 2
      src/cw/cw_in_radio_generic.c
  56. 2
      src/cw/cw_out_80211_supported_rates.c
  57. 2
      src/cw/cw_out_image_data.c
  58. 2
      src/cw/cw_out_radio_administrative_states.c
  59. 10
      src/cw/cw_out_radio_generic.c
  60. 2
      src/cw/cw_out_radio_info.c
  61. 29
      src/cw/cw_out_wtp_board_data.c
  62. 11
      src/cw/cw_out_wtp_descriptor.c
  63. 3
      src/cw/cw_out_wtp_reboot_statistics.c
  64. 1
      src/cw/cw_put_local_ip_address.c
  65. 20
      src/cw/cw_put_mbag_item.c
  66. 8
      src/cw/cw_put_radio_operational_states.c
  67. 1
      src/cw/cwmsg_addelem_mtu_discovery_padding.c
  68. 25
      src/cw/dbg.c
  69. 80
      src/cw/dbg.h
  70. 1
      src/cw/dbg_strings.c
  71. 2
      src/cw/dtls_bio.c
  72. 1
      src/cw/dtls_gnutls.c
  73. 1
      src/cw/dtls_gnutls_accept.c
  74. 2
      src/cw/dtls_gnutls_bio.c
  75. 1
      src/cw/dtls_gnutls_connect.c
  76. 1
      src/cw/dtls_gnutls_get_cipher.c
  77. 1
      src/cw/dtls_gnutls_get_peers_cert.c
  78. 1
      src/cw/dtls_openssl.c
  79. 1
      src/cw/dtls_openssl_accept.c
  80. 2
      src/cw/dtls_openssl_bio.c
  81. 1
      src/cw/dtls_openssl_connect.c
  82. 1
      src/cw/dtls_openssl_get_cipher.c
  83. 2
      src/cw/item.c
  84. 2
      src/cw/item.h
  85. 11
      src/cw/log.h
  86. 1
      src/cw/lw_addelem.c
  87. 1
      src/cw/lw_checksum.c
  88. 1
      src/cw/lw_inline.c
  89. 1
      src/cw/lw_put_ac_descriptor.c
  90. 2
      src/cw/lw_put_cisco_path_mtu.c
  91. 1
      src/cw/lw_put_image_data.c
  92. 2
      src/cw/lw_put_sockaddr.c
  93. 2
      src/cw/lw_readelem_wtp_name.c
  94. 53
      src/cw/mavl.h
  95. 32
      src/cw/mavl_add.c
  96. 5
      src/cw/mavl_cmp_dword.c
  97. 4
      src/cw/mavl_create.c
  98. 28
      src/cw/mavl_del.c
  99. 2
      src/cw/mavl_foreach.c
  100. 2
      src/cw/mavl_foreach_lr.c
  101. Some files were not shown because too many files have changed in this diff Show More

@ -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>

@ -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/>

@ -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 */

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

@ -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);
}

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

@ -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"

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

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

@ -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;
}

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

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

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

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

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

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

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

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

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

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

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

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

@ -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;

@ -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"

@ -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);
}

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

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

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

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

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

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

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

@ -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)

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

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

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

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

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

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

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

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

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

@ -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) {

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

@ -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;

@ -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");

@ -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");

@ -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;

@ -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 */

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

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

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

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

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

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

@ -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;
}

@ -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;

@ -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;

@ -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)

@ -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;

@ -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;

@ -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.");

@ -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));

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

@ -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 *);
}

@ -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);
}

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

@ -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)
{

@ -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
#define cw_dbg_elem(level,conn,msgtype,msgelemtype,msgbuf,msglen)\
cw_dbg_elem_colored(level,conn,msgtype,msgelemtype,msgbuf,msglen)
#else
#define cw_dbg_elem(...)
#endif
#endif
@ -67,78 +63,9 @@ void cw_dbg_packet(struct conn *conn, uint8_t * packet, int len);
* @defgroup DbgOptions Debug Options
* @{
*/
#include "debug.h"
/**
* Debug levels
*/
enum cw_dbg_levels{
/** Show headers of incomming CAPWAP packets */
DBG_PKT_IN=0,
/** Show headers of outgoing CAPWAP packets */
DBG_PKT_OUT,