net: uip: Add support for user data in simple UDP API
Adding the user pointer to the uIP simple-udp API is vital so that we can pass the net_buf to UDP receiver callback. Change-Id: If7ee24f344fbd23eb7e0c3a99e78deb996d3667d Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This commit is contained in:
parent
7e0951982a
commit
e024dba08f
@ -109,7 +109,8 @@ simple_udp_register(struct simple_udp_connection *c,
|
||||
uint16_t local_port,
|
||||
uip_ipaddr_t *remote_addr,
|
||||
uint16_t remote_port,
|
||||
simple_udp_callback receive_callback)
|
||||
simple_udp_callback receive_callback,
|
||||
void *user_data)
|
||||
{
|
||||
|
||||
init_simple_udp();
|
||||
@ -120,6 +121,7 @@ simple_udp_register(struct simple_udp_connection *c,
|
||||
uip_ipaddr_copy(&c->remote_addr, remote_addr);
|
||||
}
|
||||
c->receive_callback = receive_callback;
|
||||
c->user_data = user_data;
|
||||
|
||||
PROCESS_CONTEXT_BEGIN(&simple_udp_process);
|
||||
c->udp_conn = udp_new(remote_addr, UIP_HTONS(remote_port), c);
|
||||
@ -173,7 +175,8 @@ PROCESS_THREAD(simple_udp_process, ev, data, buf)
|
||||
UIP_HTONS(UIP_IP_BUF(buf)->srcport),
|
||||
&(UIP_IP_BUF(buf)->destipaddr),
|
||||
UIP_HTONS(UIP_IP_BUF(buf)->destport),
|
||||
uip_buf(buf), uip_datalen(buf));
|
||||
uip_buf(buf), uip_datalen(buf),
|
||||
c->user_data);
|
||||
PROCESS_CONTEXT_END();
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,7 +65,8 @@ typedef void (* simple_udp_callback)(struct simple_udp_connection *c,
|
||||
uint16_t source_port,
|
||||
const uip_ipaddr_t *dest_addr,
|
||||
uint16_t dest_port,
|
||||
const uint8_t *data, uint16_t datalen);
|
||||
const uint8_t *data, uint16_t datalen,
|
||||
void *user_data);
|
||||
|
||||
/** Simple UDP connection */
|
||||
struct simple_udp_connection {
|
||||
@ -75,6 +76,7 @@ struct simple_udp_connection {
|
||||
simple_udp_callback receive_callback;
|
||||
struct uip_udp_conn *udp_conn;
|
||||
struct process *client_process;
|
||||
void *user_data;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -100,7 +102,8 @@ int simple_udp_register(struct simple_udp_connection *c,
|
||||
uint16_t local_port,
|
||||
uip_ipaddr_t *remote_addr,
|
||||
uint16_t remote_port,
|
||||
simple_udp_callback receive_callback);
|
||||
simple_udp_callback receive_callback,
|
||||
void *user_data);
|
||||
|
||||
/**
|
||||
* \brief Send a UDP packet
|
||||
|
||||
Loading…
Reference in New Issue
Block a user