Implement SO_RCVTIMEO on UDP sockets/netconn.

This commit is contained in:
fbernon
2007-03-06 16:41:02 +00:00
parent 874bfe19d2
commit 7fd37d4e87
9 changed files with 129 additions and 106 deletions

View File

@@ -92,6 +92,7 @@ struct netconn {
sys_mbox_t acceptmbox;
sys_sem_t sem;
int socket;
int recv_timeout;
u16_t recv_avail;
void (* callback)(struct netconn *, enum netconn_evt, u16_t len);
};

View File

@@ -40,26 +40,28 @@ typedef s8_t err_t;
/* Definitions for error constants. */
#define ERR_OK 0 /* No error, everything OK. */
#define ERR_MEM -1 /* Out of memory error. */
#define ERR_BUF -2 /* Buffer error. */
#define ERR_OK 0 /* No error, everything OK. */
#define ERR_MEM -1 /* Out of memory error. */
#define ERR_BUF -2 /* Buffer error. */
#define ERR_ABRT -3 /* Connection aborted. */
#define ERR_RST -4 /* Connection reset. */
#define ERR_CLSD -5 /* Connection closed. */
#define ERR_CONN -6 /* Not connected. */
#define ERR_ABRT -3 /* Connection aborted. */
#define ERR_RST -4 /* Connection reset. */
#define ERR_CLSD -5 /* Connection closed. */
#define ERR_CONN -6 /* Not connected. */
#define ERR_VAL -7 /* Illegal value. */
#define ERR_VAL -7 /* Illegal value. */
#define ERR_ARG -8 /* Illegal argument. */
#define ERR_ARG -8 /* Illegal argument. */
#define ERR_RTE -9 /* Routing problem. */
#define ERR_RTE -9 /* Routing problem. */
#define ERR_USE -10 /* Address in use. */
#define ERR_USE -10 /* Address in use. */
#define ERR_IF -11 /* Low-level netif error */
#define ERR_ISCONN -12 /* Already connected. */
#define ERR_IF -11 /* Low-level netif error */
#define ERR_ISCONN -12 /* Already connected. */
#define ERR_TIMEOUT -13 /* Timeout. */
#ifdef LWIP_DEBUG

View File

@@ -87,7 +87,7 @@ struct sockaddr {
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_ERROR 0x1007 /* get error status and clear */
#define SO_TYPE 0x1008 /* get socket type */
#define SO_CONTIMEO 0x1009 /* connect timeout */
/*

View File

@@ -53,7 +53,7 @@ struct sys_timeo {u8_t dummy;};
#define sys_sem_wait(s)
#define sys_sem_free(s)
#define sys_mbox_new() 0
#define sys_mbox_fetch(m,d)
#define sys_mbox_fetch(m,d,t)
#define sys_mbox_post(m,d)
#define sys_mbox_free(m)
@@ -116,7 +116,7 @@ sys_mbox_t sys_mbox_new(void);
void sys_mbox_post(sys_mbox_t mbox, void *msg);
u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout);
void sys_mbox_free(sys_mbox_t mbox);
void sys_mbox_fetch(sys_mbox_t mbox, void **msg);
void sys_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout);
/* Thread functions. */