Some corrections.
FossilOrigin-Name: a3e4b7ae78de75925d43c5d92cf2bdd847fb45bfa48c6e4098c9101fd48fb6fa
This commit is contained in:
parent
b08e39bf2b
commit
fa7ed0e471
@ -32,7 +32,7 @@ SOCKOBJS=sock_create.o sock_copyaddr.o sock_strtoaddr.o sock_cmpaddr.o sock_addr
|
||||
sock_addrinit.o \
|
||||
sock_set_dontfrag.o \
|
||||
sock_get_primary_if.o \
|
||||
sock_receive.o \
|
||||
#sock_receive.o \
|
||||
|
||||
LOGOBJS=cw_log.o \
|
||||
cw_log_debug.o \
|
||||
@ -54,6 +54,7 @@ UTILOBJS= \
|
||||
cw_foreach_msgelem.o \
|
||||
avltree.o \
|
||||
avltree_get_node.o \
|
||||
avltree_get.o \
|
||||
avltree_del_all.o \
|
||||
avltree_foreach_lr.o \
|
||||
avltree_foreach_rl.o \
|
||||
@ -91,7 +92,6 @@ LWAPPCISCOOBJS = \
|
||||
|
||||
|
||||
CAPWAPOBJS= \
|
||||
cwmsg_init.o \
|
||||
cwmsg_init_echo_request.o \
|
||||
cwmsg_addelem.o \
|
||||
cwmsg_vaddelem.o \
|
||||
@ -101,7 +101,6 @@ CAPWAPOBJS= \
|
||||
cwmsg_addelem_cw_local_ip_addr.o \
|
||||
cwmsg_addelem_mtu_discovery_padding.o \
|
||||
cwmsg_addelem_ac_timestamp.o \
|
||||
cw_addelem_vendor_specific_payload.o \
|
||||
cwmsg_addelem_maximum_message_length.o \
|
||||
cwmsg_addelem_image_identifier.o \
|
||||
cwmsg_send.o \
|
||||
@ -182,6 +181,7 @@ CAPWAPOBJS= \
|
||||
format.o
|
||||
|
||||
|
||||
# cw_addelem_vendor_specific_payload.o \
|
||||
#cw_in_wtp_name.o \
|
||||
#cw_msgtostr.o \
|
||||
#cw_msgelemtostr.o \
|
||||
@ -190,6 +190,7 @@ CAPWAPOBJS= \
|
||||
#cwmsg_addelem_wtp_board_data.o \
|
||||
#wtpinfo_readelem_wtp_board_data.o \
|
||||
# cw_send_image_data_response.o \
|
||||
#cwmsg_init.o \
|
||||
|
||||
#cw_ianavendoridtostr.o \
|
||||
#cwmsg_addelem_result_code.o \
|
||||
|
@ -112,4 +112,12 @@
|
||||
0,0
|
||||
|
||||
|
||||
#define CW_ACTION_IN_CAPWAP_CONTROL_IPV4_ADDRESS \
|
||||
CW_ELEM_CAPWAP_CONTROL_IPV4_ADDRESS, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
CW_ITEMTYPE_DATA, /* Type of element */ \
|
||||
CW_ITEM_CAPWAP_CONTROL_IP_ADDR, /* ID to use store */ \
|
||||
6, 6 /* min/max length */
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -30,7 +30,7 @@ cw_action_in_t capwap_actions_wtp_in[] = {
|
||||
|
||||
/* ------------------------------------------------------------------------------- */
|
||||
|
||||
/* Message Discovery Request */
|
||||
/* Message Discovery Response */
|
||||
{0, 0, CW_STATE_DISCOVERY, CW_MSG_DISCOVERY_RESPONSE, 0,
|
||||
0, 0}
|
||||
,
|
||||
@ -44,7 +44,8 @@ cw_action_in_t capwap_actions_wtp_in[] = {
|
||||
CW_ACTION_IN_VENDOR_SPECIFIC_PAYLOAD, 1}
|
||||
,
|
||||
|
||||
|
||||
/* Element CAPWAP Control IPv4 Address */
|
||||
|
||||
|
||||
|
||||
{0, 0, 0}
|
||||
|
@ -170,7 +170,7 @@ struct conn *conn_create_noq(int sock, struct sockaddr *addr);
|
||||
|
||||
|
||||
extern int conn_send_cwmsg(struct conn *conn, struct cwmsg *cwmsg);
|
||||
extern void conn_process_packet(struct conn *conn, uint8_t * packet, int len,
|
||||
extern int conn_process_packet(struct conn *conn, uint8_t * packet, int len,
|
||||
int (*cb) (void *, uint8_t *,int len), void *cbarg);
|
||||
|
||||
extern uint8_t *conn_get_message(struct conn *conn);
|
||||
|
@ -161,13 +161,13 @@ static void cw_dbg_packet(struct conn * conn, uint8_t * packet, int len)
|
||||
#endif
|
||||
|
||||
|
||||
void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(void*,uint8_t *,int),void *cbarg)
|
||||
int conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(void*,uint8_t *,int),void *cbarg)
|
||||
{
|
||||
|
||||
if (len<8){
|
||||
/* packet too short */
|
||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, packet too short, len=%d",sock_addr2str(&conn->addr),len);
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int preamble = cw_get_hdr_preamble(packet);
|
||||
@ -175,12 +175,12 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
if ( (preamble & 0xf0) != CW_VERSION){
|
||||
/* wrong version */
|
||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, wrong version, version=%d",sock_addr2str(&conn->addr),(preamble&0xf0)>>8);
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (preamble & 0xf ) {
|
||||
/* decode dtls */
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* log this packet */
|
||||
@ -194,7 +194,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
if (payloadlen<0){
|
||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, header length greater than len, hlen=%d",sock_addr2str(&conn->addr),offs);
|
||||
/* EINVAL */
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -211,7 +211,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
if (cw_get_hdr_rmac_len(packet)+8>offs){
|
||||
/* wrong rmac size */
|
||||
cw_dbg(DBG_CW_PKT_ERR,"Discarding packet, wrong R-MAC size, size=%d",*(packet+8));
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
// memcpy(cwrmsg.rmac, packet+8,8);
|
||||
}
|
||||
@ -224,7 +224,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
uint8_t * f;
|
||||
f = fragman_add(conn->fragman, packet,offs,payloadlen);
|
||||
if (f==NULL)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
cw_dbg_packet(conn,f+4,*(uint32_t*)f);
|
||||
|
||||
@ -244,7 +244,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
process_message(conn,f+4,*(uint32_t*)f,cb,cbarg);
|
||||
|
||||
free (f);
|
||||
return;
|
||||
return 1;
|
||||
}
|
||||
|
||||
//extern int cw_process_msg(struct conn * conn,uint8_t*msg,int len);
|
||||
@ -258,7 +258,7 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)(
|
||||
|
||||
//msg_4*((val >> 19) & 0x1f);
|
||||
process_message(conn,packet,len,cb,cbarg);
|
||||
return;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@ -277,7 +277,7 @@ int cw_read_messages(struct conn *conn)
|
||||
if (n > 0)
|
||||
conn_process_packet(conn, buf, n, cw_process_msg, conn);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
|
||||
#include "capwap.h"
|
||||
#include "cw_log.h"
|
||||
#include "sock.h" //Tube
|
||||
/**
|
||||
* @file
|
||||
* @brief Implementation of Vendor Specific Payload
|
||||
@ -19,6 +20,8 @@ int cw_in_vendor_specific_payload(struct conn *conn,struct cw_action_in * a,uint
|
||||
|
||||
af = cw_actionlist_in_get(conn->actions->in,&as);
|
||||
|
||||
cw_dbg(DBG_ELEM,"From might be: %s\n",sock_addr2str(&conn->addr));
|
||||
|
||||
if (!af) {
|
||||
cw_log(DBG_ELEM,"Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.",
|
||||
cw_strvendor(as.vendor_id),
|
||||
|
@ -20,4 +20,4 @@ export LDFLAGS
|
||||
|
||||
cmake ..
|
||||
make uci cli
|
||||
|
||||
make install
|
||||
|
@ -57,6 +57,7 @@ static int run_discovery(struct conn *conn)
|
||||
while (!cw_timer_timeout(timer)
|
||||
&& conn->capwap_state == CW_STATE_DISCOVERY) {
|
||||
cw_read_messages(conn);
|
||||
printf ("Got one annswer\n");
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user