From 48aae4ef2f9aa1abb99560e904d79a4fcac63fce Mon Sep 17 00:00:00 2001
From: Martine Lenders <m.lenders@fu-berlin.de>
Date: Wed, 10 May 2017 20:50:28 +0200
Subject: [PATCH] lwip: port to v2.0.2

---
 pkg/lwip/Makefile                             |   2 +-
 pkg/lwip/contrib/sock/lwip_sock.c             |   5 +++++
 pkg/lwip/contrib/sock/tcp/lwip_sock_tcp.c     |   3 ---
 pkg/lwip/contrib/sys_arch.c                   |   5 +++++
 pkg/lwip/include/arch/cc.h                    |  17 -----------------
 pkg/lwip/include/lwipopts.h                   |   2 ++
 pkg/lwip/patches/0001-Fix-warnings.patch      | Bin 938 -> 1571 bytes
 .../patches/0002-Add-RIOT-Makefiles.patch     | Bin 3176 -> 3176 bytes
 8 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/pkg/lwip/Makefile b/pkg/lwip/Makefile
index 9aef775e40..d564d1fce1 100644
--- a/pkg/lwip/Makefile
+++ b/pkg/lwip/Makefile
@@ -1,6 +1,6 @@
 PKG_NAME=lwip
 PKG_URL=git://git.savannah.nongnu.org/lwip.git
-PKG_VERSION=fd4a109ffa6513b28a0c780a952cef1110423717
+PKG_VERSION=STABLE-2_0_2_RELEASE_VER
 PKG_LICENSE=BSD-3-Clause
 
 .PHONY: all
diff --git a/pkg/lwip/contrib/sock/lwip_sock.c b/pkg/lwip/contrib/sock/lwip_sock.c
index a46790b04c..dba775c17d 100644
--- a/pkg/lwip/contrib/sock/lwip_sock.c
+++ b/pkg/lwip/contrib/sock/lwip_sock.c
@@ -249,6 +249,11 @@ static int _create(int type, int proto, uint16_t flags, struct netconn **out)
     if ((*out = netconn_new_with_proto_and_callback(type, proto, NULL)) == NULL) {
         return -ENOMEM;
     }
