[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Sockopt SND_TIMEO

From: Fabian Koch
Subject: Re: [lwip-users] Sockopt SND_TIMEO
Date: Thu, 14 Jan 2010 11:18:41 +0100

address@hidden wrote on 13.01.2010 17:41:54:
> A more sophisticated way to implement this (which might even have
> the potential to be included in CVS?) would be to have a timstamp
> when write was started and let poll_tcp() or do_writemore() check
> whether the operation timed out (using sys_now() to get the
> timestamp and compare it). If you do that, it would be nice to share
> the work as a patch entry on savannah.

Hey Simon,

sys_now() is only used when LWIP_TCP_TIMESTAMPS is 1 and it's implementation is up to the user (probably in sys_arch.c), correct?
It would be great to document that at the appropriate places (release notes and Wiki) so that people don't trip over the missing function, when I use that as a timestamp provider. (Maybe I just missed it, but in "porting for an OS" it's not documented)

Also, I would make the feature optional and disabled in the standard version (just like the UDP Infos).
And maybe create the sockopt for it.

So in short:

1) create a timestamp in do_write() via sys_now() and save it in msg->conn->write_timestamp
2) at the beginning of do_writemore() get a current timestamp via sys_now() and compare it to msg->conn->write_timestamp
3) if the difference is greater than conn->pcb.tcp->snd_timeo then clear write_msg,_offset and state and signal op_complete (with ERR_* set)
4) have a reasonable default value for conn->pcb.tcp->snd_timeo in the area of 10-30 sec.?
[5) add the parsing of SOCKET_SO_SNDTIMEO to the socket API. I might not do that because I don't use that API]

Would that be okay with you guys and are there plans to release another 1.3.x Version before 1.4.0?
As I said before, we treat LwIP as an external Blob of Software that we don't change, so I'd need my own Patch included in an official Version "soon".

kind regards,
reply via email to

[Prev in Thread] Current Thread [Next in Thread]