Home | History | Annotate | Download | only in api

Lines Matching refs:sock

107   struct lwip_sock *sock;
197 struct lwip_sock *sock;
205 sock = &sockets[s];
207 if (!sock->conn) {
213 return sock;
276 * @param sock the socket to free
280 free_socket(struct lwip_sock *sock, int is_tcp)
285 lastdata = sock->lastdata;
286 sock->lastdata = NULL;
287 sock->lastoffset = 0;
288 sock->err = 0;
292 sock->conn = NULL;
294 /* don't use 'sock' after this line, as another task might have allocated it */
314 struct lwip_sock *sock, *nsock;
324 sock = get_socket(s);
325 if (!sock) {
329 if (netconn_is_nonblocking(sock->conn) && (sock->rcvevent <= 0)) {
331 sock_set_errno(sock, EWOULDBLOCK);
336 err = netconn_accept(sock->conn, &newconn);
339 sock_set_errno(sock, err_to_errno(err));
351 sock_set_errno(sock, err_to_errno(err));
375 sock_set_errno(sock, ENFILE);
392 LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d) returning new sock=%d addr=", s, newsock));
396 sock_set_errno(sock, 0);
403 struct lwip_sock *sock;
409 sock = get_socket(s);
410 if (!sock) {
417 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;);
427 err = netconn_bind(sock->conn, &local_addr, ntohs(local_port));
431 sock_set_errno(sock, err_to_errno(err));
436 sock_set_errno(sock, 0);
443 struct lwip_sock *sock;
448 sock = get_socket(s);
449 if (!sock) {
453 if(sock->conn != NULL) {
454 is_tcp = netconn_type(sock->conn) == NETCONN_TCP;
456 LWIP_ASSERT("sock->lastdata == NULL", sock->lastdata == NULL);
459 netconn_delete(sock->conn);
461 free_socket(sock, is_tcp);
469 struct lwip_sock *sock;
473 sock = get_socket(s);
474 if (!sock) {
481 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;);
486 err = netconn_disconnect(sock->conn);
498 err = netconn_connect(sock->conn, &remote_addr, ntohs(remote_port));
503 sock_set_errno(sock, err_to_errno(err));
508 sock_set_errno(sock, 0);
523 struct lwip_sock *sock;
528 sock = get_socket(s);
529 if (!sock) {
536 err = netconn_listen_with_backlog(sock->conn, (u8_t)backlog);
540 sock_set_errno(sock, err_to_errno(err));
544 sock_set_errno(sock, 0);
552 struct lwip_sock *sock;
563 sock = get_socket(s);
564 if (!sock) {
569 LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: top while sock->lastdata=%p\n", sock->lastdata));
571 if (sock->lastdata) {
572 buf = sock->lastdata;
575 if (((flags & MSG_DONTWAIT) || netconn_is_nonblocking(sock->conn)) &&
576 (sock->rcvevent <= 0)) {
579 netconn_recved(sock->conn, (u32_t)off);
581 sock_set_errno(sock, 0);
585 sock_set_errno(sock, EWOULDBLOCK);
591 if (netconn_type(sock->conn) == NETCONN_TCP) {
592 err = netconn_recv_tcp_pbuf(sock->conn, (struct pbuf **)&buf);
594 err = netconn_recv(sock->conn, (struct netbuf **)&buf);
602 netconn_recved(sock->conn, (u32_t)off);
604 sock_set_errno(sock, 0);
610 sock_set_errno(sock, err_to_errno(err));
618 sock->lastdata = buf;
621 if (netconn_type(sock->conn) == NETCONN_TCP) {
627 LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: buflen=%"U16_F" len=%"SZT_F" off=%d sock->lastoffset=%"U16_F"\n",
628 buflen, len, off, sock->lastoffset));
630 buflen -= sock->lastoffset;
640 pbuf_copy_partial(p, (u8_t*)mem + off, copylen, sock->lastoffset);
644 if (netconn_type(sock->conn) == NETCONN_TCP) {
649 (sock->rcvevent <= 0) ||
663 if (netconn_type(sock->conn) == NETCONN_TCP) {
665 netconn_getaddr(sock->conn, addr, &port, 0);
688 if (netconn_type(sock->conn) == NETCONN_TCP) {
690 netconn_getaddr(sock->conn, addr, &port, 0);
706 buffer. If so, it should be saved in the sock structure for next
708 if ((netconn_type(sock->conn) == NETCONN_TCP) && (buflen - copylen > 0)) {
709 sock->lastdata = buf;
710 sock->lastoffset += copylen;
713 sock->lastdata = NULL;
714 sock->lastoffset = 0;
716 if (netconn_type(sock->conn) == NETCONN_TCP) {
727 netconn_recved(sock->conn, (u32_t)off);
729 sock_set_errno(sock, 0);
748 struct lwip_sock *sock;
755 sock = get_socket(s);
756 if (!sock) {
760 if (sock->conn->type != NETCONN_TCP) {
764 sock_set_errno(sock, err_to_errno(ERR_ARG));
769 if ((flags & MSG_DONTWAIT) || netconn_is_nonblocking(sock->conn)) {
772 sock_set_errno(sock, EMSGSIZE);
780 err = netconn_write(sock->conn, data, size, write_flags);
783 sock_set_errno(sock, err_to_errno(err));
791 struct lwip_sock *sock;
800 sock = get_socket(s);
801 if (!sock) {
805 if (sock->conn->type == NETCONN_TCP) {
810 sock_set_errno(sock, err_to_errno(ERR_ARG));
821 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;);
835 if (sock->conn->type != NETCONN_RAW) {
850 remote_addr = &sock->conn->pcb.raw->remote_ip;
851 if (sock->conn->type == NETCONN_RAW) {
854 remote_port = sock->conn->pcb.udp->remote_port;
859 if (sock->conn->type == NETCONN_RAW) {
860 err = sock->conn->last_err = raw_sendto(sock->conn->pcb.raw, p, remote_addr);
864 err = sock->conn->last_err = udp_sendto_chksum(sock->conn->pcb.udp, p,
867 err = sock->conn->last_err = udp_sendto(sock->conn->pcb.udp, p,
909 if (sock->conn->type != NETCONN_RAW) {
924 err = netconn_send(sock->conn, &buf);
930 sock_set_errno(sock, err_to_errno(err));
1018 struct lwip_sock *sock;
1034 sock = tryget_socket(i);
1035 if (sock != NULL) {
1036 lastdata = sock->lastdata;
1037 rcvevent = sock->rcvevent;
1038 sendevent = sock->sendevent;
1039 errevent = sock->errevent;
1143 struct lwip_sock *sock = tryget_socket(i);
1144 LWIP_ASSERT("sock != NULL", sock != NULL);
1146 sock->select_waiting++;
1147 LWIP_ASSERT("sock->select_waiting > 0", sock->select_waiting > 0);
1175 struct lwip_sock *sock = tryget_socket(i);
1176 LWIP_ASSERT("sock != NULL", sock != NULL);
1178 sock->select_waiting--;
1179 LWIP_ASSERT("sock->select_waiting >= 0", sock->select_waiting >= 0);
1237 struct lwip_sock *sock;
1265 sock = get_socket(s);
1266 if (!sock) {
1277 sock->rcvevent++;
1280 sock->rcvevent--;
1283 sock->sendevent = 1;
1286 sock->sendevent = 0;
1289 sock->errevent = 1;
1296 if (sock->select_waiting == 0) {
1314 if (sock->rcvevent > 0) {
1319 if (sock->sendevent != 0) {
1324 if (sock->errevent != 0) {
1356 struct lwip_sock *sock;
1362 sock = get_socket(s);
1363 if (!sock) {
1367 if (sock->conn != NULL) {
1368 if (netconn_type(sock->conn) != NETCONN_TCP) {
1369 sock_set_errno(sock, EOPNOTSUPP);
1373 sock_set_errno(sock, ENOTCONN);
1385 sock_set_errno(sock, EINVAL);
1388 err = netconn_shutdown(sock->conn, shut_rx, shut_tx);
1390 sock_set_errno(sock, err_to_errno(err));
1397 struct lwip_sock *sock;
1401 sock = get_socket(s);
1402 if (!sock) {
1411 netconn_getaddr(sock->conn, &naddr, &sin.sin_port, local);
1425 sock_set_errno(sock, 0);
1445 struct lwip_sock *sock = get_socket(s);
1448 if (!sock) {
1453 sock_set_errno(sock, EFAULT);
1498 if ((sock->conn->type != NETCONN_UDP) ||
1499 ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) {
1540 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1562 if (sock->conn->type != NETCONN_TCP)
1591 if (sock->conn->type != NETCONN_UDPLITE) {
1616 sock_set_errno(sock, err);
1621 data.sock = sock;
1631 sys_arch_sem_wait(&sock->conn->op_completed, 0);
1635 sock_set_errno(sock, err);
1642 struct lwip_sock *sock;
1653 sock = data->sock;
1679 *(int*)optval = sock->conn->pcb.ip->so_options & optname;
1685 switch (NETCONNTYPE_GROUP(sock->conn->type)) {
1696 *(int*)optval = sock->conn->type;
1700 } /* switch (sock->conn->type) */
1707 if ((sock->err == 0) || (sock->err == EINPROGRESS)) {
1708 sock_set_errno(sock, err_to_errno(sock->conn->last_err));
1710 *(int *)optval = sock->err;
1711 sock->err = 0;
1718 *(int *)optval = netconn_get_recvtimeout(sock->conn);
1723 *(int *)optval = netconn_get_recvbufsize(sock->conn);
1728 *(int*)optval = (udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_NOCHKSUM) ? 1 : 0;
1741 *(int*)optval = sock->conn->pcb.ip->ttl;
1746 *(int*)optval = sock->conn->pcb.ip->tos;
1752 *(u8_t*)optval = sock->conn->pcb.ip->ttl;
1757 inet_addr_from_ipaddr((struct in_addr*)optval, &sock->conn->pcb.udp->multicast_ip);
1762 if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) {
1782 *(int*)optval = tcp_nagle_disabled(sock->conn->pcb.tcp);
1787 *(int*)optval = (int)sock->conn->pcb.tcp->keep_idle;
1794 *(int*)optval = (int)(sock->conn->pcb.tcp->keep_idle/1000);
1799 *(int*)optval = (int)(sock->conn->pcb.tcp->keep_intvl/1000);
1804 *(int*)optval = (int)sock->conn->pcb.tcp->keep_cnt;
1820 *(int*)optval = sock->conn->pcb.udp->chksum_len_tx;
1825 *(int*)optval = sock->conn->pcb.udp->chksum_len_rx;
1839 sys_sem_signal(&sock->conn->op_completed);
1845 struct lwip_sock *sock = get_socket(s);
1849 if (!sock) {
1854 sock_set_errno(sock, EFAULT);
1895 if ((sock->conn->type != NETCONN_UDP) ||
1896 ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) {
1926 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1934 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1942 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1951 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1972 if (sock->conn->type != NETCONN_TCP)
2001 if (sock->conn->type != NETCONN_UDPLITE)
2025 sock_set_errno(sock, err);
2031 data.sock = sock;
2041 sys_arch_sem_wait(&sock->conn->op_completed, 0);
2045 sock_set_errno(sock, err);
2052 struct lwip_sock *sock;
2063 sock = data->sock;
2089 sock->conn->pcb.ip->so_options |= optname;
2091 sock->conn->pcb.ip->so_options &= ~optname;
2098 netconn_set_recvtimeout(sock->conn, *(int*)optval);
2103 netconn_set_recvbufsize(sock->conn, *(int*)optval);
2109 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) | UDP_FLAGS_NOCHKSUM);
2111 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) & ~UDP_FLAGS_NOCHKSUM);
2125 sock->conn->pcb.ip->ttl = (u8_t)(*(int*)optval);
2127 s, sock->conn->pcb.ip->ttl));
2130 sock->conn->pcb.ip->tos = (u8_t)(*(int*)optval);
2132 s, sock->conn->pcb.ip->tos));
2136 sock->conn->pcb.udp->ttl = (u8_t)(*(u8_t*)optval);
2139 inet_addr_to_ipaddr(&sock->conn->pcb.udp->multicast_ip, (struct in_addr*)optval);
2143 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) | UDP_FLAGS_MULTICAST_LOOP);
2145 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) & ~UDP_FLAGS_MULTICAST_LOOP);
2180 tcp_nagle_disable(sock->conn->pcb.tcp);
2182 tcp_nagle_enable(sock->conn->pcb.tcp);
2188 sock->conn->pcb.tcp->keep_idle = (u32_t)(*(int*)optval);
2190 s, sock->conn->pcb.tcp->keep_idle));
2195 sock->conn->pcb.tcp->keep_idle = 1000*(u32_t)(*(int*)optval);
2197 s, sock->conn->pcb.tcp->keep_idle));
2200 sock->conn->pcb.tcp->keep_intvl = 1000*(u32_t)(*(int*)optval);
2202 s, sock->conn->pcb.tcp->keep_intvl));
2205 sock->conn->pcb.tcp->keep_cnt = (u32_t)(*(int*)optval);
2207 s, sock->conn->pcb.tcp->keep_cnt));
2223 sock->conn->pcb.udp->chksum_len_tx = 8;
2225 sock->conn->pcb.udp->chksum_len_tx = (u16_t)*(int*)optval;
2233 sock->conn->pcb.udp->chksum_len_rx = 8;
2235 sock->conn->pcb.udp->chksum_len_rx = (u16_t)*(int*)optval;
2250 sys_sem_signal(&sock->conn->op_completed);
2256 struct lwip_sock *sock = get_socket(s);
2263 if (!sock) {
2271 sock_set_errno(sock, EINVAL);
2275 SYS_ARCH_GET(sock->conn->recv_avail, recv_avail);
2282 if (sock->lastdata) {
2283 struct pbuf *p = (struct pbuf *)sock->lastdata;
2284 if (netconn_type(sock->conn) != NETCONN_TCP) {
2288 buflen -= sock->lastoffset;
2294 sock_set_errno(sock, 0);
2303 netconn_set_nonblocking(sock->conn, val);
2305 sock_set_errno(sock, 0);
2310 sock_set_errno(sock, ENOSYS); /* not yet implemented */
2322 struct lwip_sock *sock = get_socket(s);
2325 if (!sock || !sock->conn) {
2331 ret = netconn_is_nonblocking(sock->conn) ? O_NONBLOCK : 0;
2336 netconn_set_nonblocking(sock->conn, val & O_NONBLOCK);