genode/libports/include/lwip/arch/sys_arch.h
Josef Söntgen 69fd7e1c32 libports: update lwip to STABLE-1.4.1-RC1
The new version works fine but there is an issue with connect()
that needs the included patch:

There is no actual handling of EALREADY in lwip. It sets errno
to EALREADY when the connection was established. Unfortunatly this
is really bad because most programs expect to receive errno EISCONN
if the connection was successfully established. So this behaviour
breaks Qt4 and several noux/net packages (like lynx) because those
programs end up in an endless loop trying to connect via an already
connected socket. The longterm solution would be fixing the wrong
behaviour in lwip (there are already bug-reports on lwip's mailinglist)
but for now, it works well enough to simple change lwip's err_to_errno
table to set errno to EISCONN when the connection was established.
2012-08-15 14:31:18 +02:00

39 lines
778 B
C

/*
* \brief Platform definitions for certain types in LwIP.
* \author Stefan Kalkowski
* \date 2009-11-10
*/
/*
* Copyright (C) 2009-2012 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef __LWIP__ARCH__SYS_ARCH_H__
#define __LWIP__ARCH__SYS_ARCH_H__
#include <arch/cc.h>
struct _sys_sem_t {
void* ptr;
};
typedef struct _sys_sem_t sys_sem_t;
struct _sys_mbox_t {
void* ptr;
};
typedef struct _sys_mbox_t sys_mbox_t;
typedef mem_ptr_t sys_thread_t;
typedef mem_ptr_t sys_prot_t;
#define SYS_MBOX_NULL 0
#define SYS_SEM_NULL 0
sys_prot_t sys_arch_protect(void);
void sys_arch_unprotect(sys_prot_t pval);
#endif /* __LWIP__ARCH__SYS_ARCH_H__ */