Re: [cups-devel] IPP requests: Non-blocking or short timeout

Michael Sweet <[email protected]> Sun, 11 Sep 2016 14:22:03 -0400
Newsgroups gmane.comp.printing.cups.devel
Message-ID <[email protected]>
Till,

> On Sep 11, 2016, at 9:45 AM, Till Kamppeter <[email protected]> wrote:
> ...
> If the CUPS on the server is not available for some reason (but the server itself is available), the cupsDoRequest() call hangs and takes more than a minute to time out. This also blocks the shutdown via SIGTERM of cups-browsed.
> 
> What I would like to do is (preferably) reduce this timeout to something like 5 seconds. Is this possible?

The httpSetTimeout function can be used to manipulate the default read timeout for a given connection. But cupsDoRequest also attempts to reconnect on error (using a connection timeout of 30 seconds) so you might want to use cupsSendRequest and cupsGetResponse yourself to control the reconnect behavior...

> What I succeded is to replace httpConnectEncrypt() by my own with a 3 sec timeout, but this will probably only help on total absence of the server.

That takes care of the initial connection but not the subsequent re-connection...

> Or is the only way to use non-blocking mode? If so, is there somewhere sample code for doing such an IPP request non-blocking?

Non-blocking mode might help, but it should not be necessary for this situation.  It sounds more like the remote server is going away but the reconnection is taking too long...

_________________________________________________________
Michael Sweet, Senior Printing System Engineer