Renaming of constants and macros.
FossilOrigin-Name: e178706d8b193e63521682a3a894fd4ac4cbc9fe4f0006db2ab5d2964a92be9c
This commit is contained in:
parent
6e98c134c0
commit
edbcddd12d
@ -21,10 +21,14 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
#include "conn.h"
|
#include "conn.h"
|
||||||
|
|
||||||
|
#include "lwapp.h"
|
||||||
|
|
||||||
/* capwap version and iana number */
|
/* capwap version and iana number */
|
||||||
#define CW_VERSION 0
|
#define CW_VERSION 0
|
||||||
#define CWIANA_ENTERPRISE_NUMBER 0 /* for capwap base the number */
|
#define CWIANA_ENTERPRISE_NUMBER 0 /* for capwap base the number */
|
||||||
@ -57,17 +61,6 @@ enum capwapmodes {
|
|||||||
#define CWTH_FLAGS_T 0x100 /* bit 8 type of payload frame */
|
#define CWTH_FLAGS_T 0x100 /* bit 8 type of payload frame */
|
||||||
|
|
||||||
|
|
||||||
#define CWTH_GET_FLAG_R1(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R1 ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_R2(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R2 ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_R3(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R3 ) ? 1:0)
|
|
||||||
|
|
||||||
#define CWTH_GET_FLAG_K(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_K ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_M(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_M ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_W(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_W ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_L(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_L ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_F(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_F ) ? 1:0)
|
|
||||||
#define CWTH_GET_FLAG_T(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_T ) ? 1:0)
|
|
||||||
|
|
||||||
/* wireless binding ids */
|
/* wireless binding ids */
|
||||||
#define CWTH_WBID_RESERVED1 0
|
#define CWTH_WBID_RESERVED1 0
|
||||||
#define CWTH_WBID_IEEE80211 1
|
#define CWTH_WBID_IEEE80211 1
|
||||||
@ -77,17 +70,6 @@ enum capwapmodes {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* generic macroto to isolate bits from a dword */
|
|
||||||
#define CW_GET_DWORD_BITS(src,start,len) ((~(0xFFFFFFFF<<len)) & (src >> (32 - start - len)))
|
|
||||||
|
|
||||||
/* macros to acces transport header values */
|
|
||||||
#define CWTH_GET_PREAMBLE(th) (th[0])
|
|
||||||
//(ntohl(((uint32_t*)th)[0]) >> 24)
|
|
||||||
#define CWTH_GET_FRAGID(th) ((ntohl((((uint32_t*)th)[1]) >> 16) & 0xffff))
|
|
||||||
#define CWTH_GET_FRAGOFFSET(th) ((ntohl((((uint32_t*)th)[1]) >> 3) & 0x1fff))
|
|
||||||
#define CWTH_GET_RID(th) ((ntohl((((uint32_t*)th)[0]) >> 14) & 0x1f))
|
|
||||||
#define CWTH_GET_WBID(th) ((ntohl(((uint32_t*)th)[0]) >> 9) & 0x1f)
|
|
||||||
#define CWTH_GET_HLEN(th) ((ntohl(((uint32_t*)th)[0]) >> 19) & 0x1f)
|
|
||||||
|
|
||||||
#define CAPWAP_PACKET_PREAMBLE (CW_VERSION<<4)
|
#define CAPWAP_PACKET_PREAMBLE (CW_VERSION<<4)
|
||||||
#define CAPWAP_DTLS_PACKET_PREAMBLE (CW_VERSION<<4|1)
|
#define CAPWAP_DTLS_PACKET_PREAMBLE (CW_VERSION<<4|1)
|
||||||
@ -117,8 +99,8 @@ struct capwap_ctrlhdr
|
|||||||
#define CWMSG_JOIN_REQUEST 3 + CWIANA_ENTERPRISE_NUMBER*256
|
#define CWMSG_JOIN_REQUEST 3 + CWIANA_ENTERPRISE_NUMBER*256
|
||||||
#define CWMSG_JOIN_RESPONSE 4 + CWIANA_ENTERPRISE_NUMBER*256
|
#define CWMSG_JOIN_RESPONSE 4 + CWIANA_ENTERPRISE_NUMBER*256
|
||||||
|
|
||||||
#define CWMSG_CONFIGURATION_STATUS_REQUEST 5
|
#define CW_MSG_CONFIGURATION_STATUS_REQUEST 5
|
||||||
#define CWMSG_CONFIGURATION_STATUS_RESPONSE 6
|
#define CW_MSG_CONFIGURATION_STATUS_RESPONSE 6
|
||||||
|
|
||||||
#define CWMSG_CONFIGURATION_UPDATE_REQUEST 7
|
#define CWMSG_CONFIGURATION_UPDATE_REQUEST 7
|
||||||
#define CWMSG_CONFIGURATION_UPDATE_RESPONSE 8
|
#define CWMSG_CONFIGURATION_UPDATE_RESPONSE 8
|
||||||
@ -157,16 +139,12 @@ struct capwap_ctrlhdr
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define CWMSGELEM_AC_DESCRIPTOR 1
|
#define CW_ELEM_AC_DESCRIPTOR 1
|
||||||
/* AC IPv4 List 2
|
#define CW_ELEM_AC_IPV4_LIST 2
|
||||||
AC IPv6 List 3
|
#define CW_ELEM_AC_IPv6_LIST 3
|
||||||
*/
|
#define CW_ELEM_AC_NAME 4
|
||||||
#define CWMSGELEM_AC_NAME 4
|
#define CW_ELEM_AC_NAME_WITH_PRIORITY 5
|
||||||
/*
|
#define CW_ELEM_AC_TIMESTAMP 6
|
||||||
AC Name with Priority 5
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define CWMSGELEM_AC_TIMESTAMP 6
|
|
||||||
|
|
||||||
/* Add MAC ACL Entry 7
|
/* Add MAC ACL Entry 7
|
||||||
Add Station 8
|
Add Station 8
|
||||||
@ -191,10 +169,10 @@ struct capwap_ctrlhdr
|
|||||||
Reserved 19
|
Reserved 19
|
||||||
*/
|
*/
|
||||||
#define CWMSGELEM_DISCOVERY_TYPE 20
|
#define CWMSGELEM_DISCOVERY_TYPE 20
|
||||||
/*
|
|
||||||
Duplicate IPv4 Address 21
|
#define CW_ELEM_DUPLICATE_IPV4_ADDRESS 21
|
||||||
Duplicate IPv6 Address 22
|
#define CW_ELEM_DUPLICATE_IPV6_ADRESS 22
|
||||||
*/
|
|
||||||
#define CWMSGELEM_ECN_SUPPORT 53
|
#define CWMSGELEM_ECN_SUPPORT 53
|
||||||
/* Idle Timeout 23
|
/* Idle Timeout 23
|
||||||
*/
|
*/
|
||||||
@ -216,9 +194,10 @@ struct capwap_ctrlhdr
|
|||||||
|
|
||||||
/* Returned Message Element 34
|
/* Returned Message Element 34
|
||||||
*/
|
*/
|
||||||
#define CWMSGELEM_SESSION_ID 35
|
#define CW_ELEM_SESSION_ID 35
|
||||||
#define CWMSGELEM_STATISTICS_TIMER 36
|
#define CWMSGELEM_STATISTICS_TIMER 36
|
||||||
#define CWMSGELEM_VENDOR_SPECIFIC_PAYLOAD 37
|
|
||||||
|
#define CW_ELEM_VENDOR_SPECIFIC_PAYLOAD 37
|
||||||
|
|
||||||
#define CWMSGELEM_WTP_BOARD_DATA 38
|
#define CWMSGELEM_WTP_BOARD_DATA 38
|
||||||
|
|
||||||
@ -245,8 +224,8 @@ struct capwap_ctrlhdr
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Cisco's CAPWAP definitions (CAPWAP draft 7)*/
|
/* Cisco's CAPWAP definitions (CAPWAP draft 7)*/
|
||||||
#define CWMSGELEM_WTP_IPV4_IP_ADDR 42
|
#define CW_ELEM_WTP_IPV4_IP_ADDRESS 42
|
||||||
#define CWMSGELEM_WTP_IPV6_IP_ADDR 43
|
#define CW_ELEM_WTP_IPV6_IP_ADDRESS 43
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -377,7 +356,8 @@ extern void cwmsg_addelem_cw_local_ip_addr(struct cwmsg *msg, struct conn * conn
|
|||||||
extern void cwmsg_addelem_wtp_radio_infos(struct cwmsg *msg, struct radioinfo *radioinfos);
|
extern void cwmsg_addelem_wtp_radio_infos(struct cwmsg *msg, struct radioinfo *radioinfos);
|
||||||
|
|
||||||
extern void cwmsg_addelem_result_code(struct cwmsg *msg, int rc);
|
extern void cwmsg_addelem_result_code(struct cwmsg *msg, int rc);
|
||||||
extern void cwmsg_addelem_vendor_specific_payload(struct cwmsg *msg,int vendor_id, int type, uint8_t * payload,int len);
|
extern void cwmsg_addelem_vendor_specific_payload(struct cwmsg *msg, int vendor_id, int type,
|
||||||
|
uint8_t * payload, int len);
|
||||||
|
|
||||||
//extern void cwsend_discovery_reponse(struct conn * conn, struct ac_info * acinfo);
|
//extern void cwsend_discovery_reponse(struct conn * conn, struct ac_info * acinfo);
|
||||||
//extern int process_msgelems(uint8_t * msgelems, int len,
|
//extern int process_msgelems(uint8_t * msgelems, int len,
|
||||||
@ -388,9 +368,12 @@ extern void cwmsg_addelem_vendor_specific_payload(struct cwmsg *msg,int vendor_i
|
|||||||
|
|
||||||
//void cwsend_discovery_response(struct conn * conn,int seqnum, struct radioinfo * radioinfo, struct ac_info * acinfo, struct wtpinfo * wtpinfo);
|
//void cwsend_discovery_response(struct conn * conn,int seqnum, struct radioinfo * radioinfo, struct ac_info * acinfo, struct wtpinfo * wtpinfo);
|
||||||
//
|
//
|
||||||
extern void cwsend_discovery_response(struct conn * conn,int seqnum, struct radioinfo * radioinfo, struct ac_info * acinfo, struct wtpinfo * wtpinfo);
|
extern void cwsend_discovery_response(struct conn *conn, int seqnum, struct radioinfo *radioinfo,
|
||||||
extern int cwsend_discovery_request(struct conn * conn,struct radioinfo * radioinfo,struct wtpinfo * wtpinfo);
|
struct ac_info *acinfo, struct wtpinfo *wtpinfo);
|
||||||
extern void cwsend_join_response(struct conn * conn,int seqnum, int rc, struct radioinfo * radioinfo, struct ac_info * acinfo, struct wtpinfo * wtpinfo);
|
extern int cwsend_discovery_request(struct conn *conn, struct radioinfo *radioinfo,
|
||||||
|
struct wtpinfo *wtpinfo);
|
||||||
|
extern void cwsend_join_response(struct conn *conn, int seqnum, int rc, struct radioinfo *radioinfo,
|
||||||
|
struct ac_info *acinfo, struct wtpinfo *wtpinfo);
|
||||||
|
|
||||||
|
|
||||||
extern void cwread_discovery_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
extern void cwread_discovery_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
||||||
@ -399,12 +382,16 @@ extern void process_conf_status_request(struct wtpinfo * wtpinfo, uint8_t * msg,
|
|||||||
|
|
||||||
extern void cwread_discovery_response(struct ac_info *acinfo, uint8_t * msg, int len);
|
extern void cwread_discovery_response(struct ac_info *acinfo, uint8_t * msg, int len);
|
||||||
extern void cwsend_image_data_response(struct conn *conn, int seqnum, int rc);
|
extern void cwsend_image_data_response(struct conn *conn, int seqnum, int rc);
|
||||||
extern int cwsend_image_data_request(struct conn * conn, struct cwimage_data * data, struct image_identifier *id );
|
extern int cwsend_image_data_request(struct conn *conn, struct cwimage_data *data,
|
||||||
|
struct image_identifier *id);
|
||||||
extern int cwread_change_state_event_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
extern int cwread_change_state_event_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
||||||
extern void cwsend_change_state_event_response(struct conn * conn,int seqnum, struct radioinfo * radioinfo);
|
extern void cwsend_change_state_event_response(struct conn *conn, int seqnum,
|
||||||
|
struct radioinfo *radioinfo);
|
||||||
extern int cwread_wtp_event_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
extern int cwread_wtp_event_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
||||||
extern void cwread_configuration_status_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
extern void cwread_configuration_status_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len);
|
||||||
extern void cwsend_conf_status_response(struct conn * conn,int seqnum, int rc, struct radioinfo * radioinfo, struct ac_info * acinfo, struct wtpinfo * wtpinfo);
|
extern void cwsend_conf_status_response(struct conn *conn, int seqnum, int rc,
|
||||||
|
struct radioinfo *radioinfo, struct ac_info *acinfo,
|
||||||
|
struct wtpinfo *wtpinfo);
|
||||||
|
|
||||||
extern void cwsend_unknown_response(struct conn *conn, int seqnum, int unknow_request);
|
extern void cwsend_unknown_response(struct conn *conn, int seqnum, int unknow_request);
|
||||||
|
|
||||||
@ -415,15 +402,20 @@ extern int hdr_print(char *str, uint8_t *packet, int len);
|
|||||||
extern int cw_readelem_ecn_support(uint8_t * ecn_support, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_ecn_support(uint8_t * ecn_support, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_maximum_message_length(uint16_t * dst, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_maximum_message_length(uint16_t * dst, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_ac_name(uint8_t ** dst, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_ac_name(uint8_t ** dst, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_wtp_reboot_statistics(struct wtp_reboot_statistics *s, int type,uint8_t *msgelem, int len);
|
extern int cw_readelem_wtp_reboot_statistics(struct wtp_reboot_statistics *s, int type,
|
||||||
extern int cw_readelem_cw_local_ip_addr(struct sockaddr * local_ip, int type, uint8_t * msgelem, int len);
|
uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_radio_administrative_state(struct radioinfo * radioinfo, int type,uint8_t *msgelem, int len);
|
extern int cw_readelem_cw_local_ip_addr(struct sockaddr *local_ip, int type, uint8_t * msgelem,
|
||||||
extern int cw_readelem_radio_operational_state(struct radioinfo * radioinfo, int type,uint8_t *msgelem, int len);
|
int len);
|
||||||
|
extern int cw_readelem_radio_administrative_state(struct radioinfo *radioinfo, int type,
|
||||||
|
uint8_t * msgelem, int len);
|
||||||
|
extern int cw_readelem_radio_operational_state(struct radioinfo *radioinfo, int type,
|
||||||
|
uint8_t * msgelem, int len);
|
||||||
|
|
||||||
extern int cw_readelem_statistics_timer(uint16_t * timer, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_statistics_timer(uint16_t * timer, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_result_code(uint32_t * result_code, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_result_code(uint32_t * result_code, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_mtu_discovery_padding(int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_mtu_discovery_padding(int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_vendor_specific_payload(void * data, int msgtype, int elemtype,uint8_t *msgelem, int len);
|
extern int cw_readelem_vendor_specific_payload(void *data, int msgtype, int elemtype,
|
||||||
|
uint8_t * msgelem, int len);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -486,7 +478,8 @@ extern int cw_readelem_vendor_specific_payload(void * data, int msgtype, int ele
|
|||||||
extern void cw_read_image_data_request(struct cwimage_data *, uint8_t * msg, int len);
|
extern void cw_read_image_data_request(struct cwimage_data *, uint8_t * msg, int len);
|
||||||
|
|
||||||
extern int cw_readelem_ac_descriptor(struct ac_info *acinfo, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_ac_descriptor(struct ac_info *acinfo, int type, uint8_t * msgelem, int len);
|
||||||
extern int cw_readelem_capwap_local_ip_addr(struct sockaddr * local_ip, int type, uint8_t * msgelem, int len);
|
extern int cw_readelem_capwap_local_ip_addr(struct sockaddr *local_ip, int type, uint8_t * msgelem,
|
||||||
|
int len);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -495,4 +488,88 @@ extern int cw_handle_echo_request(void * d);
|
|||||||
extern void cw_send_image_file(struct conn *conn, FILE * infile);
|
extern void cw_send_image_file(struct conn *conn, FILE * infile);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* macro to isolate bits from a dword */
|
||||||
|
#define cw_get_dword_bits(src,start,len) ((~(0xFFFFFFFF<<len)) & (src >> (32 - start - len)))
|
||||||
|
|
||||||
|
/* macros to acces transport header values */
|
||||||
|
|
||||||
|
#define cw_get_hdr_preamble(th) (th[0])
|
||||||
|
#define cw_get_hdr_fragid(th) ((ntohl((((uint32_t*)th)[1]) >> 16) & 0xffff))
|
||||||
|
#define cw_get_hdr_fragoffset(th) ((ntohl((((uint32_t*)th)[1]) >> 3) & 0x1fff))
|
||||||
|
#define cw_get_hdr_rid(th) ((ntohl((((uint32_t*)th)[0]) >> 14) & 0x1f))
|
||||||
|
#define cw_get_hdr_wbid(th) ((ntohl(((uint32_t*)th)[0]) >> 9) & 0x1f)
|
||||||
|
#define cw_get_hdr_hlen(th) ((ntohl(((uint32_t*)th)[0]) >> 19) & 0x1f)
|
||||||
|
|
||||||
|
#define cw_get_hdr_rmac(th) (th+8)
|
||||||
|
|
||||||
|
#define cw_get_hdr_flag_r1(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R1 ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_r2(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R2 ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_r3(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_R3 ) ? 1:0)
|
||||||
|
|
||||||
|
#define cw_get_hdr_flag_k(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_K ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_m(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_M ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_w(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_W ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_l(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_L ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_f(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_F ) ? 1:0)
|
||||||
|
#define cw_get_hdr_flag_t(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_T ) ? 1:0)
|
||||||
|
|
||||||
|
|
||||||
|
/* Use some macros from LWAPP */
|
||||||
|
|
||||||
|
#define cw_put_dword lw_put_dword
|
||||||
|
#define cw_put_word lw_put_word
|
||||||
|
|
||||||
|
|
||||||
|
static inline int cw_put_elem_hdr(uint8_t * dst, uint16_t type, uint16_t len)
|
||||||
|
{
|
||||||
|
*((uint32_t *) (dst)) = htonl(type << 16 | len);
|
||||||
|
return 4 + len;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static inline int cw_addelem(uint8_t *dst, uint16_t type,uint8_t*data,uint16_t len)
|
||||||
|
{
|
||||||
|
memcpy(dst+4,data,len);
|
||||||
|
return cw_put_elem_hdr(dst,type,len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
static inline int cw_addbyteelem(uint8_t *dst, uint16_t type, uint8_t byte)
|
||||||
|
{
|
||||||
|
// *(dst+3)=byte;
|
||||||
|
// return cw_put_elem_hdr(
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
static inline int cw_addelem_vendor_specific_payload(uint8_t * dst, uint32_t vendor_id, uint16_t type,
|
||||||
|
uint8_t * data, uint16_t len)
|
||||||
|
{
|
||||||
|
cw_put_dword(dst+4, vendor_id);
|
||||||
|
cw_put_word(dst + 8, type);
|
||||||
|
memcpy(dst + 10, data, len);
|
||||||
|
return cw_put_elem_hdr(dst, CW_ELEM_VENDOR_SPECIFIC_PAYLOAD, len + 10-4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define cw_addelem_ac_name(dst,name) \
|
||||||
|
cw_addelem(dst,CW_ELEM_AC_NAME,name,strlen((char*)(name)))
|
||||||
|
|
||||||
|
#define cw_addelem_session_id(dst,sessid)\
|
||||||
|
cw_addelem(dst,CW_ELEM_SESSION_ID,bstr_data(sessid),bstr_len(sessid))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* cwmsg methods */
|
||||||
|
|
||||||
|
#define cwmsg_addelem_vendor_s_payload(cwmsg,vendor_id, type, data,len) \
|
||||||
|
(cwmsg)->pos+=cw_addelem_vendor_specific_payload((cwmsg)->msgelems+(cwmsg)->pos,vendor_id,type,data,len)
|
||||||
|
|
||||||
|
#define cwmsg_addelem_ac_name(cwmsg,name) \
|
||||||
|
(cwmsg)->pos+=cw_addelem_ac_name((cwmsg)->msgelems+(cwmsg)->pos,name)
|
||||||
|
|
||||||
|
#define cwmsg_addelem_session_id(cwmsg,sessid) \
|
||||||
|
(cwmsg)->pos+=cw_addelem_session_id((cwmsg)->msgelems+(cwmsg)->pos,sessid)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user