mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-25 00:11:07 +00:00
69fd7e1c32
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.
39 lines
778 B
C
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__ */
|