From 4b5b00009c8aec76fc228f8d1afdbdeefca6975d Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Tue, 9 Aug 2022 22:35:47 +0200 Subject: [PATCH] Renamed struct conn to struct cw_Conn --- src/ac/shell.c | 20 ++--- src/ac/wtplist.c | 6 +- src/ac/wtpman.c | 12 +-- src/ac/wtpman.h | 2 +- src/cw/Makefile | 5 +- src/cw/conn.h | 105 ++++++++++++----------- src/cw/conn_create.c | 6 +- src/cw/conn_create_noq.c | 6 +- src/cw/conn_destroy.c | 2 +- src/cw/conn_init.c | 4 +- src/cw/conn_process_packet.c | 30 +++---- src/cw/conn_q_add_packet.c | 2 +- src/cw/conn_q_get_packet.c | 2 +- src/cw/conn_q_recv_packet.c | 6 +- src/cw/conn_q_wait_packet.c | 2 +- src/cw/conn_recv_packet.c | 10 +-- src/cw/conn_send_data_packet.c | 2 +- src/cw/conn_send_msg.c | 4 +- src/cw/conn_send_packet.c | 2 +- src/cw/connlist.c | 24 +++--- src/cw/connlist.h | 12 +-- src/cw/cw.h | 32 +++---- src/cw/cw_decode_msg.c | 5 +- src/cw/cw_detect_nat.c | 2 +- src/cw/cw_in_capwap_local_ipv6_address.c | 2 +- src/cw/cw_in_generic.c | 35 +++++++- src/cw/cw_in_wtp_reboot_statistics.c | 2 +- src/cw/cw_put_msg.c | 4 +- src/cw/cw_read_descriptor_subelems.c | 44 ++++++---- src/cw/cw_read_from.c | 2 +- src/cw/cw_read_wtp_descriptor.c | 2 +- src/cw/cw_read_wtp_descriptor_7.c | 7 +- src/cw/cw_setup_dtls.c | 4 +- src/cw/cw_type_bstr16.c | 31 ++++++- src/cw/cw_type_byte.c | 28 +++++- src/cw/dbg.c | 8 +- src/cw/dbg.h | 18 ++-- src/cw/dbg_strings.c | 3 + src/cw/dtls_bio.c | 4 +- src/cw/dtls_openssl.c | 20 ++--- src/cw/dtls_openssl.h | 16 ++-- src/cw/dtls_openssl_accept.c | 2 +- src/cw/dtls_openssl_bio.c | 12 +-- src/cw/dtls_openssl_connect.c | 6 +- src/cw/dtls_openssl_get_cipher.c | 2 +- src/cw/send.c | 8 +- src/mod/capwap/capwap_actions_ac.c | 4 +- src/mod/capwap/mod_capwap_ac.c | 4 +- src/mod/cisco/cisco_actions_ac.c | 19 ++-- src/mod/cisco/cisco_in_wtp_descriptor.c | 2 +- src/mod/cisco/mod_cisco_ac.c | 4 +- 51 files changed, 349 insertions(+), 247 deletions(-) diff --git a/src/ac/shell.c b/src/ac/shell.c index 25e1d362..65273a05 100644 --- a/src/ac/shell.c +++ b/src/ac/shell.c @@ -36,7 +36,7 @@ void wlan0_cmd(struct shelldata *sd, const char * cmd); void show_cfg (FILE *out, mavl_t ktv); void show_aps (FILE *out); -struct conn * find_ap(const char *name); +struct cw_Conn * find_ap(const char *name); struct command{ char * cmd; @@ -72,7 +72,7 @@ void list_cmd(struct shelldata *sd, const char *cmd) void cfg_cmd(struct shelldata *sd, const char *cmd) { - struct conn * conn; + struct cw_Conn * conn; wtplist_lock(); conn = find_ap(sd->prompt); if (conn==NULL){ @@ -86,7 +86,7 @@ void cfg_cmd(struct shelldata *sd, const char *cmd) void ucfg_cmd(struct shelldata *sd, const char *cmd) { - struct conn * conn; + struct cw_Conn * conn; show_cfg(sd->out,sd->update_cfg); } @@ -96,7 +96,7 @@ void ucfg_cmd(struct shelldata *sd, const char *cmd) void send_cmd(struct shelldata * sd, const char *cmd) { - struct conn * conn; + struct cw_Conn * conn; wtplist_lock(); conn = find_ap(sd->prompt); if (conn==NULL){ @@ -111,7 +111,7 @@ send_cmd(struct shelldata * sd, const char *cmd) void wlan0_cmd(struct shelldata * sd, const char *cmd) { - struct conn * conn; + struct cw_Conn * conn; wtplist_lock(); conn = find_ap(sd->prompt); if (conn==NULL){ @@ -129,7 +129,7 @@ wlan0_cmd(struct shelldata * sd, const char *cmd) void set_cmd(struct shelldata *sd, const char *str) { - struct conn * conn; + struct cw_Conn * conn; struct cw_Val_Reader r; char key[CW_KTV_MAX_KEY_LEN]; char type[CW_KTV_MAX_KEY_LEN]; @@ -189,7 +189,7 @@ void show_aps (FILE *out) cw_Val_t * result; char addr[SOCK_ADDR_BUFSIZE]; char wtp_name[CAPWAP_MAX_WTP_NAME_LEN]; - struct conn * conn; + struct cw_Conn * conn; conn = mavliter_get_ptr (&it); sock_addr2str_p (&conn->addr, addr); @@ -211,7 +211,7 @@ void show_aps (FILE *out) -struct conn * find_ap(const char *name) +struct cw_Conn * find_ap(const char *name) { struct connlist * cl; mavliter_t it; @@ -224,7 +224,7 @@ struct conn * find_ap(const char *name) mavliter_foreach (&it) { cw_Val_t * result; char wtp_name[CAPWAP_MAX_WTP_NAME_LEN]; - struct conn * conn; + struct cw_Conn * conn; conn = mavliter_get_ptr (&it); result = cw_ktv_get (conn->remote_cfg, "wtp-name", NULL); @@ -266,7 +266,7 @@ void con (FILE *out) cw_Val_t * result; char addr[SOCK_ADDR_BUFSIZE]; char wtp_name[CAPWAP_MAX_WTP_NAME_LEN]; - struct conn * conn; + struct cw_Conn * conn; conn = mavliter_get_ptr (&it); sock_addr2str_p (&conn->addr, addr); diff --git a/src/ac/wtplist.c b/src/ac/wtplist.c index 246d4cb0..3da0e287 100644 --- a/src/ac/wtplist.c +++ b/src/ac/wtplist.c @@ -71,7 +71,7 @@ void wtplist_destroy() struct wtpman * wtplist_get(const struct sockaddr * addr) { - struct conn * conn = connlist_get(connlist,addr); + struct cw_Conn * conn = connlist_get(connlist,addr); if (!conn) return 0; return conn->data; @@ -80,8 +80,8 @@ struct wtpman * wtplist_get(const struct sockaddr * addr) struct wtpman * wtplist_get_by_session_id(bstr16_t *session_id) { - struct conn search; - struct conn * conn; + struct cw_Conn search; + struct cw_Conn * conn; search.session_id = session_id; /*memcpy (search.session_id, session_id,16);*/ diff --git a/src/ac/wtpman.c b/src/ac/wtpman.c index c2905494..766a7d61 100644 --- a/src/ac/wtpman.c +++ b/src/ac/wtpman.c @@ -63,7 +63,7 @@ static void reset_echointerval_timer(struct wtpman *wtpman) } -static int msg_start_handler(struct conn *conn, struct cw_action_in *a, +static int msg_start_handler(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from) { struct wtpman *wtpman = conn->data; @@ -144,7 +144,7 @@ static int wtpman_join(void *arg) int rc; char sock_buf[SOCK_ADDR_BUFSIZE]; struct wtpman *wtpman = (struct wtpman *) arg; - struct conn *conn = wtpman->conn; + struct cw_Conn *conn = wtpman->conn; time_t timer, wait_join; cw_dbg(DBG_INFO, "Join State - %s", @@ -193,7 +193,7 @@ static int wtpman_join(void *arg) static void wtpman_image_data(struct wtpman *wtpman) { /* char sock_buf[SOCK_ADDR_BUFSIZE]; - struct conn *conn = wtpman->conn; + struct cw_Conn *conn = wtpman->conn; // Image upload const char *filename = mbag_get_str(conn->outgoing, CW_ITEM_IMAGE_FILENAME, NULL); @@ -255,7 +255,7 @@ void *wtpman_run_data(void *wtpman_arg) return NULL; /* struct wtpman *wtpman = (struct wtpman *) wtpman_arg; - struct conn *conn = wtpman->conn; + struct cw_Conn *conn = wtpman->conn; uint8_t data[1001]; @@ -271,7 +271,7 @@ void *wtpman_run_data(void *wtpman_arg) } -int cw_run_state_machine(struct conn *conn, time_t * timer) +int cw_run_state_machine(struct cw_Conn *conn, time_t * timer) { int timerval; @@ -326,7 +326,7 @@ static void *wtpman_main(void *arg) int rc; time_t timer; char sock_buf[SOCK_ADDR_BUFSIZE]; - struct conn *conn; + struct cw_Conn *conn; int last_state; struct wtpman *wtpman = (struct wtpman *) arg; diff --git a/src/ac/wtpman.h b/src/ac/wtpman.h index 418d007f..eb33503f 100644 --- a/src/ac/wtpman.h +++ b/src/ac/wtpman.h @@ -15,7 +15,7 @@ struct wtpman { pthread_t thread; - struct conn *conn; + struct cw_Conn *conn; /* wtp data */ diff --git a/src/cw/Makefile b/src/cw/Makefile index 469f04c4..798891ff 100644 --- a/src/cw/Makefile +++ b/src/cw/Makefile @@ -72,10 +72,11 @@ CWSRC=\ cw_type_word.c\ cw_type_sysptr.c\ cw_write_descriptor_subelem.c\ - cw_read_from.c \ cw_write_radio_element.c\ cw_detect_nat.c\ +#cw_read_from.c \ + KTVSRC=\ cw_ktv_add.c\ cw_ktv_cast.c\ @@ -202,9 +203,9 @@ MISCSRC=\ md5sum.c\ mod.c\ msgset.c\ - netconn.c\ send.c\ strheap.c\ + netconn.c\ DTLSSRC+=\ dtls_bio.c\ diff --git a/src/cw/conn.h b/src/cw/conn.h index 5acea0fa..f130f1c9 100644 --- a/src/cw/conn.h +++ b/src/cw/conn.h @@ -56,7 +56,7 @@ struct cw_action_in; /** * Connection Object */ -struct conn { +struct cw_Conn { int sock; struct sockaddr_storage addr; @@ -106,7 +106,7 @@ struct conn { /** Counter for mandatory message elements */ - struct avltree *mand; +/* struct avltree *mand;*/ /** Actionsdefs - this defines the possible actions for @@ -154,19 +154,19 @@ struct conn { /* receive and send methods */ - int (*recv_packet) (struct conn *, uint8_t *, int); - int (*recv_packet_peek) (struct conn *, uint8_t *, int); - int (*send_packet) (struct conn *, const uint8_t *, int); + int (*recv_packet) (struct cw_Conn*, uint8_t *, int); + int (*recv_packet_peek) (struct cw_Conn*, uint8_t *, int); + int (*send_packet) (struct cw_Conn*, const uint8_t *, int); /* -// int (*recv_data_packet) (struct conn *, uint8_t *,int); -// int (*send_data_packet) (struct conn *, const uint8_t *, int); +// int (*recv_data_packet) (struct cw_Conn*, uint8_t *,int); +// int (*send_data_packet) (struct cw_Conn*, const uint8_t *, int); */ - int (*readfrom) (struct conn *, uint8_t *, int, struct sockaddr_storage *); - int (*read) (struct conn *, uint8_t *, int); - int (*write) (struct conn *, const uint8_t *, int); + int (*readfrom) (struct cw_Conn*, uint8_t *, int, struct sockaddr_storage *); + int (*read) (struct cw_Conn*, uint8_t *, int); + int (*write) (struct cw_Conn*, const uint8_t *, int); /* -// int (*write_data) (struct conn *, const uint8_t *, int); +// int (*write_data) (struct cw_Conn*, const uint8_t *, int); */ /* optional packet queue */ uint8_t **q; @@ -179,14 +179,14 @@ struct conn { int cur_packet_pos; /* dtls stuff */ - int (*dtls_start) (struct conn *); - int (*dtls_accept) (struct conn *); + int (*dtls_start) (struct cw_Conn*); + int (*dtls_accept) (struct cw_Conn*); bstr16_t dtls_psk; int dtls_psk_enable; int dtls_dhbits; - int (*dtls_get_psk)(struct conn *,const char *user,uint8_t**psk, int *len); + int (*dtls_get_psk)(struct cw_Conn*,const char *user,uint8_t**psk, int *len); struct cw_Mod *cmod, *bmod; @@ -229,8 +229,8 @@ struct conn { int strict_hdr; - int (*process_packet)(struct conn *conn, uint8_t * packet, int len,struct sockaddr *from); - int (*process_message)(struct conn *conn, uint8_t * rawmsg, int rawlen, + int (*process_packet)(struct cw_Conn*conn, uint8_t * packet, int len,struct sockaddr *from); + int (*process_message)(struct cw_Conn*conn, uint8_t * rawmsg, int rawlen, struct sockaddr *from); @@ -238,16 +238,17 @@ struct conn { void * mods; - int (*msg_start)(struct conn *conn,struct cw_action_in *a,uint8_t*data,int len,struct sockaddr *from); - int (*msg_end)(struct conn *conn,struct cw_action_in *a,uint8_t*elem,int len,struct sockaddr *from); + int (*msg_start)(struct cw_Conn*conn,struct cw_action_in *a,uint8_t*data,int len,struct sockaddr *from); + int (*msg_end)(struct cw_Conn*conn,struct cw_action_in *a,uint8_t*elem,int len,struct sockaddr *from); - int (*elem_end)(struct conn *conn,struct cw_action_in *a,int afrc,uint8_t*elem,int len,struct sockaddr *from); + int (*elem_end)(struct cw_Conn*conn,struct cw_action_in *a,int afrc,uint8_t*elem,int len,struct sockaddr *from); /* -// void (*actions_registered)(struct conn *conn); +// void (*actions_registered)(struct cw_Conn*conn); */ }; +typedef struct cw_Conn cw_Conn_t; @@ -255,76 +256,76 @@ struct conn { -struct conn *conn_create(int sock, struct sockaddr *addr, int qsize); -struct conn *conn_create_noq(int sock, struct sockaddr *addr); +struct cw_Conn*conn_create(int sock, struct sockaddr *addr, int qsize); +struct cw_Conn*conn_create_noq(int sock, struct sockaddr *addr); -extern int conn_send_cwmsg(struct conn *conn, struct cwmsg *cwmsg); +extern int conn_send_cwmsg(struct cw_Conn*conn, struct cwmsg *cwmsg); /* -//extern int conn_process_packet(struct conn *conn, uint8_t * packet, int len, +//extern int conn_process_packet(struct cw_Conn*conn, uint8_t * packet, int len, // int (*cb) (void *, uint8_t *,int len), void *cbarg); */ -extern int conn_process_packet(struct conn *conn, uint8_t * packet, int len,struct sockaddr *from); -extern int process_message(struct conn *conn, uint8_t * rawmsg, int rawlen, +extern int conn_process_packet(struct cw_Conn*conn, uint8_t * packet, int len,struct sockaddr *from); +extern int process_message(struct cw_Conn*conn, uint8_t * rawmsg, int rawlen, struct sockaddr *from); -extern uint8_t *conn_get_message(struct conn *conn); +extern uint8_t *conn_get_message(struct cw_Conn*conn); -extern int conn_send_packet(struct conn *conn, const uint8_t * buffer, int len); -extern int conn_send_data_packet(struct conn * conn, const uint8_t * buffer, int len); +extern int conn_send_packet(struct cw_Conn*conn, const uint8_t * buffer, int len); +extern int conn_send_data_packet(struct cw_Conn* conn, const uint8_t * buffer, int len); -extern void conn_destroy(struct conn *conn); +extern void conn_destroy(struct cw_Conn*conn); -uint8_t *conn_q_get_packet(struct conn *conn); -extern int conn_q_recv_packet(struct conn *conn, uint8_t * buffer, int len); -extern int conn_q_recv_packet_peek(struct conn *conn, uint8_t * buffer, int len); +uint8_t *conn_q_get_packet(struct cw_Conn*conn); +extern int conn_q_recv_packet(struct cw_Conn*conn, uint8_t * buffer, int len); +extern int conn_q_recv_packet_peek(struct cw_Conn*conn, uint8_t * buffer, int len); -extern int conn_recv_packet(struct conn *conn, uint8_t * buf, int len); -extern int conn_recv_packet_peek(struct conn *conn, uint8_t * buf, int len); +extern int conn_recv_packet(struct cw_Conn*conn, uint8_t * buf, int len); +extern int conn_recv_packet_peek(struct cw_Conn*conn, uint8_t * buf, int len); -extern int conn_send_response(struct conn *conn, struct cwmsg *cwmsg, int seqnum); -extern struct cwrmsg *conn_get_response(struct conn *conn); +extern int conn_send_response(struct cw_Conn*conn, struct cwmsg *cwmsg, int seqnum); +extern struct cwrmsg *conn_get_response(struct cw_Conn*conn); #define conn_get_next_seqnum(conn) (conn->seqnum=((conn->seqnum+1)&0xff)) #define conn_get_last_seqnum(conn) (conn->seqnum&0xff) -void conn_q_add_packet(struct conn *conn, uint8_t * packet, int len); +void conn_q_add_packet(struct cw_Conn*conn, uint8_t * packet, int len); struct image_identifier; struct cwimage_data; -extern void conn_prepare_request(struct conn *conn, int type); -extern int conn_prepare_image_data_request(struct conn *conn, struct cwimage_data *, +extern void conn_prepare_request(struct cw_Conn*conn, int type); +extern int conn_prepare_image_data_request(struct cw_Conn*conn, struct cwimage_data *, struct image_identifier *id); /* -//extern void conn_detect_capwap(struct conn *conn, struct wtpinfo *wtpinfo); +//extern void conn_detect_capwap(struct cw_Conn*conn, struct wtpinfo *wtpinfo); */ -struct cwrmsg *conn_send_request(struct conn *conn); -struct cwrmsg *conn_wait_for_message(struct conn *conn, time_t timer); +struct cwrmsg *conn_send_request(struct cw_Conn*conn); +struct cwrmsg *conn_wait_for_message(struct cw_Conn*conn, time_t timer); -struct cwrmsg *conn_wait_for_request(struct conn *conn, int *msglist, time_t timer); +struct cwrmsg *conn_wait_for_request(struct cw_Conn*conn, int *msglist, time_t timer); -int conn_q_wait_packet(struct conn * conn, int seconds); +int conn_q_wait_packet(struct cw_Conn* conn, int seconds); #define conn_is_error(conn) (conn->dtls_error) -void conn_init(struct conn *conn); +void conn_init(struct cw_Conn*conn); -extern int cw_read_messages(struct conn *conn); +extern int cw_read_messages(struct cw_Conn*conn); -extern int conn_recvfrom_packet(struct conn *conn, uint8_t * buf, int len, +extern int conn_recvfrom_packet(struct cw_Conn*conn, uint8_t * buf, int len, struct sockaddr_storage *from); -int conn_send_msg(struct conn * conn, uint8_t *rawmsg); -int cw_read_from(struct conn * conn, struct sockaddr_storage * from); +int conn_send_msg(struct cw_Conn* conn, uint8_t *rawmsg); +int cw_read_from(struct cw_Conn* conn, struct sockaddr_storage * from); -int conn_send_msg(struct conn *conn, uint8_t * rawmsg); +int conn_send_msg(struct cw_Conn *conn, uint8_t * rawmsg); -void conn_clear_upd(struct conn *conn, int merge); +void conn_clear_upd(struct cw_Conn*conn, int merge); #endif /* __CONN_H */ diff --git a/src/cw/conn_create.c b/src/cw/conn_create.c index 90a1a9fa..23ea2387 100644 --- a/src/cw/conn_create.c +++ b/src/cw/conn_create.c @@ -45,10 +45,10 @@ * for asynchronous operation. * To create a conn object without queue functionallity use #conn_create_noq. */ -struct conn * conn_create(int sock, struct sockaddr * addr, int qsize) +struct cw_Conn * conn_create(int sock, struct sockaddr * addr, int qsize) { - struct conn * conn; - conn = malloc(sizeof (struct conn)); + struct cw_Conn * conn; + conn = malloc(sizeof (struct cw_Conn )); if (!conn) return NULL; diff --git a/src/cw/conn_create_noq.c b/src/cw/conn_create_noq.c index 95e8b7de..1de682d6 100644 --- a/src/cw/conn_create_noq.c +++ b/src/cw/conn_create_noq.c @@ -36,10 +36,10 @@ * @retval 1 Success * @retval 0 failure, conslt errno for more details */ -struct conn * conn_create_noq(int sock, struct sockaddr * addr) +struct cw_Conn * conn_create_noq(int sock, struct sockaddr * addr) { - struct conn * conn; - conn = malloc(sizeof (struct conn)); + struct cw_Conn * conn; + conn = malloc(sizeof (struct cw_Conn )); if (!conn) return NULL; diff --git a/src/cw/conn_destroy.c b/src/cw/conn_destroy.c index f346fc15..fc3c3bc5 100644 --- a/src/cw/conn_destroy.c +++ b/src/cw/conn_destroy.c @@ -28,7 +28,7 @@ * Destroy a conn object * @param object to destroy */ -void conn_destroy(struct conn * conn) +void conn_destroy(struct cw_Conn * conn) { if (conn->fragman) fragman_destroy(conn->fragman); diff --git a/src/cw/conn_init.c b/src/cw/conn_init.c index 7f6f12ac..b24c396a 100644 --- a/src/cw/conn_init.c +++ b/src/cw/conn_init.c @@ -47,9 +47,9 @@ static int header_len(struct cw_ElemHandler * handler) * Basic initialization of a conn object * @param conn conn object to initialize */ -void conn_init(struct conn * conn) +void conn_init(struct cw_Conn * conn) { - memset(conn,0,sizeof(struct conn)); + memset(conn,0,sizeof(struct cw_Conn )); conn->retransmit_interval=CAPWAP_RETRANSMIT_INTERVAL; conn->max_retransmit=CAPWAP_MAX_RETRANSMIT; conn->wait_dtls=CAPWAP_WAIT_DTLS; diff --git a/src/cw/conn_process_packet.c b/src/cw/conn_process_packet.c index 7853e9a7..e3affebc 100644 --- a/src/cw/conn_process_packet.c +++ b/src/cw/conn_process_packet.c @@ -42,7 +42,7 @@ /** * Init response message header */ -void cw_init_response(struct conn *conn, uint8_t * req) +void cw_init_response(struct cw_Conn *conn, uint8_t * req) { uint8_t *buffer; int shbytes, dhbytes; @@ -69,7 +69,7 @@ void cw_init_response(struct conn *conn, uint8_t * req) cw_set_msg_flags(dmsgptr, 0); } -void cw_init_request(struct conn *conn, int msg_id) +void cw_init_request(struct cw_Conn *conn, int msg_id) { uint8_t *buffer = conn->req_buffer; uint8_t *msgptr; @@ -97,7 +97,7 @@ void cw_init_request(struct conn *conn, int msg_id) cw_set_msg_elems_len(msgptr, 0); } -void cw_init_data_msg(struct conn *conn) +void cw_init_data_msg(struct cw_Conn *conn) { uint8_t *buffer = conn->req_buffer; cw_set_dword(buffer + 0, 0); @@ -114,7 +114,7 @@ void cw_init_data_msg(struct conn *conn) /** * send a response */ -int cw_send_response(struct conn *conn, uint8_t * rawmsg, int len) +int cw_send_response(struct cw_Conn *conn, uint8_t * rawmsg, int len) { int rc; cw_init_response(conn, rawmsg); @@ -135,7 +135,7 @@ int cw_send_response(struct conn *conn, uint8_t * rawmsg, int len) * @param result_code result code to send * @return 1 */ -int cw_send_error_response(struct conn *conn, uint8_t * rawmsg, +int cw_send_error_response(struct cw_Conn *conn, uint8_t * rawmsg, uint32_t result_code) { uint8_t *out, *dst; @@ -156,7 +156,7 @@ int cw_send_error_response(struct conn *conn, uint8_t * rawmsg, } -static struct cw_MsgSet *load_msg_set(struct conn *conn, uint8_t * rawmsg, +static struct cw_MsgSet *load_msg_set(struct cw_Conn *conn, uint8_t * rawmsg, int len, int elems_len, struct sockaddr *from) { @@ -188,7 +188,7 @@ static struct cw_MsgSet *load_msg_set(struct conn *conn, uint8_t * rawmsg, } /* -int cw_in_check_generic(struct conn *conn, struct cw_action_in *a, uint8_t * data, +int cw_in_check_generic(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len,struct sockaddr *from) { // if (cw_is_request(a->msg_id)){ @@ -201,7 +201,7 @@ int cw_in_check_generic(struct conn *conn, struct cw_action_in *a, uint8_t * dat */ /* -void cw_read_elem(struct cw_ElemHandler * handler, struct conn * conn, +void cw_read_elem(struct cw_ElemHandler * handler, struct cw_Conn * conn, uint8_t * elem_data, int elem_len, struct sockaddr * from){ mavldata_t data, *result; char str[30]; @@ -215,7 +215,7 @@ void cw_read_elem(struct cw_ElemHandler * handler, struct conn * conn, */ -static int process_elements(struct conn *conn, uint8_t * rawmsg, int len, +static int process_elements(struct cw_Conn *conn, uint8_t * rawmsg, int len, struct sockaddr *from) { mavl_t mand_found; @@ -387,7 +387,7 @@ static int process_elements(struct conn *conn, uint8_t * rawmsg, int len, message->type, message->name); - + params.cfg = cw_cfg_create(); cw_decode_elements(¶ms,elems_ptr, elems_len); exit(0); @@ -452,7 +452,7 @@ static int process_elements(struct conn *conn, uint8_t * rawmsg, int len, -int process_message(struct conn *conn, uint8_t * rawmsg, int rawlen, +int process_message(struct cw_Conn *conn, uint8_t * rawmsg, int rawlen, struct sockaddr *from) { char sock_buf[SOCK_ADDR_BUFSIZE]; @@ -526,7 +526,7 @@ int process_message(struct conn *conn, uint8_t * rawmsg, int rawlen, * @param packet pointer to packet data * @param len lenght of packet data */ -int conn_process_packet2(struct conn *conn, uint8_t * packet, int len, +int conn_process_packet2(struct cw_Conn *conn, uint8_t * packet, int len, struct sockaddr *from) { char sock_buf[SOCK_ADDR_BUFSIZE]; @@ -622,7 +622,7 @@ int conn_process_packet2(struct conn *conn, uint8_t * packet, int len, return conn->process_message(conn, packet, len, from); } -int conn_process_packet(struct conn *conn, uint8_t * packet, int len, +int conn_process_packet(struct cw_Conn *conn, uint8_t * packet, int len, struct sockaddr *from) { @@ -633,7 +633,7 @@ int conn_process_packet(struct conn *conn, uint8_t * packet, int len, } -int conn_process_data_packet(struct conn *conn, uint8_t * packet, int len, +int conn_process_data_packet(struct cw_Conn *conn, uint8_t * packet, int len, struct sockaddr *from) { @@ -658,7 +658,7 @@ int conn_process_data_packet(struct conn *conn, uint8_t * packet, int len, /** * Used as main message loop */ -int cw_read_messages(struct conn *conn) +int cw_read_messages(struct cw_Conn *conn) { uint8_t buf[2024]; int len = 2024; diff --git a/src/cw/conn_q_add_packet.c b/src/cw/conn_q_add_packet.c index f3c2a7c6..1ad61e99 100644 --- a/src/cw/conn_q_add_packet.c +++ b/src/cw/conn_q_add_packet.c @@ -25,7 +25,7 @@ #include "sock.h" -void conn_q_add_packet(struct conn * conn,uint8_t *packet,int len) +void conn_q_add_packet(struct cw_Conn * conn,uint8_t *packet,int len) { char sock_buf[SOCK_ADDR_BUFSIZE]; int qwpos = conn->qwpos; diff --git a/src/cw/conn_q_get_packet.c b/src/cw/conn_q_get_packet.c index 81c9c45e..2e26fde7 100644 --- a/src/cw/conn_q_get_packet.c +++ b/src/cw/conn_q_get_packet.c @@ -19,7 +19,7 @@ #include #include "conn.h" -uint8_t * conn_q_get_packet(struct conn * conn) +uint8_t * conn_q_get_packet(struct cw_Conn * conn) { int qrpos; struct timespec timespec; diff --git a/src/cw/conn_q_recv_packet.c b/src/cw/conn_q_recv_packet.c index cab52cd9..6cbaa290 100644 --- a/src/cw/conn_q_recv_packet.c +++ b/src/cw/conn_q_recv_packet.c @@ -22,7 +22,7 @@ #include "conn.h" -static int conn_q_recv_packet_(struct conn * conn, uint8_t * buffer,int len,int peek) +static int conn_q_recv_packet_(struct cw_Conn * conn, uint8_t * buffer,int len,int peek) { if ( !conn->cur_packet) { @@ -58,12 +58,12 @@ static int conn_q_recv_packet_(struct conn * conn, uint8_t * buffer,int len,int return conn->cur_packet_len; } -int conn_q_recv_packet(struct conn * conn, uint8_t * buffer,int len) +int conn_q_recv_packet(struct cw_Conn * conn, uint8_t * buffer,int len) { return conn_q_recv_packet_(conn,buffer,len,0); } -int conn_q_recv_packet_peek(struct conn * conn, uint8_t * buffer,int len) +int conn_q_recv_packet_peek(struct cw_Conn * conn, uint8_t * buffer,int len) { return conn_q_recv_packet_(conn,buffer,len,1); } diff --git a/src/cw/conn_q_wait_packet.c b/src/cw/conn_q_wait_packet.c index f81e20e5..5654261b 100644 --- a/src/cw/conn_q_wait_packet.c +++ b/src/cw/conn_q_wait_packet.c @@ -3,7 +3,7 @@ #include "conn.h" -int conn_q_wait_packet(struct conn * conn, int seconds) +int conn_q_wait_packet(struct cw_Conn * conn, int seconds) { struct timespec timespec; diff --git a/src/cw/conn_recv_packet.c b/src/cw/conn_recv_packet.c index 8765cb3b..8e1aa66b 100644 --- a/src/cw/conn_recv_packet.c +++ b/src/cw/conn_recv_packet.c @@ -27,7 +27,7 @@ #include "sock.h" -int conn_recv_packet_(struct conn *conn, uint8_t * buf, int len, int flags) +int conn_recv_packet_(struct cw_Conn *conn, uint8_t * buf, int len, int flags) { int n; while ((n = recv(conn->sock, (char *) buf, len, flags)) < 0) { @@ -41,7 +41,7 @@ int conn_recv_packet_(struct conn *conn, uint8_t * buf, int len, int flags) } -int conn_recvfrom_packet(struct conn *conn, uint8_t * buf, int len, +int conn_recvfrom_packet(struct cw_Conn *conn, uint8_t * buf, int len, struct sockaddr_storage *from) { int n; @@ -65,7 +65,7 @@ int conn_recvfrom_packet(struct conn *conn, uint8_t * buf, int len, #include "log.h" -int conn_recv_packet_x(struct conn *conn, uint8_t * buf, int len, int flags) +int conn_recv_packet_x(struct cw_Conn *conn, uint8_t * buf, int len, int flags) { int port; socklen_t al; @@ -104,12 +104,12 @@ int conn_recv_packet_x(struct conn *conn, uint8_t * buf, int len, int flags) /* yes, these functions could be better defined as macros in a .h file */ -int conn_recv_packet(struct conn *conn, uint8_t * buf, int len) +int conn_recv_packet(struct cw_Conn *conn, uint8_t * buf, int len) { return conn_recv_packet_x(conn, buf, len, 0); } -int conn_recv_packet_peek(struct conn *conn, uint8_t * buf, int len) +int conn_recv_packet_peek(struct cw_Conn *conn, uint8_t * buf, int len) { int rc = conn_recv_packet_(conn, buf, len, MSG_PEEK); return rc; diff --git a/src/cw/conn_send_data_packet.c b/src/cw/conn_send_data_packet.c index d9ab58ee..006dc474 100644 --- a/src/cw/conn_send_data_packet.c +++ b/src/cw/conn_send_data_packet.c @@ -29,7 +29,7 @@ #include "dbg.h" -int conn_send_data_packet(struct conn * conn, const uint8_t * buffer, int len) +int conn_send_data_packet(struct cw_Conn * conn, const uint8_t * buffer, int len) { char sock_buf[SOCK_ADDR_BUFSIZE]; int n; diff --git a/src/cw/conn_send_msg.c b/src/cw/conn_send_msg.c index 75ae9ba3..e00cf999 100644 --- a/src/cw/conn_send_msg.c +++ b/src/cw/conn_send_msg.c @@ -3,9 +3,9 @@ #include "dbg.h" #define CW_MODE_ZYXEL 7 -extern cw_send_msg(struct conn * conn,uint8_t * msg); +extern cw_send_msg(struct cw_Conn * conn,uint8_t * msg); -int conn_send_msg(struct conn * conn, uint8_t *rawmsg) +int conn_send_msg(struct cw_Conn * conn, uint8_t *rawmsg) { uint8_t * ptr; int packetlen; diff --git a/src/cw/conn_send_packet.c b/src/cw/conn_send_packet.c index 25d51167..b25ffc16 100644 --- a/src/cw/conn_send_packet.c +++ b/src/cw/conn_send_packet.c @@ -27,7 +27,7 @@ -int conn_send_packet(struct conn * conn, const uint8_t * buffer, int len) +int conn_send_packet(struct cw_Conn * conn, const uint8_t * buffer, int len) { int n; while((n=sendto( conn->sock, buffer, len, 0, diff --git a/src/cw/connlist.c b/src/cw/connlist.c index 6abf5c62..999dada8 100644 --- a/src/cw/connlist.c +++ b/src/cw/connlist.c @@ -39,24 +39,24 @@ static int cmp_by_addr_p ( const void * d1, const void *d2 ) { - struct conn * c1 = * ( void ** ) d1 ; - struct conn * c2 = * ( void ** ) d2 ; + struct cw_Conn * c1 = * ( void ** ) d1 ; + struct cw_Conn * c2 = * ( void ** ) d2 ; return sock_cmpaddr ( ( struct sockaddr* ) &c1->addr, ( struct sockaddr* ) &c2->addr, 1 ); } static int cmp_by_addr ( const void * d1, const void *d2 ) { - struct conn * c1 = * ( void ** ) d1 ; - struct conn * c2 = * ( void ** ) d2 ; + struct cw_Conn * c1 = * ( void ** ) d1 ; + struct cw_Conn * c2 = * ( void ** ) d2 ; return sock_cmpaddr ( ( struct sockaddr* ) &c1->addr, ( struct sockaddr* ) &c2->addr, 0 ); } static int cmp_by_session_id ( const void *d1, const void *d2 ) { - struct conn * c1 = *( void ** ) d1; - struct conn * c2 = *( void ** ) d2; + struct cw_Conn * c1 = *( void ** ) d1; + struct cw_Conn * c2 = *( void ** ) d2; int len1,len2; if (c1->session_id==NULL && c2->session_id==NULL) @@ -143,15 +143,15 @@ void connlist_destroy ( struct connlist * cl ) } -struct conn * connlist_get ( struct connlist * cl, const struct sockaddr * addr ) +struct cw_Conn * connlist_get ( struct connlist * cl, const struct sockaddr * addr ) { - struct conn search; + struct cw_Conn search; sock_copyaddr ( &search.addr, addr ); return mavl_get_ptr ( cl->by_addr, &search ); } -struct conn * connlist_add ( struct connlist * cl, struct conn * conn ) +struct cw_Conn * connlist_add ( struct connlist * cl, struct cw_Conn * conn ) { if ( cl->len != 0 ) if ( cl->by_addr->count >= cl->len ) @@ -161,17 +161,17 @@ struct conn * connlist_add ( struct connlist * cl, struct conn * conn ) return mavl_insert_ptr ( cl->by_addr, conn ); } -struct conn * connlist_get_by_session_id ( struct connlist *cl, struct conn * conn ) +struct cw_Conn * connlist_get_by_session_id ( struct connlist *cl, struct cw_Conn * conn ) { return mavl_get_ptr ( cl->by_session_id, conn ); } -struct conn * connlist_add_by_session_id ( struct connlist * cl, struct conn * conn ) +struct cw_Conn * connlist_add_by_session_id ( struct connlist * cl, struct cw_Conn * conn ) { return mavl_insert_ptr ( cl->by_session_id, conn ); } -void connlist_remove ( struct connlist *cl, struct conn * conn ) +void connlist_remove ( struct connlist *cl, struct cw_Conn * conn ) { void * md; md = conn; diff --git a/src/cw/connlist.h b/src/cw/connlist.h index a9abdb28..43f8e895 100644 --- a/src/cw/connlist.h +++ b/src/cw/connlist.h @@ -7,7 +7,7 @@ #include "pthread.h" struct connlist { -/* struct conn ** connlist; */ +/* struct cw_Conn ** connlist; */ struct mavl *by_addr; struct mavl *by_session_id; @@ -22,12 +22,12 @@ struct connlist *connlist_create(int len, int cmpports); void connlist_lock(struct connlist *cl); void connlist_unlock(struct connlist *cl); void conlist_destroy(struct connlist *cl); -struct conn *connlist_get(struct connlist *cl, const struct sockaddr *addr); -struct conn *connlist_add(struct connlist *cl, struct conn *conn); -void connlist_remove(struct connlist *cl, struct conn *conn); +struct cw_Conn *connlist_get(struct connlist *cl, const struct sockaddr *addr); +struct cw_Conn *connlist_add(struct connlist *cl, struct cw_Conn *conn); +void connlist_remove(struct connlist *cl, struct cw_Conn *conn); void connlist_destroy(struct connlist *cl); -struct conn * connlist_get_by_session_id(struct connlist *cl, struct conn * conn); -struct conn * connlist_add_by_session_id(struct connlist * cl, struct conn * conn); +struct cw_Conn * connlist_get_by_session_id(struct connlist *cl, struct cw_Conn * conn); +struct cw_Conn * connlist_add_by_session_id(struct connlist * cl, struct cw_Conn * conn); #endif diff --git a/src/cw/cw.h b/src/cw/cw.h index 5dfe2c4b..f12eb42d 100644 --- a/src/cw/cw.h +++ b/src/cw/cw.h @@ -327,7 +327,7 @@ int cw_put_elem_result_code(uint8_t * dst, uint32_t code); -/*extern int cw_put_ac_status(uint8_t * dst, struct cw_ac_status *s, struct conn *conn);*/ +/*extern int cw_put_ac_status(uint8_t * dst, struct cw_ac_status *s, struct cw_Conn *conn);*/ struct cw_DescriptorSubelemDef { @@ -356,12 +356,12 @@ extern int cw_read_descriptor_subelems(mavl_t store, const char * key, uint8_t * struct cw_DescriptorSubelemDef *elems); /* -int cw_read_wtp_descriptor(mavl_t mbag, struct conn *conn, +int cw_read_wtp_descriptor(mavl_t mbag, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed); */ -int cw_read_wtp_descriptor(mavl_t mbag, struct conn *conn, +int cw_read_wtp_descriptor(mavl_t mbag, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed); @@ -372,7 +372,7 @@ int cw_write_radio_element(struct cw_ElemHandler * handler, struct cw_ElemHandle uint8_t * dst); -extern int cw_read_wtp_descriptor_7(mavl_t mbag, struct conn *conn, +extern int cw_read_wtp_descriptor_7(mavl_t mbag, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed); @@ -384,7 +384,7 @@ int cw_read_ac_descriptor(mavl_t store, struct cw_DescriptorSubelemDef *allowed); -int cw_setup_dtls(struct conn * conn, mavl_t cfg, const char *prefix, char * default_cipher); +int cw_setup_dtls(struct cw_Conn * conn, mavl_t cfg, const char *prefix, char * default_cipher); @@ -444,11 +444,11 @@ int cw_out_radio_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerP int cw_out_radio_generic_struct(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params , uint8_t * dst); -extern int cw_in_wtp_reboot_statistics(struct conn *conn, struct cw_action_in *a, +extern int cw_in_wtp_reboot_statistics(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); -extern int cw_in_wtp_board_data(struct conn *conn, struct cw_action_in *a, uint8_t * data, +extern int cw_in_wtp_board_data(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); /* @@ -457,24 +457,24 @@ int cw_in_vendor_specific_payload(struct cw_ElemHandler *handler, uint8_t * data, int len); */ -extern int cw_in_capwap_control_ip_address(struct conn *conn, struct cw_action_in *a, +extern int cw_in_capwap_control_ip_address(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); -extern int cw_in_capwap_local_ipv4_address(struct conn *conn, struct cw_action_in *a, +extern int cw_in_capwap_local_ipv4_address(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); -extern int cw_in_capwap_local_ipv6_address(struct conn *conn, struct cw_action_in *a, +extern int cw_in_capwap_local_ipv6_address(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); -extern int cw_in_radio_operational_state(struct conn *conn, struct cw_action_in *a, +extern int cw_in_radio_operational_state(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); /* -int cw_process_element(struct conn * conn, +int cw_process_element(struct cw_Conn * conn, struct cw_MsgData * msgdata, int proto, int vendor, uint8_t * elem, int max_len); */ @@ -502,7 +502,7 @@ int cw_process_element(struct cw_ElemHandlerParams *params, #define cw_out_capwap_local_ip_address_7 cw_out_wtp_ip_address -void cw_init_request(struct conn *conn, int msg_id); +void cw_init_request(struct cw_Conn *conn, int msg_id); /** @@ -527,16 +527,16 @@ int cw_put_elem_radio_administrative_state(uint8_t * dst, int rid, int state); int cw_put_local_ip_address(uint8_t *dst, int id, int ipv_id, int ipv6_id, uint8_t *src, int len); -int cw_detect_nat(struct conn *conn); +int cw_detect_nat(struct cw_Conn *conn); uint8_t *cw_init_data_keep_alive_msg(uint8_t * buffer,uint8_t *rmac); -/*int cw_out_radio_generic(struct conn *conn, struct cw_action_out *a, uint8_t * dst);*/ +/*int cw_out_radio_generic(struct cw_Conn *conn, struct cw_action_out *a, uint8_t * dst);*/ int cw_put_elem_session_id(uint8_t *dst, uint8_t *session_id, int len); int cw_result_is_ok( int rc ); -int cw_put_msg(struct conn *conn, uint8_t * rawout); +int cw_put_msg(struct cw_Conn *conn, uint8_t * rawout); /** * @} diff --git a/src/cw/cw_decode_msg.c b/src/cw/cw_decode_msg.c index 8ad71a35..4e1c1710 100644 --- a/src/cw/cw_decode_msg.c +++ b/src/cw/cw_decode_msg.c @@ -66,10 +66,8 @@ int cw_decode_element(struct cw_ElemHandlerParams *params, int proto, return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT; } - printf ("USING HANDLER TO DECODE: %d %s\n",handler->id,handler->name); rc = handler->get(handler, params, data, len); - return rc; } @@ -123,4 +121,7 @@ int cw_decode_elements(struct cw_ElemHandlerParams * params, uint8_t * elems_ptr } + mavl_destroy(mand_found); + mlist_destroy(unrecognized); + return 0; } diff --git a/src/cw/cw_detect_nat.c b/src/cw/cw_detect_nat.c index f0c915c1..725dc190 100644 --- a/src/cw/cw_detect_nat.c +++ b/src/cw/cw_detect_nat.c @@ -10,7 +10,7 @@ * @retval 1 NAT detected * @retval 0 no NAT was detected */ -int cw_detect_nat(struct conn *conn) +int cw_detect_nat(struct cw_Conn *conn) { cw_Val_t * result; diff --git a/src/cw/cw_in_capwap_local_ipv6_address.c b/src/cw/cw_in_capwap_local_ipv6_address.c index 0698e448..336a962a 100644 --- a/src/cw/cw_in_capwap_local_ipv6_address.c +++ b/src/cw/cw_in_capwap_local_ipv6_address.c @@ -9,7 +9,7 @@ -int cw_in_capwap_local_ipv6_address(struct conn *conn, struct cw_action_in *a, +int cw_in_capwap_local_ipv6_address(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len,struct sockaddr *from) { struct sockaddr_in6 addr; diff --git a/src/cw/cw_in_generic.c b/src/cw/cw_in_generic.c index c7b0d5fd..6381d687 100644 --- a/src/cw/cw_in_generic.c +++ b/src/cw/cw_in_generic.c @@ -8,14 +8,43 @@ int cw_in_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * uint8_t * elem_data, int elem_len) { cw_Val_t * result; + cw_Val_t val; + cw_Type_t * type; + int n; + char strval[2048]; + + memset(&val,0,sizeof(cw_Val_t)); - if (!handler->type){ + + type = (cw_Type_t*)handler->type; + + if (!type){ cw_log(LOG_ERR,"Can't handle element: %s, no type defined",handler->name); return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT; } - result = cw_ktv_add(params->remote_cfg, handler->key, - handler->type,NULL, elem_data,elem_len); + type->read(params->local_cfg, handler->key,elem_data,elem_len,handler->param); + + +// exit(0); + +/* if (!result){ + cw_log(LOG_ERR, "Can't create kvstore element for key %s of type %s: %s", + handler->key,type->name, strerror(errno)); + return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT; + } +*/ + + + + +// n = type->to_str(&val,strval,2048); + +// printf("SETTING: %s: %s (%d)\n",handler->key,strval,n); + + +// result = cw_ktv_add(params->remote_cfg, handler->key, +// handler->type,NULL, elem_data,elem_len); // params->elem=result; return CAPWAP_RESULT_SUCCESS; } diff --git a/src/cw/cw_in_wtp_reboot_statistics.c b/src/cw/cw_in_wtp_reboot_statistics.c index 30a9ce83..398c439d 100644 --- a/src/cw/cw_in_wtp_reboot_statistics.c +++ b/src/cw/cw_in_wtp_reboot_statistics.c @@ -21,7 +21,7 @@ #include "log.h" -int cw_in_wtp_reboot_statistics(struct conn *conn, struct cw_action_in *a, uint8_t * data, +int cw_in_wtp_reboot_statistics(struct cw_Conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from) { /* diff --git a/src/cw/cw_put_msg.c b/src/cw/cw_put_msg.c index 5bfdc177..2bec95a0 100644 --- a/src/cw/cw_put_msg.c +++ b/src/cw/cw_put_msg.c @@ -36,7 +36,7 @@ * alread initilaized in buffer * Message alements are taken fom actiondef in #conn->action */ -int cw_put_msg(struct conn *conn, uint8_t * rawout) +int cw_put_msg(struct cw_Conn *conn, uint8_t * rawout) { char details[1024]; uint8_t *msgptr,*dst; @@ -174,7 +174,7 @@ printf("Elem: %d %d %d %s\n", data->proto, data->vendor, data->id, handler->name */ -int cw_put_custom_msg(struct conn *conn, uint8_t * rawout, /*mavl_conststr_t elems*/ int t) +int cw_put_custom_msg(struct cw_Conn *conn, uint8_t * rawout, /*mavl_conststr_t elems*/ int t) { /* diff --git a/src/cw/cw_read_descriptor_subelems.c b/src/cw/cw_read_descriptor_subelems.c index 6128c7b6..768072ec 100644 --- a/src/cw/cw_read_descriptor_subelems.c +++ b/src/cw/cw_read_descriptor_subelems.c @@ -22,18 +22,18 @@ #include "keys.h" -int cw_read_descriptor_subelems(mavl_t cfg, const char * parent_key, +int cw_read_descriptor_subelems(mavl_t cfg, const char *parent_key, uint8_t * data, int len, struct cw_DescriptorSubelemDef *elems) { uint32_t vendor_id; - int sublen,subtype; + int sublen, subtype; int errors = 0; int success = 0; int sub = 0; while (sub < len) { int i; - + if (len - sub < 8) { return 0; } @@ -41,25 +41,24 @@ int cw_read_descriptor_subelems(mavl_t cfg, const char * parent_key, sublen = cw_get_word(data + sub + 6); subtype = cw_get_word(data + sub + 4); - /* search sub-element */ for (i = 0; elems[i].maxlen; i++) { - - if (elems[i].type == subtype /* && elems[i].vendor_id==vendor_id*/) + if (elems[i].type == subtype) break; } - - + if (!elems[i].maxlen) { - cw_dbg_version_subelem(DBG_ELEM_ERR, "Can't handle sub-elem, vendor or type unknown", - subtype, vendor_id, data+sub+8, sublen); +/* cw_dbg_version_subelem(DBG_ELEM_ERR, + "Can't handle sub-elem, vendor or type unknown", + subtype, vendor_id, + data + sub + 8, sublen);*/ errors++; } else { int l = sublen; char dbgstr[1048]; char key[1024]; - + if (elems[i].maxlen < sublen) { cw_dbg(DBG_ELEM_ERR, "SubType %d Too long (truncating), len = %d,max. len=%d", @@ -69,15 +68,24 @@ int cw_read_descriptor_subelems(mavl_t cfg, const char * parent_key, /* vendor */ - sprintf(key,"%s/%s/%s",parent_key,elems[i].key,CW_SKEY_VENDOR); - cw_ktv_add(cfg,key,CW_TYPE_DWORD,NULL,data + sub,4); - + sprintf(key, "%s/%s/%s", parent_key, elems[i].key, + CW_SKEY_VENDOR); + cw_cfg_set_int(cfg, key, vendor_id); + + /* version */ - sprintf(key,"%s/%s/%s",parent_key,elems[i].key,CW_SKEY_VERSION); - cw_ktv_add(cfg,key,CW_TYPE_BSTR16,NULL,data+sub+8,l); - + sprintf(key, "%s/%s/%s", parent_key, elems[i].key, + CW_SKEY_VERSION); + + CW_TYPE_BSTR16->read(cfg,key,data+sub+8,l,NULL); + + sprintf(dbgstr, "%s", key); - cw_dbg_version_subelem(DBG_SUBELEM, dbgstr, subtype, vendor_id, data+sub+8,l); + + + +/* cw_dbg_version_subelem(DBG_SUBELEM, dbgstr, subtype, + vendor_id, data + sub + 8, l);*/ success++; } diff --git a/src/cw/cw_read_from.c b/src/cw/cw_read_from.c index 323c65e0..f0fd2836 100644 --- a/src/cw/cw_read_from.c +++ b/src/cw/cw_read_from.c @@ -2,7 +2,7 @@ #include "log.h" -int cw_read_from(struct conn *conn, struct sockaddr_storage *from) +int cw_read_from(struct cw_Conn *conn, struct sockaddr_storage *from) { int n; uint8_t buf[2024]; diff --git a/src/cw/cw_read_wtp_descriptor.c b/src/cw/cw_read_wtp_descriptor.c index 718640df..31163e6c 100644 --- a/src/cw/cw_read_wtp_descriptor.c +++ b/src/cw/cw_read_wtp_descriptor.c @@ -16,7 +16,7 @@ static struct cw_DescriptorSubelemDef allowed_default[] = { }; -int cw_read_wtp_descriptor(mavl_t cfg, struct conn *conn, +int cw_read_wtp_descriptor(mavl_t cfg, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed) { diff --git a/src/cw/cw_read_wtp_descriptor_7.c b/src/cw/cw_read_wtp_descriptor_7.c index e555feae..fc192e83 100644 --- a/src/cw/cw_read_wtp_descriptor_7.c +++ b/src/cw/cw_read_wtp_descriptor_7.c @@ -20,7 +20,7 @@ static struct cw_DescriptorSubelemDef allowed_default[] = { /** * Read WTP Descriptor in Cisco-Style (Draft 7) */ -int cw_read_wtp_descriptor_7(mavl_t cfg, struct conn *conn, +int cw_read_wtp_descriptor_7(mavl_t cfg, struct cw_Conn *conn, struct cw_ElemHandler *eh, uint8_t * data, int len, struct cw_DescriptorSubelemDef *allowed) { @@ -30,11 +30,10 @@ int cw_read_wtp_descriptor_7(mavl_t cfg, struct conn *conn, char key[64]; sprintf(key,"%s/%s",eh->key, CW_SKEY_MAX_RADIOS); - cw_ktv_add(cfg,key,CW_TYPE_BYTE,NULL,data,1); + cw_cfg_set_int(cfg,key,cw_get_byte(data)); sprintf(key,"%s/%s",eh->key, CW_SKEY_RADIOS_IN_USE); - cw_ktv_add(cfg,key,CW_TYPE_BYTE,NULL,data+1,1); - + cw_cfg_set_int(cfg,key,cw_get_byte(data+1)); pos = 2; diff --git a/src/cw/cw_setup_dtls.c b/src/cw/cw_setup_dtls.c index ff423080..e4ede008 100644 --- a/src/cw/cw_setup_dtls.c +++ b/src/cw/cw_setup_dtls.c @@ -3,7 +3,7 @@ -static int get_psk(struct conn *conn, const char *username, uint8_t ** psk, +static int get_psk(struct cw_Conn *conn, const char *username, uint8_t ** psk, unsigned int *len) { char key[CW_KTV_MAX_KEY_LEN]; @@ -35,7 +35,7 @@ static int get_psk(struct conn *conn, const char *username, uint8_t ** psk, * @param default_cipher * @return */ -int cw_setup_dtls(struct conn *conn, mavl_t cfg, const char *prefix, +int cw_setup_dtls(struct cw_Conn *conn, mavl_t cfg, const char *prefix, char *default_cipher) { char key[CW_KTV_MAX_KEY_LEN]; diff --git a/src/cw/cw_type_bstr16.c b/src/cw/cw_type_bstr16.c index 54d25468..17845aa5 100644 --- a/src/cw/cw_type_bstr16.c +++ b/src/cw/cw_type_bstr16.c @@ -104,6 +104,32 @@ static int cast(cw_Val_t * data) return 0; } +static int bread(cw_Cfg_t *cfg, const char * key, const uint8_t *src, int len, void *param) +{ + char *d, *dst; + dst = malloc(len*2+3); + if (dst==NULL) + return 0; + d=dst; + + if ( format_is_utf8 ( src, len) ) { + d += sprintf ( d, "%.*s", len, src ); + + } else { + d += sprintf ( d, ".x" ); + d += format_hex ( d, src,len); + } + + cw_cfg_set(cfg,key,dst); + free(dst); + return d - dst; +} + +static int bwrite(cw_Cfg_t *cfg, const char *key, const uint8_t *dst, void * param) +{ + return 0; +} + const struct cw_Type cw_type_bstr16 = { "Bstr16", /* name */ @@ -115,7 +141,10 @@ const struct cw_Type cw_type_bstr16 = { len, /* len */ data, /* data */ get_type_name, /* get_type_name */ - cast /* cast */ + cast, /* cast */ + bread, + bwrite + }; diff --git a/src/cw/cw_type_byte.c b/src/cw/cw_type_byte.c index 87d0a9ca..f18e83e0 100644 --- a/src/cw/cw_type_byte.c +++ b/src/cw/cw_type_byte.c @@ -35,6 +35,9 @@ static int put(const cw_Val_t *data, uint8_t * dst) static const char * get_guardstr(int val, const cw_ValValRange_t * valrange) { + if (valrange==NULL) + return NULL; + while(valrange->name!=NULL){ if(val>=valrange->min && val<=valrange->max) return valrange->name; @@ -121,6 +124,26 @@ static int cast(cw_Val_t * data) return 0; } +static int bread(cw_Cfg_t *cfg, const char * key, const uint8_t *src, int len, void *param) +{ + uint8_t val; + cw_ValValRange_t * valrange = (cw_ValValRange_t *) param; + const char *str; + + val = cw_get_byte(src); + str = get_guardstr(val, valrange); + if (str != NULL) + cw_cfg_set(cfg,key,str); + else + cw_cfg_set_int(cfg,key,val); + + return 1; +} + +static int bwrite(cw_Cfg_t *cfg, const char *key, const uint8_t *dst, void * param) +{ + return 0; +} const struct cw_Type cw_type_byte = { "Byte", /* name */ @@ -132,5 +155,8 @@ const struct cw_Type cw_type_byte = { len, /* len */ data, /* data */ get_type_name, /* get_type_name */ - cast + cast, + bread, + bwrite + }; diff --git a/src/cw/dbg.c b/src/cw/dbg.c index 6d5af61e..dd88ab50 100644 --- a/src/cw/dbg.c +++ b/src/cw/dbg.c @@ -211,7 +211,7 @@ static void cw_dbg_vlog_line(struct cw_LogWriter * writer, /** * Put a list of missing mandatory message elements to debug output */ -void cw_dbg_missing_mand(int level, struct conn *conn, int ** ml, int n, +void cw_dbg_missing_mand(int level, struct cw_Conn *conn, int ** ml, int n, int * a) { /* @@ -246,7 +246,7 @@ void cw_dbg_missing_mand(int level, struct conn *conn, int ** ml, int n, /** * Display a packet on for debugger */ -void cw_dbg_pkt(int level, struct conn *conn, uint8_t * packet, int len, +void cw_dbg_pkt(int level, struct cw_Conn *conn, uint8_t * packet, int len, struct sockaddr *from) { @@ -308,7 +308,7 @@ void cw_dbg_dmp(int level, const uint8_t * data, int len, const char *format, .. } -void cw_dbg_msg(int level, struct conn *conn, uint8_t * packet, int len, +void cw_dbg_msg(int level, struct cw_Conn *conn, uint8_t * packet, int len, struct sockaddr *from) { @@ -383,7 +383,7 @@ void cw_dbg(int level, const char *format, ...){ -void cw_dbg_elem(int level, struct conn *conn, int msg, +void cw_dbg_elem(int level, struct cw_Conn *conn, int msg, struct cw_ElemHandler * handler, const uint8_t * msgbuf, int len) { char vendorname[256]; diff --git a/src/cw/dbg.h b/src/cw/dbg.h index 8a49e99c..b716cebe 100644 --- a/src/cw/dbg.h +++ b/src/cw/dbg.h @@ -115,6 +115,8 @@ enum cw_dbg_levels{ DBG_CFG_DMP, + DBG_CFG_SET, + /** Debug Mods */ DBG_MOD, @@ -147,14 +149,14 @@ void cw_dbg_set_level (int level, int on); int cw_dbg_set_level_from_str(const char *level); /* -void cw_dbg_elem_(struct conn * conn, int msg, int msgelem, const uint8_t * msgbuf, int len); +void cw_dbg_elem_(struct cw_Conn * conn, int msg, int msgelem, const uint8_t * msgbuf, int len); */ /* -void cw_dbg_missing_mand(int level,struct conn *conn,cw_action_in_t ** ml,int n,cw_action_in_t *a); +void cw_dbg_missing_mand(int level,struct cw_Conn *conn,cw_action_in_t ** ml,int n,cw_action_in_t *a); */ -void cw_dbg_packet(struct conn *conn, uint8_t * packet, int len); -void cw_dbg_pkt(int level,struct conn *conn, uint8_t * packet, int len,struct sockaddr *from); +void cw_dbg_packet(struct cw_Conn *conn, uint8_t * packet, int len); +void cw_dbg_pkt(int level,struct cw_Conn *conn, uint8_t * packet, int len,struct sockaddr *from); void cw_dbg(int level, const char *format, ...); void cw_dbg_dmp(int level, const uint8_t * data, int len, const char *format, ...); @@ -199,16 +201,16 @@ void cw_dbg_dmp_(int level, const uint8_t * data, int len, const char *format, . -void cw_dbg_elem(int level, struct conn *conn, int msg, +void cw_dbg_elem(int level, struct cw_Conn *conn, int msg, struct cw_ElemHandler * handler, const uint8_t * msgbuf, int len); void cw_dbg_pkt_nc(int level,struct netconn *nc, uint8_t * packet, int len,struct sockaddr *from); -void cw_dbg_msg(int level,struct conn *conn, uint8_t * packet, int len,struct sockaddr *from); +void cw_dbg_msg(int level,struct cw_Conn *conn, uint8_t * packet, int len,struct sockaddr *from); char * cw_dbg_mkdmp(const uint8_t * data, int len); -void cw_dbg_version_subelem(int level, const char *context, int subtype, - uint32_t vendor_id, const uint8_t * vstr, int len); +//void cw_dbg_version_subelem(int level, const char *context, int subtype, +// uint32_t vendor_id, const uint8_t * vstr, int len); void cw_dbg_ktv_dump(mavl_t ktv, uint32_t dbglevel, const char *header, const char *prefix, const char *footer ); diff --git a/src/cw/dbg_strings.c b/src/cw/dbg_strings.c index 54050038..7a624566 100644 --- a/src/cw/dbg_strings.c +++ b/src/cw/dbg_strings.c @@ -62,6 +62,9 @@ struct cw_StrListElem cw_dbg_strings[] = { { DBG_DTLS_BIO, "dtls_bio" }, { DBG_DTLS_BIO_DMP, "dtls_bio_dmp"}, { DBG_DTLS_DETAIL, "dtls_detail"}, + + { DBG_CFG_SET, "cfg_set" }, + {DBG_CFG_DMP, "cfg_dmp" }, diff --git a/src/cw/dtls_bio.c b/src/cw/dtls_bio.c index fb2f8350..37062daa 100644 --- a/src/cw/dtls_bio.c +++ b/src/cw/dtls_bio.c @@ -37,7 +37,7 @@ * @param maxlen maximum number of bytes to read * @return the number of bytes read */ -int dtls_bio_read(struct conn *conn, char *out, int maxlen) +int dtls_bio_read(struct cw_Conn *conn, char *out, int maxlen) { int ret; if (conn->dtls_buffer_len == 0) { @@ -75,7 +75,7 @@ int dtls_bio_read(struct conn *conn, char *out, int maxlen) * @param len number of bytes to write * @return the number of bytes written */ -int dtls_bio_write(struct conn *conn, const char *data, int len) +int dtls_bio_write(struct cw_Conn *conn, const char *data, int len) { uint8_t buffer[4096]; int rc; diff --git a/src/cw/dtls_openssl.c b/src/cw/dtls_openssl.c index d4afea05..732d5e18 100644 --- a/src/cw/dtls_openssl.c +++ b/src/cw/dtls_openssl.c @@ -217,7 +217,7 @@ void dtls_openssl_data_destroy(struct dtls_openssl_data * d){ free(d); } -int dtls_openssl_set_certs(struct conn * conn, struct dtls_openssl_data *d) +int dtls_openssl_set_certs(struct cw_Conn * conn, struct dtls_openssl_data *d) { int rc; if (conn->dtls_key_file && conn->dtls_cert_file){ @@ -255,7 +255,7 @@ int dtls_openssl_set_certs(struct conn * conn, struct dtls_openssl_data *d) int generate_session_id(const SSL *ssl, unsigned char * id, unsigned int *id_len) { /* BIO * b = SSL_get_rbio(ssl); - struct conn * conn = b->ptr; + struct cw_Conn * conn = b->ptr; */ const char * sessid = "9123456789"; /* printf ("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMaking session id\n");*/ @@ -292,7 +292,7 @@ return 1; static unsigned int psk_server_cb(SSL *ssl,const char *identity, unsigned char * psk, unsigned int max_psk_len) { BIO * b = SSL_get_rbio(ssl); - struct conn * conn = BIO_get_data(b); /*->ptr;*/ + struct cw_Conn * conn = BIO_get_data(b); /*->ptr;*/ int l = bstr16_len(conn->dtls_psk) < max_psk_len ? bstr16_len(conn->dtls_psk) : max_psk_len; memcpy(psk,conn->dtls_psk,l); @@ -304,7 +304,7 @@ static unsigned int psk_server_cb(SSL *ssl,const char *identity, unsigned char * -struct dtls_openssl_data * dtls_openssl_data_create(struct conn * conn, const SSL_METHOD * method, BIO_METHOD * bio) +struct dtls_openssl_data * dtls_openssl_data_create(struct cw_Conn * conn, const SSL_METHOD * method, BIO_METHOD * bio) { int rc; struct dtls_openssl_data * d = malloc(sizeof(struct dtls_openssl_data)); @@ -507,7 +507,7 @@ out_err: /*//#include */ #include -int dtls_openssl_shutdown(struct conn *conn) +int dtls_openssl_shutdown(struct cw_Conn *conn) { struct dtls_openssl_data * d ; @@ -552,7 +552,7 @@ int dtls_openssl_generate_cookie(SSL *ssl, unsigned char *cookie, unsigned int * char sock_buf2[SOCK_ADDR_BUFSIZE]; BIO * b = SSL_get_rbio(ssl); - struct conn * conn = BIO_get_data(b); /*b->ptr;*/ + struct cw_Conn * conn = BIO_get_data(b); /*b->ptr;*/ cw_rand(conn->dtls_cookie,sizeof(conn->dtls_cookie)); @@ -571,8 +571,8 @@ int dtls_openssl_verify_cookie(SSL *ssl, const unsigned char *cookie, unsigned i char sock_buf[SOCK_ADDR_BUFSIZE]; char sock_buf2[SOCK_ADDR_BUFSIZE]; BIO * b = SSL_get_rbio(ssl); - /*struct conn * conn = b->ptr;*/ - struct conn * conn = BIO_get_data(b); /*b->ptr;*/ + /*struct cw_Conn * conn = b->ptr;*/ + struct cw_Conn * conn = BIO_get_data(b); /*b->ptr;*/ cw_dbg(DBG_DTLS,"Verifying DTLS cookie from %s: %s", sock_addr2str(&conn->addr,sock_buf),sock_hwaddr2idstr(conn->dtls_cookie,len,sock_buf2)); @@ -588,7 +588,7 @@ int dtls_openssl_verify_cookie(SSL *ssl, const unsigned char *cookie, unsigned i } -int dtls_openssl_read(struct conn * conn, uint8_t *buffer, int len) +int dtls_openssl_read(struct cw_Conn * conn, uint8_t *buffer, int len) { struct dtls_openssl_data * d = conn->dtls_data; int rc = SSL_read(d->ssl,buffer,len); @@ -599,7 +599,7 @@ int dtls_openssl_read(struct conn * conn, uint8_t *buffer, int len) return rc; } -int dtls_openssl_write(struct conn * conn, const uint8_t *buffer, int len) +int dtls_openssl_write(struct cw_Conn * conn, const uint8_t *buffer, int len) { struct dtls_openssl_data * d = conn->dtls_data; int rc = SSL_write(d->ssl,buffer,len); diff --git a/src/cw/dtls_openssl.h b/src/cw/dtls_openssl.h index 99ffc889..ec80de56 100644 --- a/src/cw/dtls_openssl.h +++ b/src/cw/dtls_openssl.h @@ -48,20 +48,20 @@ extern int dtls_openssl_init(); #define CAPWAP_CIPHER "ALL" -struct dtls_openssl_data * dtls_openssl_data_create(struct conn * conn, const SSL_METHOD * method, BIO_METHOD * bio); +struct dtls_openssl_data * dtls_openssl_data_create(struct cw_Conn * conn, const SSL_METHOD * method, BIO_METHOD * bio); extern int dtls_openssl_psk_key2bn(const char *psk_key, unsigned char *psk, unsigned int max_psk_len); extern int dtls_openssl_generate_cookie(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len); extern int dtls_openssl_verify_cookie(SSL *ssl, const unsigned char *cookie, unsigned int cookie_len); -extern int dtls_openssl_read(struct conn * conn, uint8_t *buffer, int len); -extern int dtls_openssl_write(struct conn * conn, const uint8_t *buffer, int len); -extern int dtls_openssl_connect(struct conn * conn); -extern const char * dtls_openssl_get_cipher(struct conn * conn, char *dst); +extern int dtls_openssl_read(struct cw_Conn * conn, uint8_t *buffer, int len); +extern int dtls_openssl_write(struct cw_Conn * conn, const uint8_t *buffer, int len); +extern int dtls_openssl_connect(struct cw_Conn * conn); +extern const char * dtls_openssl_get_cipher(struct cw_Conn * conn, char *dst); extern int dtls_openssl_log_error(SSL * ssl, int rc, const char *txt); -extern int dtls_openssl_accept(struct conn * conn); -extern int dtls_openssl_set_certs(struct conn * conn, struct dtls_openssl_data *d); +extern int dtls_openssl_accept(struct cw_Conn * conn); +extern int dtls_openssl_set_certs(struct cw_Conn * conn, struct dtls_openssl_data *d); @@ -77,7 +77,7 @@ extern int dtls_openssl_log_error_queue(const char *txt); extern BIO_METHOD * dtls_openssl_bio_method(); -extern int dtls_openssl_shutdown(struct conn *conn); +extern int dtls_openssl_shutdown(struct cw_Conn *conn); /** * @} diff --git a/src/cw/dtls_openssl_accept.c b/src/cw/dtls_openssl_accept.c index 2d346aa2..101d4654 100644 --- a/src/cw/dtls_openssl_accept.c +++ b/src/cw/dtls_openssl_accept.c @@ -24,7 +24,7 @@ #include "dtls_openssl.h" #include "log.h" -int dtls_openssl_accept(struct conn *conn) +int dtls_openssl_accept(struct cw_Conn *conn) { struct dtls_openssl_data *d; char sock_buf[SOCK_ADDR_BUFSIZE]; diff --git a/src/cw/dtls_openssl_bio.c b/src/cw/dtls_openssl_bio.c index 6a6c50a3..413f9366 100644 --- a/src/cw/dtls_openssl_bio.c +++ b/src/cw/dtls_openssl_bio.c @@ -75,16 +75,16 @@ BIO_METHOD *dtls_openssl_bio_method() int dtls_openssl_bio_write(BIO * b, const char *data, int len) { -/* struct conn *conn = b->ptr;*/ - struct conn *conn = BIO_get_data(b); +/* struct cw_Conn *conn = b->ptr;*/ + struct cw_Conn *conn = BIO_get_data(b); return dtls_bio_write(conn, data, len); } int dtls_openssl_bio_read(BIO * b, char *out, int maxlen) { - /*struct conn *conn = b->ptr;*/ - struct conn *conn = BIO_get_data(b); + /*struct cw_Conn *conn = b->ptr;*/ + struct cw_Conn *conn = BIO_get_data(b); return dtls_bio_read(conn, out, maxlen); } @@ -123,8 +123,8 @@ int dtls_openssl_bio_free(BIO * bio) long dtls_openssl_bio_ctrl(BIO * b, int cmd, long num, void *ptr) { - /*struct conn *conn = b->ptr;*/ - struct conn *conn = BIO_get_data(b); + /*struct cw_Conn *conn = b->ptr;*/ + struct cw_Conn *conn = BIO_get_data(b); long ret = 1; switch (cmd) { diff --git a/src/cw/dtls_openssl_connect.c b/src/cw/dtls_openssl_connect.c index 1384b26e..0d30353c 100644 --- a/src/cw/dtls_openssl_connect.c +++ b/src/cw/dtls_openssl_connect.c @@ -15,8 +15,8 @@ { int l; BIO *b = SSL_get_rbio(ssl); - /*struct conn *conn = b->ptr;*/ - struct conn * conn = BIO_get_data(b); /*b->ptr;*/ + /*struct cw_Conn *conn = b->ptr;*/ + struct cw_Conn * conn = BIO_get_data(b); /*b->ptr;*/ snprintf(identity, max_identity_len, "CLient_identity"); @@ -28,7 +28,7 @@ int -dtls_openssl_connect(struct conn *conn) +dtls_openssl_connect(struct cw_Conn *conn) { struct dtls_openssl_data *d; int rc; diff --git a/src/cw/dtls_openssl_get_cipher.c b/src/cw/dtls_openssl_get_cipher.c index 3f9e3d1e..790201cc 100644 --- a/src/cw/dtls_openssl_get_cipher.c +++ b/src/cw/dtls_openssl_get_cipher.c @@ -19,7 +19,7 @@ #include "dtls_openssl.h" -const char * dtls_openssl_get_cipher(struct conn * conn, char *dst) +const char * dtls_openssl_get_cipher(struct cw_Conn * conn, char *dst) { struct dtls_openssl_data * d; const SSL_CIPHER * c; diff --git a/src/cw/send.c b/src/cw/send.c index 60b7dc64..17529613 100644 --- a/src/cw/send.c +++ b/src/cw/send.c @@ -37,7 +37,7 @@ -int conn_send_data_msg(struct conn * conn, uint8_t *rawmsg,int len) +int conn_send_data_msg(struct cw_Conn * conn, uint8_t *rawmsg,int len) { int packetlen = len; int fragoffset; @@ -93,7 +93,7 @@ int conn_send_data_msg(struct conn * conn, uint8_t *rawmsg,int len) #define MAX_MTU 9500 int -cw_send_msg( struct conn * conn, uint8_t *msg) +cw_send_msg( struct cw_Conn * conn, uint8_t *msg) { uint8_t buf[MAX_MTU]; int fragoffset,hlen,mtu; @@ -166,7 +166,7 @@ cw_send_msg( struct conn * conn, uint8_t *msg) -int cw_send_request(struct conn *conn,int msg_id) +int cw_send_request(struct cw_Conn *conn,int msg_id) { time_t timer; int i; @@ -218,7 +218,7 @@ int cw_send_request(struct conn *conn,int msg_id) /*// XXX find a better name for this function */ -int cw_send_custom_request_2(struct conn *conn,int msg_id) +int cw_send_custom_request_2(struct cw_Conn *conn,int msg_id) { diff --git a/src/mod/capwap/capwap_actions_ac.c b/src/mod/capwap/capwap_actions_ac.c index d6578948..fd428542 100644 --- a/src/mod/capwap/capwap_actions_ac.c +++ b/src/mod/capwap/capwap_actions_ac.c @@ -29,7 +29,7 @@ #include "cw/mavltypes.h" -static int postprocess_join_request(struct conn *conn); +static int postprocess_join_request(struct cw_Conn *conn); static cw_ValStruct_t wtp_reboot_statistics[] = { @@ -772,7 +772,7 @@ static struct cw_MsgDef messages[] = { }; -static int postprocess_join_request(struct conn *conn) +static int postprocess_join_request(struct cw_Conn *conn) { cw_Val_t * result; diff --git a/src/mod/capwap/mod_capwap_ac.c b/src/mod/capwap/mod_capwap_ac.c index 097b0ab1..9bf6c10b 100644 --- a/src/mod/capwap/mod_capwap_ac.c +++ b/src/mod/capwap/mod_capwap_ac.c @@ -34,7 +34,7 @@ static int init(struct cw_Mod * mod, mavl_t global_cfg, int role) } -static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len, +static int detect(struct cw_Conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len, struct sockaddr *from, int mode) { if (mode != CW_MOD_MODE_CAPWAP) @@ -44,7 +44,7 @@ static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int ele } -int static setup_cfg(struct conn * conn) +int static setup_cfg(struct cw_Conn * conn) { int security; diff --git a/src/mod/cisco/cisco_actions_ac.c b/src/mod/cisco/cisco_actions_ac.c index c269abc8..62e86389 100644 --- a/src/mod/cisco/cisco_actions_ac.c +++ b/src/mod/cisco/cisco_actions_ac.c @@ -756,10 +756,13 @@ static struct cw_ElemHandler handlers70[] = { CW_CISCO_BOARD_DATA_OPTIONS, /* Element ID */ CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */ 4,4, /* min/max length */ - cisco_wtp_board_data_options, /* type */ + CW_TYPE_STRUCT, /* type */ "cisco/wtp-board-data/options", /* Key */ - cw_in_generic_struct, /* handler */ - cw_out_generic_struct /* put */ + cw_in_generic, /* handler */ + cw_out_generic, /* put */ + NULL, + NULL, + cisco_wtp_board_data_options, /* struct datae */ } , { @@ -2141,7 +2144,7 @@ static cw_StateMachineState_t statemachine_states[]={ }; -static int (*postprocess_join_request_parent)(struct conn * conn); +static int (*postprocess_join_request_parent)(struct cw_Conn * conn); struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode){ struct cw_MsgData * md; @@ -2161,7 +2164,7 @@ struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode){ -static void set_ac_version(struct conn * conn) +static void set_ac_version(struct cw_Conn * conn) { cw_Val_t * wtpver; char verstr[512]; @@ -2188,7 +2191,7 @@ static void set_ac_version(struct conn * conn) } } -static int postprocess_discovery(struct conn *conn) +static int postprocess_discovery(struct cw_Conn *conn) { if (conn->role == CW_ROLE_AC ){ set_ac_version(conn); @@ -2197,7 +2200,7 @@ static int postprocess_discovery(struct conn *conn) return 1; } -static int postprocess_join_request(struct conn *conn) +static int postprocess_join_request(struct cw_Conn *conn) { if (postprocess_join_request_parent!=NULL){ postprocess_join_request_parent(conn); @@ -2206,7 +2209,7 @@ static int postprocess_join_request(struct conn *conn) return 1; } -static int preprocess_join_request(struct conn *conn) +static int preprocess_join_request(struct cw_Conn *conn) { cw_Val_t * ver; int use_ac_version; diff --git a/src/mod/cisco/cisco_in_wtp_descriptor.c b/src/mod/cisco/cisco_in_wtp_descriptor.c index 75d4b968..434c0f97 100644 --- a/src/mod/cisco/cisco_in_wtp_descriptor.c +++ b/src/mod/cisco/cisco_in_wtp_descriptor.c @@ -35,7 +35,7 @@ int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPara }; - return cw_read_wtp_descriptor_7(params->remote_cfg, NULL /*params->conn*/, eh, data, len, allowed); + return cw_read_wtp_descriptor_7(params->cfg, NULL /*params->conn*/, eh, data, len, allowed); } diff --git a/src/mod/cisco/mod_cisco_ac.c b/src/mod/cisco/mod_cisco_ac.c index c164b493..eab231f7 100644 --- a/src/mod/cisco/mod_cisco_ac.c +++ b/src/mod/cisco/mod_cisco_ac.c @@ -168,7 +168,7 @@ static int init(struct cw_Mod *mod, mavl_t global_cfg, int role) return rc; } -static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len, +static int detect(struct cw_Conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len, struct sockaddr *from, int mode) { @@ -221,7 +221,7 @@ static struct cw_Mod capwap_ac = { */ -int static setup_cfg(struct conn * conn) +int static setup_cfg(struct cw_Conn * conn) { int security;