--- debian/patches/port | 60 ++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 37 deletions(-)
diff --git a/debian/patches/port b/debian/patches/port index 1a3a71f..92fffb3 100644 --- a/debian/patches/port +++ b/debian/patches/port @@ -1,8 +1,6 @@ -Index: lwip/port/include/arch/cc.h -=================================================================== --- /dev/null -+++ lwip/port/include/arch/cc.h -@@ -0,0 +1,77 @@ ++++ b/port/include/arch/cc.h +@@ -0,0 +1,68 @@ +/* + Copyright (C) 2017 Free Software Foundation, Inc. + Written by Joan Lledó. @@ -20,7 +18,7 @@ Index: lwip/port/include/arch/cc.h + General Public License for more details. + + You should have received a copy of the GNU General Public License -+ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ ++ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ + +#ifndef LWIP_ARCH_CC_H +#define LWIP_ARCH_CC_H @@ -39,18 +37,9 @@ Index: lwip/port/include/arch/cc.h +#define LWIP_TIMEVAL_PRIVATE 0 +#include <sys/time.h> + -+/* Use our own <sys/socket.h> */ -+#include <sys/socket.h> -+#include <netinet/in.h> -+#include <netinet/tcp.h> -+#include <netinet/udp.h> -+ +/* We need INT_MAX */ +#include <limits.h> + -+/* We use poll() instead of select()*/ -+#include <poll.h> -+ +/* Use our own ioctls */ +#include <sys/ioctl.h> + @@ -80,11 +69,9 @@ Index: lwip/port/include/arch/cc.h + } while(0) + +#endif /* LWIP_ARCH_CC_H */ -Index: lwip/port/include/arch/sys_arch.h -=================================================================== --- /dev/null -+++ lwip/port/include/arch/sys_arch.h -@@ -0,0 +1,61 @@ ++++ b/port/include/arch/sys_arch.h +@@ -0,0 +1,64 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. @@ -122,6 +109,9 @@ Index: lwip/port/include/arch/sys_arch.h +#define SYS_MBOX_NULL NULL +#define SYS_SEM_NULL NULL + ++/* Return code for an interrupted timed wait */ ++#define SYS_ARCH_INTR 0xfffffffeUL ++ +typedef u32_t sys_prot_t; + +struct sys_sem; @@ -146,11 +136,9 @@ Index: lwip/port/include/arch/sys_arch.h + +#endif /* LWIP_ARCH_SYS_ARCH_H */ + -Index: lwip/port/include/lwipopts.h -=================================================================== --- /dev/null -+++ lwip/port/include/lwipopts.h -@@ -0,0 +1,137 @@ ++++ b/port/include/lwipopts.h +@@ -0,0 +1,131 @@ +/* + Copyright (C) 2017 Free Software Foundation, Inc. + Written by Joan Lledó. @@ -168,7 +156,7 @@ Index: lwip/port/include/lwipopts.h + General Public License for more details. + + You should have received a copy of the GNU General Public License -+ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ ++ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ + +#ifndef HURD_LWIP_LWIPOPTS_H +#define HURD_LWIP_LWIPOPTS_H @@ -179,12 +167,6 @@ Index: lwip/port/include/lwipopts.h +/* Don't rename Sockets API functions */ +#define LWIP_COMPAT_SOCKETS 0 + -+/* Don't limit the number of sockets */ -+#define LWIP_SOCKET_OPEN_COUNT 1 -+ -+/* We're using lwip_poll() */ -+#define LWIP_SOCKET_POLL 1 -+ +/* Use Glibc malloc()/free() */ +#define MEM_LIBC_MALLOC 1 +#define MEMP_MEM_MALLOC 1 @@ -288,11 +270,9 @@ Index: lwip/port/include/lwipopts.h +#endif + +#endif -Index: lwip/port/sys_arch.c -=================================================================== --- /dev/null -+++ lwip/port/sys_arch.c -@@ -0,0 +1,741 @@ ++++ b/port/sys_arch.c +@@ -0,0 +1,747 @@ +/* + * Copyright (c) 2001-2003 Swedish Institute of Computer Science. + * All rights reserved. @@ -812,6 +792,8 @@ Index: lwip/port/sys_arch.c +#endif + if (ret == ETIMEDOUT) { + return SYS_ARCH_TIMEOUT; ++ } else if (ret == EINTR) { ++ return SYS_ARCH_INTR; + } + + /* Calculate for how long we waited for the cond. */ @@ -844,12 +826,16 @@ Index: lwip/port/sys_arch.c + if (time_needed == SYS_ARCH_TIMEOUT) { + pthread_mutex_unlock(&(sem->mutex)); + return SYS_ARCH_TIMEOUT; ++ } else if(time_needed == SYS_ARCH_INTR) { ++ /* This means we were interrupted, so don't wait again */ ++ sem->c++; ++ ++ if (sem->c > 1) { ++ sem->c = 1; ++ } + } -+ /* pthread_mutex_unlock(&(sem->mutex)); -+ return time_needed; */ + } else { -+ if(cond_wait_intr(&(sem->cond), &(sem->mutex), 0)) -+ { ++ if(cond_wait_intr(&(sem->cond), &(sem->mutex), 0)) { + /* This means we were interrupted, so don't wait again */ + sem->c++; + -- 2.14.0