LIBNUTCLIENT_TCP(3)
π NAME π
okay so bestie, this page is libnutclient_tcp(3) β it's part of the NUT Manual and it's literally all about the TCP protocol functions for the Network UPS Tools high-level client access library. πΈ
The whole girlie squad of functions living here:
libnutclient_tcpnutclient_tcp_create_clientnutclient_tcp_is_connectednutclient_tcp_disconnectnutclient_tcp_reconnectnutclient_tcp_set_timeoutnutclient_tcp_get_timeoutnutclient_tcp_get_ssl_capsnutclient_tcp_is_ssl
β¨ SYNOPSIS β¨
the way that you just #include and go π
#include <nutclient.h>
#include <cstdint> /* uint16_t */
#include <ctime> /* 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);
π¦ DESCRIPTION π¦
so like. all of these functions are here so you can manage connections to upsd(8) using the NUT TCP protocol. no cap. π₯
nutclient_tcp_create_client()β this one creates theNUTCLIENT_TCP_tcontext and intends to connect toupsdat host and port. it's giving main character energy fr fr.
the context must be freed by nutclient_destroy(). don't forget bestie, she's not gonna clean up after herself π
- host can be a server name or a valid IPv4 or IPv6 address, like
"localhost","127.0.0.1"or"::1". β¨ - port is a valid TCP port, generally
3493. π
nutclient_tcp_is_connected()β vibe checks whether the connection is valid. π«Άnutclient_tcp_disconnect()β forces the specified connection to disconnect. bye bye πnutclient_tcp_reconnect()β forces a connection to reconnect, disconnecting it first if that's needed. iconic comeback behavior πnutclient_tcp_set_timeout()β sets the timeout duration for I/O operations. β³nutclient_tcp_get_timeout()β retrieves the timeout duration for I/O operations. π
timeout values are specified in seconds, and you use negative values for blocking. (yes, negative = blocking, that's the rule, no notes π)
π SEE ALSO π
and that's the whole page bestie!! π this was brought to you by Network UPS Tools 2.8.5, dated 10/07/2026 β go forth and connect responsibly, mwah ππ¦β¨
π¦ where this page comes from
- fedora 43: nut-devel 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 43: nut-devel 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut-devel 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut-devel 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms