]> granicus.if.org Git - esp-idf/commitdiff
lwip/esp32: support iperf
authorliuzhifu <liuzhifu@espressif.com>
Sun, 9 Oct 2016 07:45:25 +0000 (15:45 +0800)
committerliuzhifu <liuzhifu@espressif.com>
Sun, 9 Oct 2016 07:45:25 +0000 (15:45 +0800)
1. Add _exit() definition in syscalls.c
2. Fix a bug in sockets.c on which iperf depends

components/esp32/syscalls.c
components/lwip/api/sockets.c

index 537efed1d48c5ad74eca06e1eb5bf5946e595f0f..052605ee3eed3ad3207d5d0e5ed7d5553bd17e9a 100644 (file)
@@ -142,6 +142,10 @@ int _open_r(struct _reent *r, const char * path, int flags, int mode) {
     return 0;
 }
 
+void _exit(int __status) {
+    abort();
+}
+
 ssize_t _write_r(struct _reent *r, int fd, const void * data, size_t size) {
     const char *data_c = (const char *)data;
     if (fd == STDOUT_FILENO) {
index 91a5222e68117960c3027a7f3457ad1758b0fc72..350847b57c4f44a63037ae1a68930f66e0a866dd 100755 (executable)
@@ -1442,8 +1442,15 @@ lwip_sendto(int s, const void *data, size_t size, int flags,
 #ifdef LWIP_ESP8266
         /*fix the code for getting the UDP proto's remote information by liuh at 2014.8.27*/
         if (NETCONNTYPE_GROUP(netconn_type(sock->conn)) == NETCONN_UDP){
-            buf.addr.u_addr.ip4.addr = sock->conn->pcb.udp->remote_ip.u_addr.ip4.addr;
-            remote_port = sock->conn->pcb.udp->remote_port;
+            if(NETCONNTYPE_ISIPV6(netconn_type(sock->conn))) {
+                memcpy(&buf.addr.u_addr.ip6.addr, sock->conn->pcb.udp->remote_ip.u_addr.ip6.addr,16);
+                remote_port = sock->conn->pcb.udp->remote_port;
+                IP_SET_TYPE(&buf.addr, IPADDR_TYPE_V6);
+            } else {
+                buf.addr.u_addr.ip4.addr = sock->conn->pcb.udp->remote_ip.u_addr.ip4.addr;
+                remote_port = sock->conn->pcb.udp->remote_port;
+                IP_SET_TYPE(&buf.addr, IPADDR_TYPE_V4);
+            }
         } else {
 #endif
             remote_port = 0;