More work on data packets
FossilOrigin-Name: bbc6d184bd9c0a39fbcd90c30acea864ee63114bed3392fc827138e04ad2fd4c
This commit is contained in:
@ -105,14 +105,15 @@ int dataman_process_keep_alive(struct netconn *nc, uint8_t *rawmsg, int len)
|
||||
cw_foreach_elem(elem, elems_ptr, elems_len) {
|
||||
|
||||
if (cw_get_elem_id(elem) == CAPWAP_ELEM_SESSION_ID){
|
||||
uint8_t sessid[16];
|
||||
uint8_t sessid[64];
|
||||
memset(sessid,0,16);
|
||||
|
||||
int sessid_len = cw_get_elem_len(elem);
|
||||
|
||||
printf("Sess id len = %d\n",sessid_len);
|
||||
|
||||
memcpy(sessid,cw_get_elem_data(elem),sessid_len);
|
||||
((uint16_t*)sessid)[0]=sessid_len;
|
||||
memcpy(bstr16_data(sessid),cw_get_elem_data(elem),sessid_len);
|
||||
|
||||
struct wtpman * wtpman = wtplist_get_by_session_id(sessid);
|
||||
if (wtpman){
|
||||
@ -123,7 +124,7 @@ int dataman_process_keep_alive(struct netconn *nc, uint8_t *rawmsg, int len)
|
||||
uint8_t * dl = cw_init_data_keep_alive_msg(buffer,NULL);
|
||||
uint8_t * d=dl+2;
|
||||
|
||||
int l = cw_put_elem_session_id(d,sessid,sessid_len);
|
||||
int l = cw_put_elem_session_id(d,bstr16_data(sessid),sessid_len);
|
||||
cw_put_word(dl,l);
|
||||
|
||||
int total_len = dl-buffer + l+2;
|
||||
|
@ -16,6 +16,10 @@
|
||||
|
||||
#include "wtplist.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void show_cfg (FILE *out, mavl_t ktv)
|
||||
{
|
||||
char value[500];
|
||||
|
@ -78,14 +78,17 @@ struct wtpman * wtplist_get(const struct sockaddr * addr)
|
||||
|
||||
}
|
||||
|
||||
struct wtpman * wtplist_get_by_session_id(uint8_t *session_id)
|
||||
struct wtpman * wtplist_get_by_session_id(bstr16_t *session_id)
|
||||
{
|
||||
struct conn search;
|
||||
struct conn * conn;
|
||||
|
||||
memcpy (search.session_id, session_id,16);
|
||||
search.session_id = session_id;
|
||||
/*memcpy (search.session_id, session_id,16);*/
|
||||
|
||||
conn = connlist_get_by_session_id(connlist,&search);
|
||||
if (conn == NULL)
|
||||
return NULL;
|
||||
return conn->data;
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ extern struct wtpman * wtplist_add(struct wtpman * wtpman);
|
||||
extern void wtplist_remove(struct wtpman * wtpman);
|
||||
extern void wtplist_lock();
|
||||
extern void wtplist_unlock();
|
||||
extern struct wtpman * wtplist_get_by_session_id(uint8_t *session_id);
|
||||
extern struct wtpman * wtplist_get_by_session_id(bstr16_t *session_id);
|
||||
struct connlist * wtplist_get_connlist(void);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user