32 #include "contiki-net.h"
33 #include "udp-socket.h"
37 PROCESS(udp_socket_process,
"UDP socket process");
41 #define UIP_IP_BUF ((struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])
48 static uint8_t inited = 0;
56 udp_socket_register(
struct udp_socket *c,
58 udp_socket_input_callback_t input_callback)
66 c->input_callback = input_callback;
73 if(c->udp_conn ==
NULL) {
80 udp_socket_close(
struct udp_socket *c)
85 if(c->udp_conn !=
NULL) {
93 udp_socket_bind(
struct udp_socket *c,
96 if(c ==
NULL || c->udp_conn ==
NULL) {
105 udp_socket_connect(
struct udp_socket *c,
106 uip_ipaddr_t *remote_addr,
107 uint16_t remote_port)
109 if(c ==
NULL || c->udp_conn ==
NULL) {
113 if(remote_addr !=
NULL) {
116 c->udp_conn->rport =
UIP_HTONS(remote_port);
121 udp_socket_send(
struct udp_socket *c,
122 const void *data, uint16_t datalen)
124 if(c ==
NULL || c->udp_conn ==
NULL) {
128 uip_udp_packet_send(c->udp_conn, data, datalen);
133 udp_socket_sendto(
struct udp_socket *c,
134 const void *data, uint16_t datalen,
135 const uip_ipaddr_t *to,
138 if(c ==
NULL || c->udp_conn ==
NULL) {
142 if(c->udp_conn !=
NULL) {
143 uip_udp_packet_sendto(c->udp_conn, data, datalen,
152 struct udp_socket *c;
164 c = (
struct udp_socket *)data;
181 if(c->input_callback !=
NULL) {
183 c->input_callback(c, c->ptr,