UPSCLI_INIT_DEFAULT_CONNECT_TIMEOUT(3) ====================================== NAME ---- upscli_init_default_connect_timeout - Initialize upsclient module aspect of default timeout for initial connections. SYNOPSIS -------- ------ #include int upscli_init_default_connect_timeout( const char *cli_secs, const char *config_secs, const char *default_secs); ------ DESCRIPTION ----------- The *upscli_init_default_connect_timeout()* function initializes upsclient module aspect of default connection timeout for linkman:upscli_connect[3], which may be important when e.g. linkman:upsc[8] scripting or linkman:upsmon[8] configuration refers to unresponsive hosts, or when the host name resolution lags, etc. By default, linkman:upscli_connect[3] blocks indefinitely in its attempts to connect (or until the system transport layer interrupts such an attempt). It populates the value from different sources, mostly C strings which represent a floating-point non-negative number (invalid parsing is logged and may impact the return value), any or all of them may be `NULL` to skip, and in specific order (last valid hit wins): * built-in '0' meaning indefinitely blocking (NUT default for this method over at least 20 years); * the number from `default_secs` as a particular NUT or third-party client program's built-in preferred (low-priority) default; * the number from `NUT_DEFAULT_CONNECT_TIMEOUT` environment variable as a site-local preference (generally pre-set in linkman:nut.conf[5]); * the number from `config_secs` as a particular NUT or third-party client program's configuration file default; * the number from `cli_secs` as a particular NUT or third-party client program's setting from command line (highest priority). Internally, calls linkman:upscli_set_default_connect_timeout[3] for most of the string related processing. The upsclient module tracks if *upscli_init_default_connect_timeout()* function was called and succeeded, in order to call it once (if never used) from the linkman:upscli_connect[3] or linkman:upscli_init[3] methods. This allows unmodified (legacy) NUT clients to consistently benefit from presence of the `NUT_DEFAULT_CONNECT_TIMEOUT` environment variable. This tracking does not preclude programs from explicitly calling the method any amount of times. RETURN VALUE ------------ The *upscli_init_default_connect_timeout()* function returns '0' on success (either if all strings were `NULL` so the built-in default is applied, or at least one of those strings that were set was valid and its value got applied), or '-1' if an error occurs (at least one string was not `NULL`, and none of the strings was valid). SEE ALSO -------- linkman:upscli_connect[3], linkman:upscli_tryconnect[3], linkman:upscli_set_default_connect_timeout[3], linkman:upscli_get_default_connect_timeout[3], linkman:upscli_init[3]