+#if LWIP_IPV4 && LWIP_IPV6
+    if (type & NETCONN_TYPE_IPV6) {
+        netconn_set_ipv6only(*out, 1);
+    }
+#endif
 #if SO_REUSE
     if (flags & SOCK_FLAGS_REUSE_EP) {
         ip_set_option((*out)->pcb.ip, SOF_REUSEADDR);
diff --git a/pkg/lwip/contrib/sock/tcp/lwip_sock_tcp.c b/pkg/lwip/contrib/sock/tcp/lwip_sock_tcp.c
index df879ac3a9..77ee9b894a 100644
--- a/pkg/lwip/contrib/sock/tcp/lwip_sock_tcp.c
+++ b/pkg/lwip/contrib/sock/tcp/lwip_sock_tcp.c
@@ -27,7 +27,6 @@ static inline void _tcp_sock_init(sock_tcp_t *sock, struct netconn *conn,
 {
     mutex_init(&sock->mutex);
     mutex_lock(&sock->mutex);
-    netconn_set_noautorecved(conn, 1);
     sock->conn = conn;
     sock->queue = queue;
     sock->last_buf = NULL;
@@ -340,8 +339,6 @@ ssize_t sock_tcp_read(sock_tcp_t *sock, void *data, size_t max_len,
         }
     }
     if (offset > 0) {
-        /* inform lwIP how much we receive*/
-        netconn_recved(sock->conn, (u32_t)offset);
         res = offset;   /* we received data so return it */
     }
     /* unset flags */
diff --git a/pkg/lwip/contrib/sys_arch.c b/pkg/lwip/contrib/sys_arch.c
index 6eec97f3e1..2794122b0d 100644
--- a/pkg/lwip/contrib/sys_arch.c
+++ b/pkg/lwip/contrib/sys_arch.c
@@ -36,6 +36,11 @@ void sys_init(void)
     return;
 }
 
+u32_t sys_now(void)
+{
+    return (uint32_t)(xtimer_now_usec64() / US_PER_MS);
+}
+
 err_t sys_mutex_new(sys_mutex_t *mutex)
 {
     mutex_init((mutex_t *)mutex);
diff --git a/pkg/lwip/include/arch/cc.h b/pkg/lwip/include/arch/cc.h
index 663efe794a..d4a943684b 100644
--- a/pkg/lwip/include/arch/cc.h
+++ b/pkg/lwip/include/arch/cc.h
@@ -43,23 +43,6 @@ extern "C" {
 #endif
 #endif
 
-/**
- * @brief   Generic types for lwIP
- * @{
- */
-typedef uint8_t u8_t;                   /**< unsigned 8-bit type */
-typedef int8_t  s8_t;                   /**< signed 8-bit type */
-typedef uint16_t u16_t;                 /**< unsigned 16-bit type */
-typedef int16_t  s16_t;                 /**< signed 16-bit type */
-typedef uint32_t u32_t;                 /**< unsigned 32-bit type */
-typedef int32_t  s32_t;                 /**< signed 32-bit type */
-
-typedef unsigned long mem_ptr_t;        /**< A generic pointer type. It has to be an integer type
-                                         *   (not void*, due to some pointer arithmetics). */
-/**
- * @}
- */
-
 /**
  * @brief   (sn)printf formatters for the generic lwIP types
  * @{
diff --git a/pkg/lwip/include/lwipopts.h b/pkg/lwip/include/lwipopts.h
index 6dedf10f5a..c6632eec01 100644
--- a/pkg/lwip/include/lwipopts.h
+++ b/pkg/lwip/include/lwipopts.h
@@ -136,6 +136,8 @@ extern "C" {
 #endif
 
 #define LWIP_SOCKET             (0)
+
+#define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS
 #define MEMP_MEM_MALLOC         (1)
 #define NETIF_MAX_HWADDR_LEN    (GNRC_NETIF_HDR_L2ADDR_MAX_LEN)
 
diff --git a/pkg/lwip/patches/0001-Fix-warnings.patch b/pkg/lwip/patches/0001-Fix-warnings.patch
index be2dc43362fd059adcd7bc5c15f36cd4623f1da5..c90f306ba72ebeebda08e245e705f1de5a13594c 100644
GIT binary patch
literal 1571
zcma)6`%j}l5dNLNVxozm<xyUxwVuXmt!JX9(R$|M8M468?u9M{sE?d~{LMn^`KZZ}
z(qU(2zn%T|n;jR~0+OEVBoT9>c-QWBUB>*x_Au^u?WFH@drs{3JVsu)$OK$t4t5VL
zYf%5du`F8|6U+cESW$6-aE>CzqJ(b?#?!+^<2BO8YvS@i8L<inFr6=TupPL}9tg(n
zg6$7npKw95Y|B!vm*H=WssY?hhSTHkV0WB*81pB1WQE{jRw{~N7z&g{)QPeJJ3N2z
zJ0kYY2wuPe?QKk8#S;q9vyM5C@Dxjk=1j~m)@ceCCDJA`QL0)?I$}&|q8uA7MTvQm
zfMLvd1+24a*>ICr;l#%iSfT6p?7nG+zRPw)+OB2!o+tOP8BNhN4K^bl9)jV!UA+fd
zW5_`p54gyem0DKCGO8dCmkG3U9aiI-0%%iCOOZUR9-e^8;b0%E7W{b|01(J$^Drxd
zh(&X}<M(ERu}?(hd+&2EPA-loKh@7u(v-z<p+jSXEU%1%#zP>+!TeDU0+L5-Pcha-
zNy~FTsADBo>dppaflpO1&+<A8%aTrPr&{EMqiw{Avi$i!V036e;Qa<WZMeb+`2$H0
z7%XT(HbaOrl90%V?jn0YD3GXPAy0YrJb+B3&%_m3O5_EpnY3iS$AvbGFlEmYAVirR
zu@d1CVTKh%nMioCU~(d4$vb>VWcx1j919=-`d6pNla>kX&KFW$cflJ~tz0XSdQLyI
zJrZfsi|jt`ej(EJqz?*RyQMsB%X6eYS5^vCwqWq~RD+x@hjOjgIu7mHkZAh>b(xd~
zkDqi{x(<!G_4;M&4UOlwXOm!ba&&V#RxeMcXX9o-UEV~FPJ`>|aC)MHy7jq&K~q(|
z5FIFlC{K5FBm5FuEfUj82eMB-0#tO7HBSAt))wr**~AZqqtR9HV|acxl6_@t)BL(3
zIwE*kRd+L*DB4$%*Q~4I?OHOt5j#;K@R7Kb1idyQ5g`}#)t!Gqz2=PDWF2~4xu0#i
Wim4hB^rnKOdgw}09J6P7it-nQlGkql

literal 938
zcma)4+iuf95PjdTIJ7S@zOEhYBp{Rs8c``}qb3p$6jk=_I9`<4l`o{I^xs*>g_fd3
ztSn2rGjlF8GcAiPJn{#`h4e$gCHX?6{Xs(U(BnZEg_LsHm*FspFfVc}=@vYK=Z*Fs
ze9z--s$oW$$7QW@!i;iBWrcU!SZ&7J?$zFOuMRcu*~hr15ms4af%~{9zH1o%20R=E
zp~i*janEDRCizC99^uPkvik4|-1Wa=s_w9h%UtE_iZR=^8LCpaDi@nZlDpZdTUS!j
ztep%$5yI4`P2xz^h9I&yUz4=ZhsrC`f{VQBnT7=)k~Y-cZG$nX(iFD6RyAVxAVqR8
z#FXyB9fna5he6;tB1!@=6wuDXe!o?I1ea;mID$PM!ww^B08{_Dhw+#JueDsP3P@GO
ziS`;-zYS_@>3%Yw&lfirmy_l4>}sVOfVdQyD}<9dZN1BIs!}aG#q4<|vrnG`bmhG*
zRaLwu>xsvJEN~B%_Fnb=kQ)ZBnT-x{F`KNWmsj(fzcGxrc)%{x1L}DOGyj+Enwik&
zAHI9dxR12ay_3VdkC_iItiLGGQ7X%##L0PzA4Q{AFt1S;Xezz$ZLc~*)^R%IM6zn@
d5_+78Y{#Gx%cohKv~0QFKfNSi+!;EYv0wS$8z}$)

diff --git a/pkg/lwip/patches/0002-Add-RIOT-Makefiles.patch b/pkg/lwip/patches/0002-Add-RIOT-Makefiles.patch
index 4b9ec25d1941e21fd4763a8b8ae05497e4399650..d6e0000b72d9f96bc7d152fb5b40c34b9a10931d 100644
GIT binary patch
delta 62
zcmaDM@j^n^ttdZN!4L>i5)+e>Oij!TEsadf%}gv4O;ZfaOp{X$j15y$Qj8NV%`DP3
Q>YDJd8|j(rnQ(Cd07{t<$^ZZW

delta 62
zcmaDM@j^n^ttdZN!6eNv%`(~4I3>wEEiE-QIn~0@2*|TcGPX=Hw=l9aOEpb0vq-eq
QsB6N*Zm4IeXUN3`0C0p6hX4Qo

-- 
GitLab