Citeren Frédéric Bohé <[email protected]>:

I am currently working on the nut scanner. For detecting available upsd
on the network, I rely on upscli_connect. The problem with this function
is that it calls a blocking "connect" function.

This is a serious problem, not only for the nut-scanner but for basically all nut clients we currently bundle.

So the nut-scanner is
blocked while waiting for the TCP timeout when trying to connect to an
IP without upsd available . Since this timeout may be rather long (3
minutes on my host), I would like to add a timeout parameter to
upscli_connect.

I don't think this is a good idea.

I propose to add a upscli_tryconnect function accepting a timeout
parameter, which will be the copy of the current upscli_connect + the
management of the timeout. The upscli_connect will be only a wrapper on
top of upscli_tryconnect, calling it without timeout.
Please let me know if this makes sense to you.

The upscli_connnect() call should not block. If it does, that is a problem that needs fixing, rather than adding an timeout. On what kind of system did you test this? If I attempt to connect upsmon to a non-existing server socket, the following is shown (-DDD):

   0.001902     Trying to connect to UPS [myups@localhost]
0.002667 UPS [myups@localhost]: connect failed: Connection failure: Network is unreachable
   0.002690     do_notify: ntype 0x0005 (COMMBAD)
   0.002704     Communications with UPS myups@localhost lost

Best regards, Arjen
--
Please keep list traffic on the list (off-list replies will be rejected)


_______________________________________________
Nut-upsdev mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsdev

Reply via email to