timeout switch for actsync

Julien ÉLIE julien at trigofacile.com
Fri Jun 24 18:21:50 UTC 2011


Hi Florian,

> gdb shows actsync is hanging in a call to fgets in NNTPconnect() (from
> actsync.c:get_active()). While I don't understand why fgets doesn't
> return when the TCP connection times out, looking around I found that
> innxmit and innxbatch can use alarm() to set a timeout (other users of
> NNTPconnect, such as nntpget, rnews, clientlib.c and nnrpd/post.c
> apparently don't).
>
> When I tried to add a switch to actsync to implement a timeout similar
> to innxmit, I found that the letters used there (-t and -T) are already
> in use for other things. So what would be a good name for a timeout
> switch for actsync? And since fgets never seems to return in certain
> cases, shouldn't the timeout be implemented for all users of
> NNTPconnect, perhaps directly in that function?

I think the best solution would be to implement the timeout directly in 
NNTPconnect, around the call to fgets().

An interesting thread to read here, in case it could interest you:
   http://stackoverflow.com/questions/1715413/longjmp-from-signal-handler


fgets() returns once it receives a signal, with EINTR (interruption).
I hope fgets() has the same behaviour everywhere…  :-)

-- 
Julien ÉLIE

« Ce n'est pas en tournant le dos aux choses qu'on leur fait face. »
   (Pierre Dac)



More information about the inn-workers mailing list