Implement LWIP_SO_RCVTIMEO configuration option to enable/disable SO_RCVTIMEO on UDP sockets/netconn.

This commit is contained in:
fbernon
2007-03-08 20:58:46 +00:00
parent a868832776
commit fdcb87db19
9 changed files with 126 additions and 52 deletions

View File

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

View File

@@ -420,6 +420,11 @@ a lot of data that needs to be copied, this should be set high. */
#define LWIP_POSIX_SOCKETS_IO_NAMES 1
#endif
/* Enable SO_RCVTIMEO processing (only for UDP sockets) */
#ifndef LWIP_SO_RCVTIMEO
#define LWIP_SO_RCVTIMEO 0
#endif
/* Enable SO_REUSEADDR and SO_REUSEPORT options */
#ifndef SO_REUSE
#define SO_REUSE 0

View File

@@ -53,7 +53,8 @@ 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,t)
#define sys_mbox_fetch_timeout(m,d,t)
#define sys_mbox_fetch(m,d)
#define sys_mbox_post(m,d)
#define sys_mbox_free(m)
@@ -116,8 +117,12 @@ 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, u32_t timeout);
#if LWIP_SO_RCVTIMEO
void sys_mbox_fetch_timeout(sys_mbox_t mbox, void **msg, u32_t timeout);
#define sys_mbox_fetch(m,d) sys_mbox_fetch_timeout(m,d,0)
#else
void sys_mbox_fetch(sys_mbox_t mbox, void **msg);
#endif /* LWIP_SO_RCVTIMEO */
/* Thread functions. */
sys_thread_t sys_thread_new(void (* thread)(void *arg), void *arg, int prio);