Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
09cf5f2
Introduce NUT "authconf" file support [#3329]
jimklimov May 11, 2026
39ce4fd
tests/test_authconf.c: drop "Mocks for functions usually provided by …
jimklimov May 12, 2026
8c252d2
clients/authconf.{c,h}, tests, docs: extend upscli_dump_authconf{,_li…
jimklimov May 12, 2026
e871d81
clients/authconf.{c,h}, docs/man/upscli_find_authconf.txt: refactor w…
jimklimov May 12, 2026
f19209b
common/common.c et al: relocate check_perms() from upsd to common cod…
jimklimov May 12, 2026
95519e8
clients/authconf.c: parse_authconf_file(): call check_perms(filename)…
jimklimov May 12, 2026
9afa1f5
clients/upsclient.{c,h}, docs/man/upscli_init.txt: introduce upscli_i…
jimklimov May 12, 2026
8c67872
clients/authconf.{c,h}, docs/man/upscli_read_authconf.txt: add search…
jimklimov May 12, 2026
7467206
tests/test_authconf.c: honour NUT_DEBUG_LEVEL [#3329]
jimklimov May 12, 2026
17e1a86
tests/test_authconf.c: add a dev-test for discovery of user/site nuta…
jimklimov May 12, 2026
f3df6e7
conf/nutauth.conf.sample.in, configure.ac, conf/Makefile.am, conf/.gi…
jimklimov May 12, 2026
d1fb3d9
scripts/obs/debian.nut-client.install, scripts/obs/debian.nut-client.…
jimklimov May 12, 2026
3be2a2c
clients/authconf.c: upscli_splitauth(): if "port" is a non-numeric st…
jimklimov May 12, 2026
97a5e09
clients/authconf.c: upscli_splitauth(): reject empty non-NULL sect_na…
jimklimov May 12, 2026
87205ae
clients/authconf.c: handle_authconf_args(): revise section title line…
jimklimov May 12, 2026
31a5c5d
clients/authconf.{c,h}, docs: further refactor with upscli_normalize_…
jimklimov May 12, 2026
10cb5e6
clients/authconf.c: refactor upscli_find_authconf() with upscli_norma…
jimklimov May 12, 2026
11e7345
tests/test_authconf.c: add a Non-exact match test case [#3329]
jimklimov May 12, 2026
4b5b209
clients/authconf.c: fix static analysis warnings [#3329]
jimklimov May 13, 2026
6fd1967
clients/authconf.{c,h}: refactor static upscli_add_authconf() with a …
jimklimov May 13, 2026
3dfcbfc
clients/authconf.c, docs/man/nutauth.conf.txt: revise section title p…
jimklimov May 13, 2026
695d7d3
docs/man/*auth*.txt, docs/man/Makefile.am: reshuffle nutauth.conf rel…
jimklimov May 13, 2026
7bd2e30
clients/authconf.c: upscli_create_authconf(): handle failed calloc() …
jimklimov May 13, 2026
9e2b29d
clients/authconf.{c,h}, tests/test_authconf.c, docs/man/*auth*, docs/…
jimklimov May 13, 2026
321bc91
clients/authconf.{c,h}, docs: introduce upscli_clone_authconf_item() …
jimklimov May 13, 2026
ddddceb
clients/authconf.c: upscli_find_authconf_item(): refine return of glo…
jimklimov May 14, 2026
b07e607
clients/authconf.c: refactor with separation of upscli_add_authconf_i…
jimklimov May 14, 2026
fb25d77
clients/authconf.c, docs/man/upscli_create_authconf_item.txt: revise …
jimklimov May 14, 2026
fa24aa6
clients/authconf.c, docs/man/upscli_create_authconf_item.txt: revise …
jimklimov May 14, 2026
c17f675
docs/man/Makefile.am: fix after reshuffle nutauth.conf related method…
jimklimov May 14, 2026
796e766
clients/authconf.{c,h}: introduce upscli_get_authconf_item() for auto…
jimklimov May 14, 2026
aba9cea
tests/test_authconf.c: print TAP-style progress trackingl add tests f…
jimklimov May 14, 2026
590f990
clients/authconf.c: upscli_get_authconf_item(): add ifdef-ed away ver…
jimklimov May 14, 2026
8aa6886
clients/authconf.{c,h}, docs/man/upscli_create_authconf_item.txt, doc…
jimklimov May 14, 2026
0776efd
clients/authconf.c, tests/test_authconf.c: handle_authconf_args(): wh…
jimklimov May 15, 2026
4525ec2
clients/upsclient.{c,h}, clients/authconf.c, docs: introduce upscli_a…
jimklimov May 15, 2026
5f3e144
clients/nutclient.{cpp,h}: add rudimentary support for SSLConfig_CERT…
jimklimov May 15, 2026
dfb86c2
clients/authconf.c, docs/man/upscli_read_authconf_file.txt: add suppo…
jimklimov May 15, 2026
c26e681
clients/upsclient.c: upscli_add_host_cert(), upscli_find_host_cert():…
jimklimov May 18, 2026
b83432c
tests/NIT/nit.sh: add support for nutauth.conf file testing, add a re…
jimklimov May 18, 2026
52981ee
tests/test_authconf.c: consult presence of NUT_AUTHCONF_FILE envvar t…
jimklimov May 18, 2026
b9905a3
clients/authconf.c: handle_authconf_args(): revise logging of parsed …
jimklimov May 18, 2026
e3f9f44
clients/upsclient.c: document better the upscli_init*() and upscli_ss…
jimklimov May 18, 2026
0e9d1c8
clients/upsc.c, docs: add support for "-A /path/to/nutauth.conf" [#33…
jimklimov May 18, 2026
317d745
clients/authconf.{c,h}, docs/man/upscli_dump_authconf_item.txt, tests…
jimklimov May 18, 2026
799211f
clients/upsclient.c: upscli_init_authconf(): debug-trace the authconf…
jimklimov May 18, 2026
ee128e9
clients/upsclient.c: upscli_init_authconf(): if the "ac" refers to a …
jimklimov May 18, 2026
841e066
clients/upsclient.c: upscli_init2(): quiesce reaction to NUT_QUIET_IN…
jimklimov May 18, 2026
fe7e071
clients/upsclient.c: upscli_add_host_cert(): revise splitting apart t…
jimklimov May 18, 2026
6f86ed0
clients/upsclient.c: upscli_find_host_port_cert(): debug-trace whethe…
jimklimov May 18, 2026
ea6a414
clients/upsclient.c: BadCertHandler(): cast printing of port [#3329]
jimklimov May 19, 2026
e5a3817
clients/upsclient.c: upscli_add_host_cert(): fix reporting for plain …
jimklimov May 19, 2026
3aede07
conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: clarify CERTHOS…
jimklimov May 19, 2026
25a2835
tests/NIT/nit.sh: generatecfg_upsmon_add_SSL(): consider CERTHOST wit…
jimklimov May 19, 2026
fe057a0
clients/upsclient.c: revise logging from AuthCertificate*() methods […
jimklimov May 19, 2026
fc37889
clients/upsclient.c: upscli_sslinit(): wrap long lines in NSS part [#…
jimklimov May 19, 2026
9c1fc9b
clients/upsclient.c: AuthCertificate(), upscli_sslinit(): refactor NS…
jimklimov May 19, 2026
7e4d094
tests/NIT/nit.sh: do not export NUT_AUTHCONF_FILE to NIT.env [#3329, …
jimklimov May 19, 2026
e2a98f7
clients/authconf.c, docs/man/nutauth.conf.txt, tests/NIT/nit.sh: set_…
jimklimov May 19, 2026
e110bc9
clients/upsclient.c: upscli_find_host_cert(), upscli_add_host_cert():…
jimklimov May 19, 2026
46a8e7e
include/strcasestr-static.h, clients/authconf.c, etc.: promote code f…
jimklimov May 19, 2026
bad8533
clients/upsclient.c, docs/man/upscli_add_host_cert.txt: refactor upsc…
jimklimov May 19, 2026
0455217
clients/upsclient.c: upscli_cleanup(): call upscli_free_authconf_list…
jimklimov May 19, 2026
571d3a2
clients/{upscmd,upsrw,upslog,upsstats,upsset,upsimage}.c, docs/man/*.…
jimklimov May 19, 2026
0f5a281
tests/Makefile.am: test_authconf: consider LIBSSL flags [#3329, #1711]
jimklimov May 21, 2026
ad86df6
clients/authconf.{c,h}, docs/man/upscli_dump_authconf_item.txt: do no…
jimklimov May 22, 2026
310c41e
server/netssl.c: ssl_init(): abort with fatalx() and better explanati…
jimklimov May 25, 2026
589d3d8
clients/upsclient.{c,h}, docs/man, upscmd.c, upsrw.c, upsmon.c: refac…
jimklimov Jun 6, 2026
f099775
clients/upsc.c: support upscli_authenticate_authconf() [#3411, #3329]
jimklimov Jun 6, 2026
9a00dc2
clients/ups*.c: comment in CGI clients about auto-login (not wise for…
jimklimov Jun 6, 2026
0161798
clients/upsclient.c: upscli_authenticate(): reduce buf sizes for resu…
jimklimov Jun 6, 2026
6a5df7e
dummy-ups: add NUT authconf support [#3329]
jimklimov Jun 21, 2026
c5ccc7b
GitIgnore tests/test_authconf if built [#3329]
jimklimov Jun 21, 2026
d6cd34e
scripts/obs/debian.rules, scripts/obs/nut.spec: update comments about…
jimklimov Jun 16, 2026
372329d
tools/nut-scanner/*, docs/man/nutscan_scan_nut.txt: introduce nutscan…
jimklimov Jun 16, 2026
4d95eb1
tools/nut-scanner/scan_nut.c: detect if authconf-related methods are …
jimklimov Jun 16, 2026
fbccef9
tools/nut-scanner/scan_nut.c: nutscan_scan_ip_range_nut_authconf(): d…
jimklimov Jun 17, 2026
93b3b80
tools/nut-scanner/scan_nut.c: nutscan_scan_ip_range_nut_authconf(): d…
jimklimov Jun 17, 2026
d3946c5
clients/upsclient.h: update comments for methods about default_connec…
jimklimov Jun 17, 2026
028fc1a
clients/upsclient.{c,h}: add pthreads support for first_host_cert-bas…
jimklimov Jun 19, 2026
0d9f21c
tools/nut-scanner/scan_nut.c: follow up on NUT authconf support when …
jimklimov Jun 19, 2026
68ed116
clients/*.c: only consider authconf default certverify and flags_ssl …
jimklimov Jun 22, 2026
cbb28d6
tools/nut-scanner/scan_nut.c, clients/*.c: refactor with upscli_authc…
jimklimov Jun 23, 2026
34af567
drivers/dummy-ups.c: refactor with upscli_authconf_update_conn_flags(…
jimklimov Jun 23, 2026
9e560f7
clients/upsclient.c: upscli_free_host_port_cert(): consider builds wi…
jimklimov Jun 23, 2026
0b9ed98
clients/upsclient.c: upscli_free_host_port_cert_data(): consider cons…
jimklimov Jun 23, 2026
03940a2
clients/upsclient.c: upscli_free_host_port_cert_data(): only defined …
jimklimov Jun 23, 2026
188c5e1
tests/NIT/nit.sh: use TESTCERT_PATH_SEP more diligently (e.g. on WIN3…
jimklimov Jun 23, 2026
a6568e5
tests/NIT/nit.sh: die() with a timestamp too
jimklimov Jun 23, 2026
2f4e3ea
tests/NIT/nit.sh: TESTCERT_PATH_SEP: there was too much of a good thi…
jimklimov Jun 23, 2026
fb4f7a5
tests/NIT/nit.sh: when transplanting prepared certs to/from cache, fa…
jimklimov Jun 23, 2026
04b9ffa
tests/NIT/nit.sh: on MSYS2, copy (not symlink) root CA cert hash-name…
jimklimov Jun 23, 2026
8e28756
tests/NIT/nit.sh: move check for usability of `certutil` or `openssl`…
jimklimov Jun 24, 2026
e0663df
tests/NIT/nit.sh: generatecfg_nutauth(): only handle `case WITH_SSL_C…
jimklimov Jun 24, 2026
95c9307
tests/test_authconf.c: auto-account expected_sections (to check parse…
jimklimov Jun 24, 2026
bec6a33
tests/test_authconf.c: test that (comment) text after a section name …
jimklimov Jun 24, 2026
39a5a5c
tests/test_authconf.c: add tests to parse IPv6 addresses (brackets an…
jimklimov Jun 24, 2026
03235ce
clients/authconf.c: parse bracketed IPv6 addresses correctly [#3329, …
jimklimov Jun 24, 2026
2ae696e
clients/nutclient*.{h,cpp}, scripts/perl/UPS/Nut.pm, scripts/python/m…
jimklimov Jun 7, 2026
2af7b8a
include/nutconf.hpp, common/nutconf.cpp: add ability to parse nutauth…
jimklimov Jun 7, 2026
ea10926
clients/authconf.h, clients/nutclient.{h,cpp}, scripts/perl/UPS/Nut.p…
jimklimov Jun 8, 2026
6d05904
Convert UPS/Nut.pm into a .in template to handle @CONFPATH@ correctly…
jimklimov Jun 24, 2026
f37b105
scripts/python/module/PyNUT.py.in: allow to construct PyNUTClient wit…
jimklimov Jun 24, 2026
4fd5976
scripts/python/module/test_nutclient.py: add testsuite_splitaddr() [#…
jimklimov Jun 24, 2026
881d286
clients/nutclient.cpp: update splitaddr() against libupsclient variant
jimklimov Jun 24, 2026
be9de68
clients/nutclient.cpp, scripts/perl/UPS/Nut.pm.in, scripts/python/mod…
jimklimov Jun 24, 2026
a46e0fb
clients/nutclient.cpp: AuthConf::merge(): gracefully handle section n…
jimklimov Jun 24, 2026
cb172e1
scripts/perl/UPS/Nut.pm.in, scripts/python/module/PyNUT.py.in: revise…
jimklimov Jun 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions NEWS.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ https://github.com/networkupstools/nut/milestone/13
attempts on timeout errors, simplifying error recovery. [PR #3414]
* Increased default TCP response timeout to 2000 ms. [PR #3418]

- `dummy-ups` driver updates:
* Added `authconf` driver parameter for repeater mode to control
authentication configuration discovery. It accepts `default`, `none`,
or a specific authconf file path. [issue #3329]

- `nutdrv_qx` driver updates:
* Only claim a USB device as "supported" during discovery out of the box
if `subdriver_command` was assigned (`1A86:7523` is used by CH340/341
Expand Down Expand Up @@ -126,6 +131,31 @@ https://github.com/networkupstools/nut/milestone/13
allows to pass the `certfile` argument needed for OpenSSL builds. [#3331]
* The `libupsclient` (C) and `libnutclient` (C++) API were updated to
report the ability to check `CERTIDENT` information. [#3331]
* Introduced support for "authconf" files to store and convey NUT client
authentication details. [issue #3329]

- `upsc`, `upscmd`, `upsrw` command-line client updates:
* Enabled support for `nutauth.conf` files to provide credentials and/or
SSL settings in the client which previously only did best-effort attempts
at secure communications without an individual certificate, and only
anonymously for reading. The new `-A filename` option defaults to trying
to use a `nutauth.conf` file (if found in one of the default locations)
but not failing if one is not usable; specific values can require use of
such a file (`default`) or to not even try reading one (`none`).
[issues #3329, #3411]

- `upslog` client/tool updates:
* Added support for best-effort use of `nutauth.conf` files from default
locations or via `-A` option, as described above. Since this client
can establish multiple connections, keep in mind that currently it
can only identify itself with some one (first seen) client certificate,
if `CERTIDENT` settings are used. Multiple `CERTHOST` directives for
specially trusted servers can be used. [#3329]

- `upsstats`, `upsset`, `upsimage` CGI client updates:
* Added support for best-effort use of `nutauth.conf` files from default
locations described above (no way to choose the location, other than
by web-server environment variables for CGI calls). [#3329]

- `upsmon` client updates:
* Introduced support for `CERTFILE` option, so the client can identify
Expand All @@ -150,6 +180,9 @@ https://github.com/networkupstools/nut/milestone/13
much later (tell the sysadmin to increase `ulimit` or set up a more
conservative `MAXCONN`). If there is a separate soft and hard limit,
and `MAXCONN` exceeds the soft limit, try to raise the bar. [issue #3365]
* If SSL configuration was provided, but the server failed to apply some
aspect of that, it should now abort with an explanation (and not proceed
with insecure start-up like it could do before). [issue #3331, PR #3435]

- Recipes, CI and helper script updates not classified above:
* Introduced `ci_build.sh` settings and respective CI workflow settings
Expand Down
16 changes: 16 additions & 0 deletions UPGRADING.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,22 @@ Changes from 2.8.5 to 2.8.6
if the requested value is larger than what is allowed (minus some reserve
for configuration files and other use-cases). [issue #3365]

- `upsd` data server updates:
* If SSL configuration was provided, but the server failed to apply some
aspect of that, it should now abort with an explanation (and not proceed
with insecure start-up like it could do before). [issue #3331, PR #3435]

- Enabled support for `nutauth.conf` files to provide credentials and/or
SSL settings in clients which previously only did best-effort attempts at
secure communications without an individual certificate, and only anonymously
for reading like `upsc`.
+
The new `-A filename` option defaults to trying to use a `nutauth.conf` file
(if found in one of the default locations) but not failing if one is not
usable; specific values can require use of such a file or to not even try
reading one ('none' as the legacy default). See the updated manual pages
for more details. [issues #3329, #3411]


Changes from 2.8.4 to 2.8.5
---------------------------
Expand Down
4 changes: 2 additions & 2 deletions clients/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ endif HAVE_CXX11

# Optionally deliverable as part of NUT public API:
if WITH_DEV
include_HEADERS = upsclient.h
include_HEADERS = upsclient.h authconf.h
if HAVE_CXX11
include_HEADERS += nutclient.h nutclientmem.h
else !HAVE_CXX11
Expand Down Expand Up @@ -170,7 +170,7 @@ upsstats_cgi_LDADD = $(LDADD_CLIENT) $(top_builddir)/common/libcommonstrjson.la
# but it needs nut_version.h made before the rest of build,
# to include it into upsclient.c (without an explicit link,
# this target is sometimes missed in parallel builds):
libupsclient_la_SOURCES = upsclient.c upsclient.h
libupsclient_la_SOURCES = upsclient.c upsclient.h authconf.c authconf.h

# See comments for similar trick in common/Makefile.am for common-nut_version.c
if BUILDING_IN_TREE
Expand Down
Loading
Loading