'\" t .\" Title: libnutclient_tcp .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 06/21/2026 .\" Manual: NUT Manual .\" Source: Network UPS Tools 2.8.5 .\" Language: English .\" .TH "LIBNUTCLIENT_TCP" "3" "06/21/2026" "Network UPS Tools 2\&.8\&.5" "NUT Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" libnutclient_tcp, nutclient_tcp_create_client, nutclient_tcp_is_connected, nutclient_tcp_disconnect, nutclient_tcp_reconnect, nutclient_tcp_set_timeout, nutclient_tcp_get_timeout, nutclient_tcp_get_ssl_caps, nutclient_tcp_is_ssl \- TCP protocol related function for Network UPS Tools high\-level client access library .SH "SYNOPSIS" .sp .nf #include #include /* uint16_t */ #include /* time_t */ typedef NUTCLIENT_t NUTCLIENT_TCP_t; NUTCLIENT_TCP_t nutclient_tcp_create_client( const char* host, uint16_t port); int nutclient_tcp_is_connected(NUTCLIENT_TCP_t client); void nutclient_tcp_disconnect(NUTCLIENT_TCP_t client); int nutclient_tcp_reconnect(NUTCLIENT_TCP_t client); void nutclient_tcp_set_timeout(NUTCLIENT_TCP_t client, time_t timeout); time_t nutclient_tcp_get_timeout(NUTCLIENT_TCP_t client); /* SSL (NUT STARTTLS) support, behavior may be build\-dependent * (none/OpenSSL/NSS): */ /* Capabilities of this build, bitmask: */ #define UPSCLI_SSL_CAPS_NONE 0 /* No ability to use SSL */ #define UPSCLI_SSL_CAPS_OPENSSL 1 /* Can use OpenSSL\-specific setup */ #define UPSCLI_SSL_CAPS_NSS 2 /* Can use Mozilla NSS\-specific setup */ int nutclient_tcp_get_ssl_caps(void); /* Is the specified client currently connected in SSL mode? */ int nutclient_tcp_is_ssl(NUTCLIENT_TCP_t client); NUTCLIENT_TCP_t nutclient_tcp_create_client_ssl_OpenSSL( const char* host, uint16_t port, int try_ssl, int force_ssl, int certverify, const char *ca_path, const char *ca_file, const char *cert_file, const char *key_file, const char *key_pass); void nutclient_tcp_set_ssl_config_OpenSSL(NUTCLIENT_TCP_t client, int force_ssl, int certverify, const char *ca_path, const char *ca_file, const char *cert_file, const char *key_file, const char *key_pass); NUTCLIENT_TCP_t nutclient_tcp_create_client_ssl_NSS( const char* host, uint16_t port, int try_ssl, int force_ssl, int certverify, const char *certstore_path, const char *certstore_pass, const char *certstore_prefix, const char *certhost_name, const char *certident_name); void nutclient_tcp_set_ssl_config_NSS(NUTCLIENT_TCP_t client, int force_ssl, int certverify, const char *certstore_path, const char *certstore_pass, const char *certstore_prefix, const char *certhost_name, const char *certident_name); /* Individual SSL option getters/setters: */ void nutclient_tcp_set_ssl_try(NUTCLIENT_TCP_t client, int try_ssl); int nutclient_tcp_get_ssl_try(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_force(NUTCLIENT_TCP_t client, int force_ssl); int nutclient_tcp_get_ssl_force(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_certverify(NUTCLIENT_TCP_t client, int certverify); int nutclient_tcp_get_ssl_certverify(NUTCLIENT_TCP_t client); /* OpenSSL (PEM): Trusted CA directory: */ void nutclient_tcp_set_ssl_capath(NUTCLIENT_TCP_t client, const char* ca_path); const char* nutclient_tcp_get_ssl_capath(NUTCLIENT_TCP_t client); /* Trusted CA file: */ void nutclient_tcp_set_ssl_cafile(NUTCLIENT_TCP_t client, const char* ca_file); const char* nutclient_tcp_get_ssl_cafile(NUTCLIENT_TCP_t client); /* Client certificate (public): */ void nutclient_tcp_set_ssl_certfile(NUTCLIENT_TCP_t client, const char* cert_file); const char* nutclient_tcp_get_ssl_certfile(NUTCLIENT_TCP_t client); /* Client key (private): */ void nutclient_tcp_set_ssl_keyfile(NUTCLIENT_TCP_t client, const char* key_file); const char* nutclient_tcp_get_ssl_keyfile(NUTCLIENT_TCP_t client); /* OpenSSL and NSS: Client key (private): */ void nutclient_tcp_set_ssl_keypass(NUTCLIENT_TCP_t client, const char* key_pass); const char* nutclient_tcp_get_ssl_keypass(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_certstore_path(NUTCLIENT_TCP_t client, const char* certstore_path); const char* nutclient_tcp_get_ssl_certstore_path(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_certstore_prefix(NUTCLIENT_TCP_t client, const char* certstore_prefix); const char* nutclient_tcp_get_ssl_certstore_prefix(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_certident_name(NUTCLIENT_TCP_t client, const char* certident_name); const char* nutclient_tcp_get_ssl_certident_name(NUTCLIENT_TCP_t client); void nutclient_tcp_set_ssl_certhost_name(NUTCLIENT_TCP_t client, const char* certhost_name); const char* nutclient_tcp_get_ssl_certhost_name(NUTCLIENT_TCP_t client); .fi .SH "DESCRIPTION" .sp These functions allow to manage connections to \fBupsd\fR(8) using NUT TCP protocol\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_create_client()\fR function create the \fINUTCLIENT_TCP_t\fR context and intend to connect to upsd at \fIhost\fR and \fIport\fR\&. .sp The context must be freed by \fInutclient_destroy()\fR\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIhost\fR can be a sever name or a valid IPv4 or IPv6 address like "localhost", "127\&.0\&.0\&.1" or "::1"\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIport\fR is a valid TCP port, generally \fI3493\fR\&. .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_is_connected()\fR function test if the connection is valid\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_disconnect()\fR function force to disconnect the specified connection\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_reconnect()\fR function force to reconnect a connection, disconnecting it if needed\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_set_timeout()\fR function set the timeout duration for I/O operations\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The \fBnutclient_tcp_get_timeout()\fR function retrieve the timeout duration for I/O operations\&. .sp \fItimeout\fR values are specified in seconds, use negative values for blocking\&. .RE .SH "SEE ALSO" .sp \fBlibnutclient\fR(3) \fBlibnutclient_general\fR(3)