Lines Matching refs:sock
103 coap_socket_bind_udp(coap_socket_t *sock, in coap_socket_bind_udp() argument
106 sock->conn = udp_new(NULL, 0, NULL); in coap_socket_bind_udp()
108 if (!sock->conn) { in coap_socket_bind_udp()
116 udp_bind((struct uip_udp_conn *)sock->conn, bound_addr->port); in coap_socket_bind_udp()
121 coap_socket_connect_udp(coap_socket_t *sock, in coap_socket_connect_udp() argument
131 coap_socket_write(coap_socket_t *sock, const uint8_t *data, size_t data_len) { in coap_socket_write() argument
136 coap_socket_read(coap_socket_t *sock, uint8_t *data, size_t data_len) { in coap_socket_read() argument
140 void coap_socket_close(coap_socket_t *sock) { in coap_socket_close() argument
141 if (sock->conn) in coap_socket_close()
142 uip_udp_remove((struct uip_udp_conn *)sock->conn); in coap_socket_close()
143 sock->flags = COAP_SOCKET_EMPTY; in coap_socket_close()
159 coap_socket_bind_udp(coap_socket_t *sock, argument
169 sock->fd = socket(listen_addr->addr.sa.sa_family, SOCK_DGRAM, 0);
171 if (sock->fd == COAP_INVALID_SOCKET) {
178 if (ioctlsocket(sock->fd, FIONBIO, &u_on) == COAP_SOCKET_ERROR) {
180 if (ioctl(sock->fd, FIONBIO, &on) == COAP_SOCKET_ERROR) {
187 …if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET_ERROR)
195 …if (setsockopt(sock->fd, IPPROTO_IP, GEN_IP_PKTINFO, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET_ERR…
202 …if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, OPTVAL_T(&off), sizeof(off)) == COAP_SOCKET_ER…
207 …if (setsockopt(sock->fd, IPPROTO_IPV6, GEN_IPV6_PKTINFO, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET…
212 setsockopt(sock->fd, IPPROTO_IP, GEN_IP_PKTINFO, OPTVAL_T(&on), sizeof(on));
222 if (bind(sock->fd, &listen_addr->addr.sa,
232 if (getsockname(sock->fd, &bound_addr->addr.sa, &bound_addr->size) < 0) {
242 coap_socket_close(sock);
296 coap_socket_connect_udp(coap_socket_t *sock, argument
316 sock->flags &= ~(COAP_SOCKET_CONNECTED | COAP_SOCKET_MULTICAST);
318 sock->flags &= ~(COAP_SOCKET_BROADCAST);
320 sock->fd = socket(connect_addr.addr.sa.sa_family, SOCK_DGRAM, 0);
322 if (sock->fd == COAP_INVALID_SOCKET) {
328 coap_log(LOG_DEBUG, "coap_socket_connect_udp setsockopt socket %d\n", sock->fd);
329 if (setsockopt(sock->fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(int)) < 0) {
337 if (ioctlsocket(sock->fd, FIONBIO, &u_on) == COAP_SOCKET_ERROR) {
339 if (ioctl(sock->fd, FIONBIO, &on) == COAP_SOCKET_ERROR) {
356 …if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, OPTVAL_T(&off), sizeof(off)) == COAP_SOCKET_ER…
369 …if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET_ERROR)
374 if (bind(sock->fd, &local_if->addr.sa,
383 int ret = bind_to_device(sock->fd, (struct sockaddr_in *)(&local_if->addr.sa));
398 if (bind(sock->fd, &bind_addr.addr.sa,
407 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
413 sock->flags |= COAP_SOCKET_MULTICAST;
419 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
423 sock->flags |= COAP_SOCKET_BROADCAST;
428 if (connect(sock->fd, &connect_addr.addr.sa, connect_addr.size) == COAP_SOCKET_ERROR) {
434 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
439 if (getpeername(sock->fd, &remote_addr->addr.sa, &remote_addr->size) == COAP_SOCKET_ERROR) {
444 sock->flags |= COAP_SOCKET_CONNECTED;
448 coap_socket_close(sock);
452 void coap_socket_close(coap_socket_t *sock) { argument
453 if (sock->fd != COAP_INVALID_SOCKET) {
455 coap_context_t *context = sock->session ? sock->session->context :
456 sock->endpoint ? sock->endpoint->context : NULL;
462 ret = epoll_ctl(context->epfd, EPOLL_CTL_DEL, sock->fd, &event);
470 sock->endpoint = NULL;
471 sock->session = NULL;
473 coap_closesocket(sock->fd);
474 sock->fd = COAP_INVALID_SOCKET;
476 sock->flags = COAP_SOCKET_EMPTY;
481 coap_epoll_ctl_mod(coap_socket_t *sock, argument
489 if (sock == NULL)
492 context = sock->session ? sock->session->context :
493 sock->endpoint ? sock->endpoint->context : NULL;
498 event.data.ptr = sock;
500 ret = epoll_ctl(context->epfd, EPOLL_CTL_MOD, sock->fd, &event);
511 coap_socket_write(coap_socket_t *sock, const uint8_t *data, size_t data_len) { argument
514 sock->flags &= ~(COAP_SOCKET_WANT_WRITE | COAP_SOCKET_CAN_WRITE);
516 r = send(sock->fd, (const char *)data, (int)data_len, 0);
518 r = send(sock->fd, data, data_len, 0);
528 sock->flags |= COAP_SOCKET_WANT_WRITE;
530 coap_epoll_ctl_mod(sock,
532 ((sock->flags & COAP_SOCKET_WANT_READ) ?
549 sock->flags |= COAP_SOCKET_WANT_WRITE;
551 coap_epoll_ctl_mod(sock,
553 ((sock->flags & COAP_SOCKET_WANT_READ) ?
562 coap_socket_read(coap_socket_t *sock, uint8_t *data, size_t data_len) { argument
569 r = recv(sock->fd, (char *)data, (int)data_len, 0);
571 r = recv(sock->fd, data, data_len, 0);
575 sock->flags &= ~COAP_SOCKET_CAN_READ;
578 sock->flags &= ~COAP_SOCKET_CAN_READ;
599 sock->flags &= ~COAP_SOCKET_CAN_READ;
655 coap_network_send(coap_socket_t *sock, const coap_session_t *session, const uint8_t *data, size_t d… argument
661 } else if (sock->flags & COAP_SOCKET_CONNECTED) {
663 bytes_written = send(sock->fd, (const char *)data, (int)datalen, 0);
665 bytes_written = send(sock->fd, data, datalen, 0);
794 …r = WSASendMsg(sock->fd, &mhdr, 0 /*dwFlags*/, &dwNumberOfBytesSent, NULL /*lpOverlapped*/, NULL /…
801 bytes_written = sendmsg(sock->fd, &mhdr, 0);
803 bytes_written = sendto(sock->fd, data, datalen, 0,
813 uip_udp_packet_sendto((struct uip_udp_conn *)sock->conn, data, datalen,
836 coap_network_read(coap_socket_t *sock, coap_packet_t *packet) { argument
839 assert(sock);
842 if ((sock->flags & COAP_SOCKET_CAN_READ) == 0) {
846 sock->flags &= ~COAP_SOCKET_CAN_READ;
850 if (sock->flags & COAP_SOCKET_CONNECTED) {
852 len = recv(sock->fd, (char *)packet->payload, COAP_RXBUFFER_SIZE, 0);
854 len = recv(sock->fd, packet->payload, COAP_RXBUFFER_SIZE, 0);
909 …if (WSAIoctl(sock->fd, SIO_GET_EXTENSION_FUNCTION_POINTER, &wsaid, sizeof(wsaid), &lpWSARecvMsg, s…
914 …r = lpWSARecvMsg(sock->fd, &mhdr, &dwNumberOfBytesRecvd, NULL /* LPWSAOVERLAPPED */, NULL /* LPWSA…
918 len = recvmsg(sock->fd, &mhdr, 0);
922 len = recvfrom(sock->fd, packet->payload, COAP_RXBUFFER_SIZE, 0,
987 packet->ifindex = sock->fd;
1007 packet->ifindex = (int)sock->fd;
1008 if (getsockname(sock->fd, &packet->addr_info.local.addr.sa,
1016 if (getsockname(sock->fd, &packet->addr_info.local.addr.sa,
1065 len = recvfrom (sock->fd, packet->payload, COAP_RXBUFFER_SIZE,
1149 … if (ep->sock.flags & (COAP_SOCKET_WANT_READ | COAP_SOCKET_WANT_WRITE | COAP_SOCKET_WANT_ACCEPT)) {
1150 sockets[(*num_sockets)++] = &ep->sock;
1156 if (s->sock.flags & (COAP_SOCKET_WANT_READ | COAP_SOCKET_WANT_WRITE)) {
1157 sockets[(*num_sockets)++] = &s->sock;
1166 … if (s->sock.flags & (COAP_SOCKET_WANT_READ | COAP_SOCKET_WANT_WRITE | COAP_SOCKET_WANT_CONNECT)) {
1167 sockets[(*num_sockets)++] = &s->sock;
1576 ctx->endpoint->sock.flags |= COAP_SOCKET_CAN_READ;
1615 coap_socket_send(coap_socket_t *sock, coap_session_t *session, argument
1617 return session->context->network_send(sock, session, data, data_len);