Lines Matching refs:sock

107   struct lwip_sock *sock;  member
197 struct lwip_sock *sock; in get_socket() local
205 sock = &sockets[s]; in get_socket()
207 if (!sock->conn) { in get_socket()
213 return sock; in get_socket()
280 free_socket(struct lwip_sock *sock, int is_tcp) in free_socket() argument
285 lastdata = sock->lastdata; in free_socket()
286 sock->lastdata = NULL; in free_socket()
287 sock->lastoffset = 0; in free_socket()
288 sock->err = 0; in free_socket()
292 sock->conn = NULL; in free_socket()
314 struct lwip_sock *sock, *nsock; in lwip_accept() local
324 sock = get_socket(s); in lwip_accept()
325 if (!sock) { in lwip_accept()
329 if (netconn_is_nonblocking(sock->conn) && (sock->rcvevent <= 0)) { in lwip_accept()
331 sock_set_errno(sock, EWOULDBLOCK); in lwip_accept()
336 err = netconn_accept(sock->conn, &newconn); in lwip_accept()
339 if (netconn_type(sock->conn) != NETCONN_TCP) { in lwip_accept()
340 sock_set_errno(sock, EOPNOTSUPP); in lwip_accept()
343 sock_set_errno(sock, err_to_errno(err)); in lwip_accept()
355 sock_set_errno(sock, err_to_errno(err)); in lwip_accept()
379 sock_set_errno(sock, ENFILE); in lwip_accept()
400 sock_set_errno(sock, 0); in lwip_accept()
407 struct lwip_sock *sock; in lwip_bind() local
413 sock = get_socket(s); in lwip_bind()
414 if (!sock) { in lwip_bind()
421 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;); in lwip_bind()
431 err = netconn_bind(sock->conn, &local_addr, ntohs(local_port)); in lwip_bind()
435 sock_set_errno(sock, err_to_errno(err)); in lwip_bind()
440 sock_set_errno(sock, 0); in lwip_bind()
447 struct lwip_sock *sock; in lwip_close() local
452 sock = get_socket(s); in lwip_close()
453 if (!sock) { in lwip_close()
457 if(sock->conn != NULL) { in lwip_close()
458 is_tcp = netconn_type(sock->conn) == NETCONN_TCP; in lwip_close()
460 LWIP_ASSERT("sock->lastdata == NULL", sock->lastdata == NULL); in lwip_close()
463 netconn_delete(sock->conn); in lwip_close()
465 free_socket(sock, is_tcp); in lwip_close()
473 struct lwip_sock *sock; in lwip_connect() local
477 sock = get_socket(s); in lwip_connect()
478 if (!sock) { in lwip_connect()
485 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;); in lwip_connect()
490 err = netconn_disconnect(sock->conn); in lwip_connect()
502 err = netconn_connect(sock->conn, &remote_addr, ntohs(remote_port)); in lwip_connect()
507 sock_set_errno(sock, err_to_errno(err)); in lwip_connect()
512 sock_set_errno(sock, 0); in lwip_connect()
527 struct lwip_sock *sock; in lwip_listen() local
532 sock = get_socket(s); in lwip_listen()
533 if (!sock) { in lwip_listen()
540 err = netconn_listen_with_backlog(sock->conn, (u8_t)backlog); in lwip_listen()
544 if (netconn_type(sock->conn) != NETCONN_TCP) { in lwip_listen()
545 sock_set_errno(sock, EOPNOTSUPP); in lwip_listen()
548 sock_set_errno(sock, err_to_errno(err)); in lwip_listen()
552 sock_set_errno(sock, 0); in lwip_listen()
560 struct lwip_sock *sock; in lwip_recvfrom() local
571 sock = get_socket(s); in lwip_recvfrom()
572 if (!sock) { in lwip_recvfrom()
577 LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: top while sock->lastdata=%p\n", sock->lastdata)); in lwip_recvfrom()
579 if (sock->lastdata) { in lwip_recvfrom()
580 buf = sock->lastdata; in lwip_recvfrom()
583 if (((flags & MSG_DONTWAIT) || netconn_is_nonblocking(sock->conn)) && in lwip_recvfrom()
584 (sock->rcvevent <= 0)) { in lwip_recvfrom()
587 netconn_recved(sock->conn, (u32_t)off); in lwip_recvfrom()
589 sock_set_errno(sock, 0); in lwip_recvfrom()
593 sock_set_errno(sock, EWOULDBLOCK); in lwip_recvfrom()
599 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
600 err = netconn_recv_tcp_pbuf(sock->conn, (struct pbuf **)&buf); in lwip_recvfrom()
602 err = netconn_recv(sock->conn, (struct netbuf **)&buf); in lwip_recvfrom()
610 netconn_recved(sock->conn, (u32_t)off); in lwip_recvfrom()
612 sock_set_errno(sock, 0); in lwip_recvfrom()
618 sock_set_errno(sock, err_to_errno(err)); in lwip_recvfrom()
626 sock->lastdata = buf; in lwip_recvfrom()
629 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
636 buflen, len, off, sock->lastoffset)); in lwip_recvfrom()
638 buflen -= sock->lastoffset; in lwip_recvfrom()
648 pbuf_copy_partial(p, (u8_t*)mem + off, copylen, sock->lastoffset); in lwip_recvfrom()
652 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
657 (sock->rcvevent <= 0) || in lwip_recvfrom()
671 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
673 netconn_getaddr(sock->conn, addr, &port, 0); in lwip_recvfrom()
696 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
698 netconn_getaddr(sock->conn, addr, &port, 0); in lwip_recvfrom()
716 if ((netconn_type(sock->conn) == NETCONN_TCP) && (buflen - copylen > 0)) { in lwip_recvfrom()
717 sock->lastdata = buf; in lwip_recvfrom()
718 sock->lastoffset += copylen; in lwip_recvfrom()
721 sock->lastdata = NULL; in lwip_recvfrom()
722 sock->lastoffset = 0; in lwip_recvfrom()
724 if (netconn_type(sock->conn) == NETCONN_TCP) { in lwip_recvfrom()
735 netconn_recved(sock->conn, (u32_t)off); in lwip_recvfrom()
737 sock_set_errno(sock, 0); in lwip_recvfrom()
756 struct lwip_sock *sock; in lwip_send() local
764 sock = get_socket(s); in lwip_send()
765 if (!sock) { in lwip_send()
769 if (sock->conn->type != NETCONN_TCP) { in lwip_send()
773 sock_set_errno(sock, err_to_errno(ERR_ARG)); in lwip_send()
782 err = netconn_write_partly(sock->conn, data, size, write_flags, &written); in lwip_send()
785 sock_set_errno(sock, err_to_errno(err)); in lwip_send()
793 struct lwip_sock *sock; local
802 sock = get_socket(s);
803 if (!sock) {
807 if (sock->conn->type == NETCONN_TCP) {
812 sock_set_errno(sock, err_to_errno(ERR_ARG));
823 sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;);
837 if (sock->conn->type != NETCONN_RAW) {
852 remote_addr = &sock->conn->pcb.ip->remote_ip;
854 if (NETCONNTYPE_GROUP(sock->conn->type) == NETCONN_UDP) {
855 remote_port = sock->conn->pcb.udp->remote_port;
864 if (netconn_type(sock->conn) == NETCONN_RAW) {
866 err = sock->conn->last_err = raw_sendto(sock->conn->pcb.raw, p, remote_addr);
877 err = sock->conn->last_err = udp_sendto_chksum(sock->conn->pcb.udp, p,
880 err = sock->conn->last_err = udp_sendto(sock->conn->pcb.udp, p,
922 if (sock->conn->type != NETCONN_RAW) {
937 err = netconn_send(sock->conn, &buf);
943 sock_set_errno(sock, err_to_errno(err));
1031 struct lwip_sock *sock; local
1047 sock = tryget_socket(i);
1048 if (sock != NULL) {
1049 lastdata = sock->lastdata;
1050 rcvevent = sock->rcvevent;
1051 sendevent = sock->sendevent;
1052 errevent = sock->errevent;
1156 struct lwip_sock *sock = tryget_socket(i); local
1157 LWIP_ASSERT("sock != NULL", sock != NULL);
1159 sock->select_waiting++;
1160 LWIP_ASSERT("sock->select_waiting > 0", sock->select_waiting > 0);
1188 struct lwip_sock *sock = tryget_socket(i); local
1189 LWIP_ASSERT("sock != NULL", sock != NULL);
1191 sock->select_waiting--;
1192 LWIP_ASSERT("sock->select_waiting >= 0", sock->select_waiting >= 0);
1250 struct lwip_sock *sock; local
1278 sock = get_socket(s);
1279 if (!sock) {
1290 sock->rcvevent++;
1293 sock->rcvevent--;
1296 sock->sendevent = 1;
1299 sock->sendevent = 0;
1302 sock->errevent = 1;
1309 if (sock->select_waiting == 0) {
1327 if (sock->rcvevent > 0) {
1332 if (sock->sendevent != 0) {
1337 if (sock->errevent != 0) {
1369 struct lwip_sock *sock; local
1375 sock = get_socket(s);
1376 if (!sock) {
1380 if (sock->conn != NULL) {
1381 if (netconn_type(sock->conn) != NETCONN_TCP) {
1382 sock_set_errno(sock, EOPNOTSUPP);
1386 sock_set_errno(sock, ENOTCONN);
1398 sock_set_errno(sock, EINVAL);
1401 err = netconn_shutdown(sock->conn, shut_rx, shut_tx);
1403 sock_set_errno(sock, err_to_errno(err));
1410 struct lwip_sock *sock; local
1414 sock = get_socket(s);
1415 if (!sock) {
1424 netconn_getaddr(sock->conn, &naddr, &sin.sin_port, local);
1438 sock_set_errno(sock, 0);
1458 struct lwip_sock *sock = get_socket(s); local
1461 if (!sock) {
1466 sock_set_errno(sock, EFAULT);
1513 if ((sock->conn->type != NETCONN_UDP) ||
1514 ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) {
1555 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1577 if (sock->conn->type != NETCONN_TCP)
1606 if (sock->conn->type != NETCONN_UDPLITE) {
1631 sock_set_errno(sock, err);
1636 data.sock = sock;
1646 sys_arch_sem_wait(&sock->conn->op_completed, 0);
1650 sock_set_errno(sock, err);
1657 struct lwip_sock *sock; local
1668 sock = data->sock;
1694 *(int*)optval = ip_get_option(sock->conn->pcb.ip, optname);
1700 switch (NETCONNTYPE_GROUP(sock->conn->type)) {
1711 *(int*)optval = sock->conn->type;
1722 if ((sock->err == 0) || (sock->err == EINPROGRESS)) {
1723 sock_set_errno(sock, err_to_errno(sock->conn->last_err));
1725 *(int *)optval = sock->err;
1726 sock->err = 0;
1733 *(int *)optval = netconn_get_sendtimeout(sock->conn);
1738 *(int *)optval = netconn_get_recvtimeout(sock->conn);
1743 *(int *)optval = netconn_get_recvbufsize(sock->conn);
1748 *(int*)optval = (udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_NOCHKSUM) ? 1 : 0;
1761 *(int*)optval = sock->conn->pcb.ip->ttl;
1766 *(int*)optval = sock->conn->pcb.ip->tos;
1772 *(u8_t*)optval = sock->conn->pcb.ip->ttl;
1777 inet_addr_from_ipaddr((struct in_addr*)optval, &sock->conn->pcb.udp->multicast_ip);
1782 if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) {
1802 *(int*)optval = tcp_nagle_disabled(sock->conn->pcb.tcp);
1807 *(int*)optval = (int)sock->conn->pcb.tcp->keep_idle;
1814 *(int*)optval = (int)(sock->conn->pcb.tcp->keep_idle/1000);
1819 *(int*)optval = (int)(sock->conn->pcb.tcp->keep_intvl/1000);
1824 *(int*)optval = (int)sock->conn->pcb.tcp->keep_cnt;
1840 *(int*)optval = sock->conn->pcb.udp->chksum_len_tx;
1845 *(int*)optval = sock->conn->pcb.udp->chksum_len_rx;
1859 sys_sem_signal(&sock->conn->op_completed);
1865 struct lwip_sock *sock = get_socket(s); local
1869 if (!sock) {
1874 sock_set_errno(sock, EFAULT);
1917 if ((sock->conn->type != NETCONN_UDP) ||
1918 ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) {
1948 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1956 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1964 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1973 if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) {
1994 if (sock->conn->type != NETCONN_TCP)
2023 if (sock->conn->type != NETCONN_UDPLITE)
2047 sock_set_errno(sock, err);
2053 data.sock = sock;
2063 sys_arch_sem_wait(&sock->conn->op_completed, 0);
2067 sock_set_errno(sock, err);
2074 struct lwip_sock *sock; local
2085 sock = data->sock;
2111 ip_set_option(sock->conn->pcb.ip, optname);
2113 ip_reset_option(sock->conn->pcb.ip, optname);
2120 netconn_set_sendtimeout(sock->conn, (s32_t)*(int*)optval);
2125 netconn_set_recvtimeout(sock->conn, *(int*)optval);
2130 netconn_set_recvbufsize(sock->conn, *(int*)optval);
2136 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) | UDP_FLAGS_NOCHKSUM);
2138 udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) & ~UDP_FLAGS_NOCHKSUM);
2152 sock->conn->pcb.ip->ttl = (u8_t)(*(int*)optval);
2154 s, sock->conn->pcb.ip->ttl));
2157 sock->conn->pcb.ip->tos = (u8_t)(*(int*)optval);
2159 s, sock->conn->pcb.ip->tos));
2163 sock->conn->pcb.udp->ttl = (u8_t)(*(u8_t*)optval);
2166 inet_addr_to_ipaddr(&sock->conn->pcb.udp->multicast_ip, (struct in_addr*)optval);
2170 … udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) | UDP_FLAGS_MULTICAST_LOOP);
2172 … udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) & ~UDP_FLAGS_MULTICAST_LOOP);
2207 tcp_nagle_disable(sock->conn->pcb.tcp);
2209 tcp_nagle_enable(sock->conn->pcb.tcp);
2215 sock->conn->pcb.tcp->keep_idle = (u32_t)(*(int*)optval);
2217 s, sock->conn->pcb.tcp->keep_idle));
2222 sock->conn->pcb.tcp->keep_idle = 1000*(u32_t)(*(int*)optval);
2224 s, sock->conn->pcb.tcp->keep_idle));
2227 sock->conn->pcb.tcp->keep_intvl = 1000*(u32_t)(*(int*)optval);
2229 s, sock->conn->pcb.tcp->keep_intvl));
2232 sock->conn->pcb.tcp->keep_cnt = (u32_t)(*(int*)optval);
2234 s, sock->conn->pcb.tcp->keep_cnt));
2250 sock->conn->pcb.udp->chksum_len_tx = 8;
2252 sock->conn->pcb.udp->chksum_len_tx = (u16_t)*(int*)optval;
2260 sock->conn->pcb.udp->chksum_len_rx = 8;
2262 sock->conn->pcb.udp->chksum_len_rx = (u16_t)*(int*)optval;
2277 sys_sem_signal(&sock->conn->op_completed);
2283 struct lwip_sock *sock = get_socket(s); local
2290 if (!sock) {
2298 sock_set_errno(sock, EINVAL);
2302 SYS_ARCH_GET(sock->conn->recv_avail, recv_avail);
2309 if (sock->lastdata) {
2310 struct pbuf *p = (struct pbuf *)sock->lastdata;
2311 if (netconn_type(sock->conn) != NETCONN_TCP) {
2315 buflen -= sock->lastoffset;
2321 sock_set_errno(sock, 0);
2330 netconn_set_nonblocking(sock->conn, val);
2332 sock_set_errno(sock, 0);
2337 sock_set_errno(sock, ENOSYS); /* not yet implemented */
2349 struct lwip_sock *sock = get_socket(s); local
2352 if (!sock || !sock->conn) {
2358 ret = netconn_is_nonblocking(sock->conn) ? O_NONBLOCK : 0;
2363 netconn_set_nonblocking(sock->conn, val & O_NONBLOCK);