Lines Matching refs:sock
146 coap_socket_bind_udp(coap_socket_t *sock, argument
161 sock->fd = socket(listen_addr->addr.sa.sa_family, SOCK_DGRAM, 0);
163 if (sock->fd == COAP_INVALID_SOCKET) {
169 if (ioctlsocket(sock->fd, FIONBIO, &u_on) == COAP_SOCKET_ERROR) {
171 if (ioctl(sock->fd, FIONBIO, &on) == COAP_SOCKET_ERROR) {
176 …if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET_ERROR)
183 if (setsockopt(sock->fd, IPPROTO_IP, GEN_IP_PKTINFO, OPTVAL_T(&on),
192 if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, OPTVAL_T(&off),
197 if (setsockopt(sock->fd, IPPROTO_IPV6, GEN_IPV6_PKTINFO, OPTVAL_T(&on),
203 setsockopt(sock->fd, IPPROTO_IP, GEN_IP_PKTINFO, OPTVAL_T(&on), sizeof(on));
216 if (setsockopt(sock->fd, SOL_SOCKET, SO_RCVTIMEO, OPTVAL_T(&timeout),
222 if (bind(sock->fd, &listen_addr->addr.sa,
234 if (getsockname(sock->fd, &bound_addr->addr.sa, &bound_addr->size) < 0) {
240 if (sock->endpoint &&
251 coap_socket_close(sock);
257 coap_socket_connect_udp(coap_socket_t *sock, argument
283 sock->flags &= ~(COAP_SOCKET_CONNECTED | COAP_SOCKET_MULTICAST);
285 sock->flags &= ~(COAP_SOCKET_BROADCAST);
287 sock->fd = socket(connect_addr.addr.sa.sa_family, SOCK_DGRAM, 0);
289 if (sock->fd == COAP_INVALID_SOCKET) {
295 if (setsockopt(sock->fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(int)) < 0) {
304 if (ioctlsocket(sock->fd, FIONBIO, &u_on) == COAP_SOCKET_ERROR)
306 if (ioctl(sock->fd, FIONBIO, &on) == COAP_SOCKET_ERROR)
327 if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_V6ONLY, OPTVAL_T(&off),
351 …if (setsockopt(sock->fd, SOL_SOCKET, SO_REUSEADDR, OPTVAL_T(&on), sizeof(on)) == COAP_SOCKET_ERROR)
355 if (bind(sock->fd, &local_if->addr.sa,
367 int ret = bind_to_device(sock->fd, (struct sockaddr_in *)(&local_if->addr.sa));
389 if (bind(sock->fd, &bind_addr.addr.sa,
400 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
405 coap_address_copy(&sock->mcast_addr, &connect_addr);
406 sock->flags |= COAP_SOCKET_MULTICAST;
408 setsockopt(sock->fd, SOL_SOCKET, SO_BROADCAST, OPTVAL_T(&on),
417 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
421 sock->flags |= COAP_SOCKET_BROADCAST;
436 if (bind(sock->fd, &bind_addr.addr.sa,
445 if (setsockopt(sock->fd, SOL_SOCKET, SO_RCVTIMEO, OPTVAL_T(&timeout),
451 if (connect(sock->fd, &connect_addr.addr.sa, connect_addr.size) == COAP_SOCKET_ERROR) {
465 if (getsockname(sock->fd, &local_addr->addr.sa, &local_addr->size) == COAP_SOCKET_ERROR) {
470 if (getpeername(sock->fd, &remote_addr->addr.sa, &remote_addr->size) == COAP_SOCKET_ERROR) {
475 sock->flags |= COAP_SOCKET_CONNECTED;
479 coap_socket_close(sock);
485 coap_socket_close(coap_socket_t *sock) { argument
486 if (sock->fd != COAP_INVALID_SOCKET) {
489 coap_context_t *context = sock->session ? sock->session->context :
490 sock->endpoint ? sock->endpoint->context : NULL;
492 coap_context_t *context = sock->session ? sock->session->context : NULL;
499 ret = epoll_ctl(context->epfd, EPOLL_CTL_DEL, sock->fd, &event);
508 if (sock->endpoint &&
509 sock->endpoint->bind_addr.addr.sa.sa_family == AF_UNIX) {
511 unlink(sock->endpoint->bind_addr.addr.cun.sun_path);
514 sock->endpoint = NULL;
518 if (sock->session && sock->session->type == COAP_SESSION_TYPE_CLIENT &&
519 sock->session->addr_info.local.addr.sa.sa_family == AF_UNIX) {
521 unlink(sock->session->addr_info.local.addr.cun.sun_path);
525 sock->session = NULL;
527 coap_closesocket(sock->fd);
528 sock->fd = COAP_INVALID_SOCKET;
530 sock->flags = COAP_SOCKET_EMPTY;
535 coap_epoll_ctl_add(coap_socket_t *sock, argument
546 if (sock == NULL)
550 context = sock->session ? sock->session->context :
551 sock->endpoint ? sock->endpoint->context : NULL;
553 context = sock->session ? sock->session->context : NULL;
561 event.data.ptr = sock;
563 ret = epoll_ctl(context->epfd, EPOLL_CTL_ADD, sock->fd, &event);
572 coap_epoll_ctl_mod(coap_socket_t *sock, argument
583 if (sock == NULL)
587 context = sock->session ? sock->session->context :
588 sock->endpoint ? sock->endpoint->context : NULL;
590 context = sock->session ? sock->session->context : NULL;
596 event.data.ptr = sock;
598 ret = epoll_ctl(context->epfd, EPOLL_CTL_MOD, sock->fd, &event);
718 coap_socket_write(coap_socket_t *sock, const uint8_t *data, size_t data_len) { argument
721 sock->flags &= ~(COAP_SOCKET_WANT_WRITE | COAP_SOCKET_CAN_WRITE);
723 r = send(sock->fd, (const char *)data, (int)data_len, 0);
728 r = send(sock->fd, data, data_len, MSG_NOSIGNAL);
739 sock->flags |= COAP_SOCKET_WANT_WRITE;
741 coap_epoll_ctl_mod(sock,
743 ((sock->flags & COAP_SOCKET_WANT_READ) ?
759 sock->flags |= COAP_SOCKET_WANT_WRITE;
761 coap_epoll_ctl_mod(sock,
763 ((sock->flags & COAP_SOCKET_WANT_READ) ?
777 coap_socket_read(coap_socket_t *sock, uint8_t *data, size_t data_len) { argument
781 r = recv(sock->fd, (char *)data, (int)data_len, 0);
783 r = recv(sock->fd, data, data_len, 0);
787 sock->flags &= ~COAP_SOCKET_CAN_READ;
791 sock->flags &= ~COAP_SOCKET_CAN_READ;
809 sock->flags &= ~COAP_SOCKET_CAN_READ;
883 coap_socket_send(coap_socket_t *sock, const coap_session_t *session, argument
889 } else if (sock->flags & COAP_SOCKET_CONNECTED) {
891 bytes_written = send(sock->fd, (const char *)data, (int)datalen, 0);
893 bytes_written = send(sock->fd, data, datalen, 0);
1034 r = WSASendMsg(sock->fd, &mhdr, 0 /*dwFlags*/, &dwNumberOfBytesSent, NULL /*lpOverlapped*/,
1044 bytes_written = sendmsg(sock->fd, &mhdr, 0);
1046 bytes_written = sendto(sock->fd, (const void *)data, datalen, 0,
1076 coap_socket_recv(coap_socket_t *sock, coap_packet_t *packet) { argument
1079 assert(sock);
1082 if ((sock->flags & COAP_SOCKET_CAN_READ) == 0) {
1086 sock->flags &= ~COAP_SOCKET_CAN_READ;
1089 if (sock->flags & COAP_SOCKET_CONNECTED) {
1091 len = recv(sock->fd, (char *)packet->payload, COAP_RXBUFFER_SIZE, 0);
1093 len = recv(sock->fd, packet->payload, COAP_RXBUFFER_SIZE, 0);
1102 sock->session ?
1103 coap_session_str(sock->session) : "",
1108 sock->session ?
1109 coap_session_str(sock->session) : "",
1151 … if (WSAIoctl(sock->fd, SIO_GET_EXTENSION_FUNCTION_POINTER, &wsaid, sizeof(wsaid), &lpWSARecvMsg,
1157 r = lpWSARecvMsg(sock->fd, &mhdr, &dwNumberOfBytesRecvd, NULL /* LPWSAOVERLAPPED */,
1164 len = recvmsg(sock->fd, &mhdr, 0);
1168 len = recvfrom(sock->fd, (void *)packet->payload, COAP_RXBUFFER_SIZE, 0,
1172 if (sock->endpoint &&
1175 sock->endpoint->bind_addr.addr.sin6.sin6_scope_id;
1188 sock->session ?
1189 coap_session_str(sock->session) : "",
1251 packet->ifindex = (int)sock->fd;
1271 packet->ifindex = (int)sock->fd;
1272 if (getsockname(sock->fd, &packet->addr_info.local.addr.sa,
1280 if (getsockname(sock->fd, &packet->addr_info.local.addr.sa,
1286 if (sock->endpoint &&
1289 sock->endpoint->bind_addr.addr.sin6.sin6_scope_id;
1424 … if (ep->sock.flags & (COAP_SOCKET_WANT_READ | COAP_SOCKET_WANT_WRITE | COAP_SOCKET_WANT_ACCEPT)) {
1426 sockets[(*num_sockets)++] = &ep->sock;
1481 if (s->sock.flags & (COAP_SOCKET_WANT_READ|COAP_SOCKET_WANT_WRITE)) {
1483 sockets[(*num_sockets)++] = &s->sock;
1592 if (s->sock.flags & (COAP_SOCKET_WANT_READ |
1596 sockets[(*num_sockets)++] = &s->sock;