Lines Matching refs:msg
311 if (conn->current_msg && conn->current_msg->msg.sd.polls_left) {
312 conn->current_msg->msg.sd.polls_left--;
545 pcb_new(struct api_msg *msg) argument
547 LWIP_ASSERT("pcb_new: pcb already allocated", msg->conn->pcb.tcp == NULL);
550 switch(NETCONNTYPE_GROUP(msg->conn->type)) {
553 msg->conn->pcb.raw = raw_new(msg->msg.n.proto);
554 if (msg->conn->pcb.raw != NULL) {
555 raw_recv(msg->conn->pcb.raw, recv_raw, msg->conn);
561 msg->conn->pcb.udp = udp_new();
562 if (msg->conn->pcb.udp != NULL) {
564 if (NETCONNTYPE_ISUDPLITE(msg->conn->type)) {
565 udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_UDPLITE);
568 if (NETCONNTYPE_ISUDPNOCHKSUM(msg->conn->type)) {
569 udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
571 udp_recv(msg->conn->pcb.udp, recv_udp, msg->conn);
577 msg->conn->pcb.tcp = tcp_new();
578 if (msg->conn->pcb.tcp != NULL) {
579 setup_tcp(msg->conn);
585 msg->err = ERR_VAL;
588 if (msg->conn->pcb.ip == NULL) {
589 msg->err = ERR_MEM;
593 if (NETCONNTYPE_ISIPV6(msg->conn->type)) {
595 IP_SET_TYPE_VAL(msg->conn->pcb.ip->local_ip, IPADDR_TYPE_V6);
596 IP_SET_TYPE_VAL(msg->conn->pcb.ip->remote_ip, IPADDR_TYPE_V6);
611 struct api_msg *msg = (struct api_msg*)m; local
613 msg->err = ERR_OK;
614 if (msg->conn->pcb.tcp == NULL) {
615 pcb_new(msg);
621 TCPIP_APIMSG_ACK(msg);
829 shut = conn->current_msg->msg.sd.shut;
883 } else if ((s32_t)(sys_now() - conn->current_msg->msg.sd.time_started) >=
932 if ((s32_t)(sys_now() - conn->current_msg->msg.sd.time_started) >= close_timeout) {
934 if (conn->current_msg->msg.sd.polls_left == 0) {
1008 struct api_msg *msg = (struct api_msg*)m; local
1010 enum netconn_state state = msg->conn->state;
1012 (state == NETCONN_NONE) || (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP));
1017 ((state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn))) {
1020 LWIP_ASSERT("msg->conn->current_msg != NULL", msg->conn->current_msg != NULL);
1021 op_completed_sem = LWIP_API_MSG_SEM(msg->conn->current_msg);
1022 msg->conn->current_msg->err = ERR_CLSD;
1023 msg->conn->current_msg = NULL;
1024 msg->conn->write_offset = 0;
1025 msg->conn->state = NETCONN_NONE;
1026 NETCONN_SET_SAFE_ERR(msg->conn, ERR_CLSD);
1034 ((state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn))) {
1037 msg->err = ERR_INPROGRESS;
1042 (state != NETCONN_CONNECT) || IN_NONBLOCKING_CONNECT(msg->conn));
1043 msg->err = ERR_OK;
1045 netconn_drain(msg->conn);
1047 if (msg->conn->pcb.tcp != NULL) {
1049 switch (NETCONNTYPE_GROUP(msg->conn->type)) {
1052 raw_remove(msg->conn->pcb.raw);
1057 msg->conn->pcb.udp->recv_arg = NULL;
1058 udp_remove(msg->conn->pcb.udp);
1063 LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
1064 msg->conn->write_offset == 0);
1065 msg->conn->state = NETCONN_CLOSE;
1066 msg->msg.sd.shut = NETCONN_SHUT_RDWR;
1067 msg->conn->current_msg = msg;
1069 if (lwip_netconn_do_close_internal(msg->conn, 0) != ERR_OK) {
1070 LWIP_ASSERT("state!", msg->conn->state == NETCONN_CLOSE);
1072 sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0);
1074 LWIP_ASSERT("state!", msg->conn->state == NETCONN_NONE);
1077 lwip_netconn_do_close_internal(msg->conn);
1086 msg->conn->pcb.tcp = NULL;
1092 API_EVENT(msg->conn, NETCONN_EVT_RCVPLUS, 0);
1093 API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0);
1095 if (sys_sem_valid(LWIP_API_MSG_SEM(msg))) {
1096 TCPIP_APIMSG_ACK(msg);
1110 struct api_msg *msg = (struct api_msg*)m; local
1112 if (ERR_IS_FATAL(msg->conn->last_err)) {
1113 msg->err = msg->conn->last_err;
1115 msg->err = ERR_VAL;
1116 if (msg->conn->pcb.tcp != NULL) {
1117 const ip_addr_t *ipaddr = API_EXPR_REF(msg->msg.bc.ipaddr);
1124 (netconn_get_ipv6only(msg->conn) == 0)) {
1126 IP_SET_TYPE_VAL(msg->conn->pcb.ip->local_ip, IPADDR_TYPE_ANY);
1127 IP_SET_TYPE_VAL(msg->conn->pcb.ip->remote_ip, IPADDR_TYPE_ANY);
1134 switch (NETCONNTYPE_GROUP(msg->conn->type)) {
1137 msg->err = raw_bind(msg->conn->pcb.raw, ipaddr);
1142 msg->err = udp_bind(msg->conn->pcb.udp, ipaddr, msg->msg.bc.port);
1147 msg->err = tcp_bind(msg->conn->pcb.tcp, ipaddr, msg->msg.bc.port);
1155 TCPIP_APIMSG_ACK(msg);
1218 struct api_msg *msg = (struct api_msg*)m; local
1220 if (msg->conn->pcb.tcp == NULL) {
1222 msg->err = ERR_CLSD;
1224 switch (NETCONNTYPE_GROUP(msg->conn->type)) {
1227 msg->err = raw_connect(msg->conn->pcb.raw, API_EXPR_REF(msg->msg.bc.ipaddr));
1232 … msg->err = udp_connect(msg->conn->pcb.udp, API_EXPR_REF(msg->msg.bc.ipaddr), msg->msg.bc.port);
1238 if (msg->conn->state == NETCONN_CONNECT) {
1239 msg->err = ERR_ALREADY;
1240 } else if (msg->conn->state != NETCONN_NONE) {
1241 msg->err = ERR_ISCONN;
1243 setup_tcp(msg->conn);
1244 msg->err = tcp_connect(msg->conn->pcb.tcp, API_EXPR_REF(msg->msg.bc.ipaddr),
1245 msg->msg.bc.port, lwip_netconn_do_connected);
1246 if (msg->err == ERR_OK) {
1247 u8_t non_blocking = netconn_is_nonblocking(msg->conn);
1248 msg->conn->state = NETCONN_CONNECT;
1249 SET_NONBLOCKING_CONNECT(msg->conn, non_blocking);
1251 msg->err = ERR_INPROGRESS;
1253 msg->conn->current_msg = msg;
1257 LWIP_ASSERT("state!", msg->conn->state == NETCONN_CONNECT);
1259 sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0);
1261 LWIP_ASSERT("state!", msg->conn->state != NETCONN_CONNECT);
1270 LWIP_ERROR("Invalid netconn type", 0, do{ msg->err = ERR_VAL; }while(0));
1276 TCPIP_APIMSG_ACK(msg);
1289 struct api_msg *msg = (struct api_msg*)m; local
1292 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) {
1293 udp_disconnect(msg->conn->pcb.udp);
1294 msg->err = ERR_OK;
1298 msg->err = ERR_VAL;
1300 TCPIP_APIMSG_ACK(msg);
1313 struct api_msg *msg = (struct api_msg*)m; local
1315 if (ERR_IS_FATAL(msg->conn->last_err)) {
1316 msg->err = msg->conn->last_err;
1318 msg->err = ERR_CONN;
1319 if (msg->conn->pcb.tcp != NULL) {
1320 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) {
1321 if (msg->conn->state == NETCONN_NONE) {
1323 if (msg->conn->pcb.tcp->state != CLOSED) {
1325 msg->err = ERR_VAL;
1331 if (ip_addr_cmp(&msg->conn->pcb.ip->local_ip, IP6_ADDR_ANY) &&
1332 (netconn_get_ipv6only(msg->conn) == 0)) {
1334 IP_SET_TYPE_VAL(msg->conn->pcb.tcp->local_ip, IPADDR_TYPE_ANY);
1335 IP_SET_TYPE_VAL(msg->conn->pcb.tcp->remote_ip, IPADDR_TYPE_ANY);
1340 lpcb = tcp_listen_with_backlog(msg->conn->pcb.tcp, msg->msg.lb.backlog);
1342 lpcb = tcp_listen(msg->conn->pcb.tcp);
1347 msg->err = ERR_MEM;
1350 if (sys_mbox_valid(&msg->conn->recvmbox)) {
1352 sys_mbox_free(&msg->conn->recvmbox);
1353 sys_mbox_set_invalid(&msg->conn->recvmbox);
1355 msg->err = ERR_OK;
1356 if (!sys_mbox_valid(&msg->conn->acceptmbox)) {
1357 msg->err = sys_mbox_new(&msg->conn->acceptmbox, DEFAULT_ACCEPTMBOX_SIZE);
1359 if (msg->err == ERR_OK) {
1360 msg->conn->state = NETCONN_LISTEN;
1361 msg->conn->pcb.tcp = lpcb;
1362 tcp_arg(msg->conn->pcb.tcp, msg->conn);
1363 tcp_accept(msg->conn->pcb.tcp, accept_function);
1367 msg->conn->pcb.tcp = NULL;
1371 } else if (msg->conn->state == NETCONN_LISTEN) {
1373 msg->err = ERR_OK;
1374 tcp_backlog_set(msg->conn->pcb.tcp, msg->msg.lb.backlog);
1377 msg->err = ERR_ARG;
1381 TCPIP_APIMSG_ACK(msg);
1394 struct api_msg *msg = (struct api_msg*)m; local
1396 if (ERR_IS_FATAL(msg->conn->last_err)) {
1397 msg->err = msg->conn->last_err;
1399 msg->err = ERR_CONN;
1400 if (msg->conn->pcb.tcp != NULL) {
1401 switch (NETCONNTYPE_GROUP(msg->conn->type)) {
1404 if (ip_addr_isany(&msg->msg.b->addr)) {
1405 msg->err = raw_send(msg->conn->pcb.raw, msg->msg.b->p);
1407 msg->err = raw_sendto(msg->conn->pcb.raw, msg->msg.b->p, &msg->msg.b->addr);
1414 if (ip_addr_isany(&msg->msg.b->addr) || IP_IS_ANY_TYPE_VAL(msg->msg.b->addr)) {
1415 msg->err = udp_send_chksum(msg->conn->pcb.udp, msg->msg.b->p,
1416 msg->msg.b->flags & NETBUF_FLAG_CHKSUM, msg->msg.b->toport_chksum);
1418 msg->err = udp_sendto_chksum(msg->conn->pcb.udp, msg->msg.b->p,
1419 &msg->msg.b->addr, msg->msg.b->port,
1420 msg->msg.b->flags & NETBUF_FLAG_CHKSUM, msg->msg.b->toport_chksum);
1423 if (ip_addr_isany_val(msg->msg.b->addr) || IP_IS_ANY_TYPE_VAL(msg->msg.b->addr)) {
1424 msg->err = udp_send(msg->conn->pcb.udp, msg->msg.b->p);
1426 … msg->err = udp_sendto(msg->conn->pcb.udp, msg->msg.b->p, &msg->msg.b->addr, msg->msg.b->port);
1436 TCPIP_APIMSG_ACK(msg);
1449 struct api_msg *msg = (struct api_msg*)m; local
1451 msg->err = ERR_OK;
1452 if (msg->conn->pcb.tcp != NULL) {
1453 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) {
1454 u32_t remaining = msg->msg.r.len;
1457 tcp_recved(msg->conn->pcb.tcp, recved);
1462 TCPIP_APIMSG_ACK(msg);
1474 struct api_msg *msg = (struct api_msg*)m; local
1476 msg->err = ERR_OK;
1477 if (msg->conn->pcb.tcp != NULL) {
1478 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) {
1479 tcp_backlog_accepted(msg->conn->pcb.tcp);
1482 TCPIP_APIMSG_ACK(msg);
1513 conn->write_offset < conn->current_msg->msg.w.len);
1515 apiflags = conn->current_msg->msg.w.apiflags;
1520 ((s32_t)(sys_now() - conn->current_msg->msg.w.time_started) >= conn->send_timeout)) {
1525 conn->current_msg->msg.w.len = 0;
1529 conn->current_msg->msg.w.len = conn->write_offset;
1535 dataptr = (const u8_t*)conn->current_msg->msg.w.dataptr + conn->write_offset;
1536 diff = conn->current_msg->msg.w.len - conn->write_offset;
1556 …conn_do_writemore: invalid length!", ((conn->write_offset + len) <= conn->current_msg->msg.w.len));
1561 if (dontblock && (len < conn->current_msg->msg.w.len)) {
1577 if ((conn->write_offset == conn->current_msg->msg.w.len) || dontblock) {
1579 conn->current_msg->msg.w.len = conn->write_offset;
1590 conn->current_msg->msg.w.len = 0;
1605 conn->current_msg->msg.w.len = 0;
1611 conn->current_msg->msg.w.len = 0;
1648 struct api_msg *msg = (struct api_msg*)m; local
1650 if (ERR_IS_FATAL(msg->conn->last_err)) {
1651 msg->err = msg->conn->last_err;
1653 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) {
1655 if (msg->conn->state != NETCONN_NONE) {
1657 msg->err = ERR_INPROGRESS;
1658 } else if (msg->conn->pcb.tcp != NULL) {
1659 msg->conn->state = NETCONN_WRITE;
1661 LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
1662 msg->conn->write_offset == 0);
1663 LWIP_ASSERT("msg->msg.w.len != 0", msg->msg.w.len != 0);
1664 msg->conn->current_msg = msg;
1665 msg->conn->write_offset = 0;
1667 if (lwip_netconn_do_writemore(msg->conn, 0) != ERR_OK) {
1668 LWIP_ASSERT("state!", msg->conn->state == NETCONN_WRITE);
1670 sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0);
1672 LWIP_ASSERT("state!", msg->conn->state != NETCONN_WRITE);
1675 lwip_netconn_do_writemore(msg->conn);
1681 msg->err = ERR_CONN;
1684 msg->err = ERR_VAL;
1688 msg->err = ERR_VAL;
1692 TCPIP_APIMSG_ACK(msg);
1704 struct api_msg *msg = (struct api_msg*)m; local
1706 if (msg->conn->pcb.ip != NULL) {
1707 if (msg->msg.ad.local) {
1708 ip_addr_copy(API_EXPR_DEREF(msg->msg.ad.ipaddr),
1709 msg->conn->pcb.ip->local_ip);
1711 ip_addr_copy(API_EXPR_DEREF(msg->msg.ad.ipaddr),
1712 msg->conn->pcb.ip->remote_ip);
1714 msg->err = ERR_OK;
1715 switch (NETCONNTYPE_GROUP(msg->conn->type)) {
1718 if (msg->msg.ad.local) {
1719 API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.raw->protocol;
1722 msg->err = ERR_CONN;
1728 if (msg->msg.ad.local) {
1729 API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.udp->local_port;
1731 if ((msg->conn->pcb.udp->flags & UDP_FLAGS_CONNECTED) == 0) {
1732 msg->err = ERR_CONN;
1734 API_EXPR_DEREF(msg->msg.ad.port) = msg->conn->pcb.udp->remote_port;
1741 if ((msg->msg.ad.local == 0) &&
1742 ((msg->conn->pcb.tcp->state == CLOSED) || (msg->conn->pcb.tcp->state == LISTEN))) {
1744 msg->err = ERR_CONN;
1746 …API_EXPR_DEREF(msg->msg.ad.port) = (msg->msg.ad.local ? msg->conn->pcb.tcp->local_port : msg->conn…
1755 msg->err = ERR_CONN;
1757 TCPIP_APIMSG_ACK(msg);
1770 struct api_msg *msg = (struct api_msg*)m; local
1773 enum netconn_state state = msg->conn->state;
1776 if ((msg->conn->pcb.tcp != NULL) &&
1777 (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP) &&
1778 ((msg->msg.sd.shut == NETCONN_SHUT_RDWR) || (state != NETCONN_LISTEN))) {
1782 msg->err = ERR_CONN;
1785 if (msg->msg.sd.shut & NETCONN_SHUT_WR) {
1788 LWIP_ASSERT("msg->conn->current_msg != NULL", msg->conn->current_msg != NULL);
1789 op_completed_sem = LWIP_API_MSG_SEM(msg->conn->current_msg);
1790 msg->conn->current_msg->err = ERR_CLSD;
1791 msg->conn->current_msg = NULL;
1792 msg->conn->write_offset = 0;
1793 msg->conn->state = NETCONN_NONE;
1794 NETCONN_SET_SAFE_ERR(msg->conn, ERR_CLSD);
1797 LWIP_ASSERT("msg->msg.sd.shut == NETCONN_SHUT_RD", msg->msg.sd.shut == NETCONN_SHUT_RD);
1800 msg->err = tcp_shutdown(msg->conn->pcb.tcp, 1, 0);
1803 msg->err = ERR_INPROGRESS;
1806 if (msg->msg.sd.shut & NETCONN_SHUT_RD) {
1808 netconn_drain(msg->conn);
1810 LWIP_ASSERT("already writing or closing", msg->conn->current_msg == NULL &&
1811 msg->conn->write_offset == 0);
1812 msg->conn->state = NETCONN_CLOSE;
1813 msg->conn->current_msg = msg;
1815 if (lwip_netconn_do_close_internal(msg->conn, 0) != ERR_OK) {
1816 LWIP_ASSERT("state!", msg->conn->state == NETCONN_CLOSE);
1818 sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0);
1820 LWIP_ASSERT("state!", msg->conn->state == NETCONN_NONE);
1823 lwip_netconn_do_close_internal(msg->conn);
1831 msg->err = ERR_CONN;
1833 TCPIP_APIMSG_ACK(msg);
1846 struct api_msg *msg = (struct api_msg*)m; local
1848 if (ERR_IS_FATAL(msg->conn->last_err)) {
1849 msg->err = msg->conn->last_err;
1851 if (msg->conn->pcb.tcp != NULL) {
1852 if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) {
1855 if (NETCONNTYPE_ISIPV6(msg->conn->type)) {
1856 if (msg->msg.jl.join_or_leave == NETCONN_JOIN) {
1857 msg->err = mld6_joingroup(ip_2_ip6(API_EXPR_REF(msg->msg.jl.netif_addr)),
1858 ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr)));
1860 msg->err = mld6_leavegroup(ip_2_ip6(API_EXPR_REF(msg->msg.jl.netif_addr)),
1861 ip_2_ip6(API_EXPR_REF(msg->msg.jl.multiaddr)));
1868 if (msg->msg.jl.join_or_leave == NETCONN_JOIN) {
1869 msg->err = igmp_joingroup(ip_2_ip4(API_EXPR_REF(msg->msg.jl.netif_addr)),
1870 ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr)));
1872 msg->err = igmp_leavegroup(ip_2_ip4(API_EXPR_REF(msg->msg.jl.netif_addr)),
1873 ip_2_ip4(API_EXPR_REF(msg->msg.jl.multiaddr)));
1880 msg->err = ERR_VAL;
1884 msg->err = ERR_CONN;
1887 TCPIP_APIMSG_ACK(msg);
1900 struct dns_api_msg *msg = (struct dns_api_msg*)arg; local
1907 API_EXPR_DEREF(msg->err) = ERR_VAL;
1910 API_EXPR_DEREF(msg->err) = ERR_OK;
1911 API_EXPR_DEREF(msg->addr) = *ipaddr;
1914 …rr %d msg->addr %p val %08x ipaddr val %08x \n", __func__, *(msg->err), (msg->addr), (msg->addr->…
1916 sys_sem_signal(API_EXPR_REF_SEM(msg->sem));
1928 struct dns_api_msg *msg = (struct dns_api_msg*)arg; local
1931 msg->dns_addrtype;
1936 API_EXPR_DEREF(msg->err) = dns_gethostbyname_addrtype(msg->name,
1937 API_EXPR_REF(msg->addr), lwip_netconn_do_dns_found, msg, addrtype);
1938 if (API_EXPR_DEREF(msg->err) != ERR_INPROGRESS) {
1941 … ("---> %s msg->err %d msg->addr %p val %08x\n", __func__, *(msg->err), (msg->addr), (msg->addr->…
1942 sys_sem_signal(API_EXPR_REF_SEM(msg->sem));