Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package uacme for openSUSE:Factory checked 
in at 2024-02-06 16:35:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uacme (Old)
 and      /work/SRC/openSUSE:Factory/.uacme.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "uacme"

Tue Feb  6 16:35:27 2024 rev:4 rq:1144501 version:1.7.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/uacme/uacme.changes      2023-06-30 
19:59:04.629716599 +0200
+++ /work/SRC/openSUSE:Factory/.uacme.new.1815/uacme.changes    2024-02-06 
16:36:17.214821628 +0100
@@ -1,0 +2,8 @@
+Fri Feb  2 08:05:04 UTC 2024 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 1.7.5
+  * fix ualpn exit code in client mode
+  * fix build with autoconf version 2.71
+  * nsupdate.sh overhaul and DNAME redirection support
+
+-------------------------------------------------------------------

Old:
----
  uacme-1.7.4.tar.gz

New:
----
  uacme-1.7.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ uacme.spec ++++++
--- /var/tmp/diff_new_pack.1Tdnfz/_old  2024-02-06 16:36:17.702839283 +0100
+++ /var/tmp/diff_new_pack.1Tdnfz/_new  2024-02-06 16:36:17.706839428 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package uacme
 #
-# Copyright (c) 2023 SUSE LLC
-# Copyright (c) 2020, Martin Hauke <mar...@gmx.de>
+# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2020-2024, Martin Hauke <mar...@gmx.de>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 
 Name:           uacme
-Version:        1.7.4
+Version:        1.7.5
 Release:        0
 Summary:        A minimal ACMEv2 client
 License:        GPL-3.0-or-later

++++++ uacme-1.7.4.tar.gz -> uacme-1.7.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/ChangeLog new/uacme-1.7.5/ChangeLog
--- old/uacme-1.7.4/ChangeLog   2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/ChangeLog   2024-01-28 21:03:31.000000000 +0100
@@ -1,3 +1,13 @@
+2024-01-28 Nicola Di Lieto <nicola.dili...@gmail.com>
+       * Release 1.7.5
+       - fix ualpn exit code in client mode
+         Fixes https://github.com/ndilieto/uacme/issues/76
+       - fix build with autoconf version 2.71
+         See https://github.com/ndilieto/uacme/pull/70
+       - uacme: nsupdate.sh overhaul and DNAME redirection support
+       - add link to deSEC.io DNS integration
+       - minor documentation changes including copyright year
+
 2023-02-15 Nicola Di Lieto <nicola.dili...@gmail.com>
        * Release 1.7.4
        - uacme: Validate token from ACME server. Fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/Makefile.am new/uacme-1.7.5/Makefile.am
--- old/uacme-1.7.4/Makefile.am 2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/Makefile.am 2024-01-28 21:03:31.000000000 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+# Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 #
 # This file is part of uacme.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/NEWS new/uacme-1.7.5/NEWS
--- old/uacme-1.7.4/NEWS        2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/NEWS        2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,15 @@
 uacme NEWS
-Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
+
+## [1.7.5] - 2024-01-28
+### Changed
+- fix ualpn exit code in client mode
+  Fixes https://github.com/ndilieto/uacme/issues/76
+- fix build with autoconf version 2.71
+  See https://github.com/ndilieto/uacme/pull/70
+- uacme: nsupdate.sh overhaul and DNAME redirection support
+- add link to deSEC.io DNS integration
+- minor documentation changes including copyright year
 
 ## [1.7.4] - 2023-02-15
 ### Changed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/README new/uacme-1.7.5/README
--- old/uacme-1.7.4/README      2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/README      2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 uacme README 
-Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 
 uacme is a client for the RFC8555 ACMEv2 protocol. Additional
 information can be found at <https://github.com/ndilieto/uacme>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/README.md new/uacme-1.7.5/README.md
--- old/uacme-1.7.4/README.md   2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/README.md   2024-01-28 21:03:31.000000000 +0100
@@ -165,6 +165,8 @@
 
 https://github.com/tdy91/uacme-gandi-hook works with [gandi.net][gandi].
 
+https://sr.ht/~jacksonchen666/uacme-desec-hook/ works with [deSEC.io][desec].
+
 ## tls-alpn-01 challenge support
 
 [ualpn][ualpn] is a lightweight proxying [tls-alpn-01][RFC8737] challenge
@@ -264,3 +266,4 @@
 [libev]: http://libev.schmorp.de
 [splice]: https://en.wikipedia.org/wiki/Splice_%28system_call%29
 [proxy]: http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
+[desec]: https://desec.readthedocs.io/en/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/base64.c new/uacme-1.7.5/base64.c
--- old/uacme-1.7.4/base64.c    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/base64.c    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/base64.h new/uacme-1.7.5/base64.h
--- old/uacme-1.7.4/base64.h    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/base64.h    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/configure.ac new/uacme-1.7.5/configure.ac
--- old/uacme-1.7.4/configure.ac        2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/configure.ac        2024-01-28 21:03:31.000000000 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+# Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 #
 # This file is part of uacme.
 #
@@ -340,28 +340,31 @@
     AC_RUN_IFELSE([AC_LANG_SOURCE([#include <sys/mman.h>
                      int main() {return mmap(0, 4096, PROT_READ|PROT_WRITE,
                         MAP_ANON|MAP_SHARED, -1, 0) == MAP_FAILED;}])],
-        AC_DEFINE(HAVE_MAP_ANON, 1, [if mmap(MAP_ANON|MAP_SHARED) works])
-        AC_MSG_RESULT([yes]),
-        AC_MSG_RESULT([no])
-        AC_MSG_CHECKING([if mmap("/dev/zero", MAP_SHARED) works])
-        AC_RUN_IFELSE([AC_LANG_SOURCE([#include <sys/mman.h>
-                         #include <sys/stat.h>
-                         #include <fcntl.h>
-                         int main() {return mmap(0, 4096, PROT_READ|PROT_WRITE,
-                            MAP_ANON|MAP_SHARED, open("/dev/zero", O_RDWR), 0) 
==
-                            MAP_FAILED;}])],
-            AC_DEFINE(HAVE_MAP_DEVZERO, 1, [if mmap("/dev/zero", MAP_SHARED) 
works])
-            AC_MSG_RESULT([yes]),
-            AC_MSG_RESULT([no])
-            AC_MSG_ERROR([ualpn requires MAP_ANON or mmap("/dev/zero", 
MAP_SHARED)])),
-        AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <sys/mman.h>
-                         int main() {return mmap(0, 4096, PROT_READ|PROT_WRITE,
-                            MAP_ANON|MAP_SHARED, -1, 0) == MAP_FAILED;}])],
+        [
             AC_DEFINE(HAVE_MAP_ANON, 1, [if mmap(MAP_ANON|MAP_SHARED) works])
-            AC_MSG_RESULT([yes]),
+            AC_MSG_RESULT([yes])
+        ], [
             AC_MSG_RESULT([no])
-            AC_MSG_NOTICE([falling back to mmap("/dev/zero", MAP_SHARED)])
-            AC_DEFINE(HAVE_MAP_DEVZERO, 1, [if mmap("/dev/zero", MAP_SHARED) 
works])))
+            AC_MSG_CHECKING([if mmap("/dev/zero", MAP_SHARED) works])
+            AC_RUN_IFELSE([AC_LANG_SOURCE([#include <sys/mman.h>
+                             #include <sys/stat.h>
+                             #include <fcntl.h>
+                             int main() {return mmap(0, 4096, 
PROT_READ|PROT_WRITE,
+                                MAP_ANON|MAP_SHARED, open("/dev/zero", 
O_RDWR), 0) ==
+                                MAP_FAILED;}])],
+                AC_DEFINE(HAVE_MAP_DEVZERO, 1, [if mmap("/dev/zero", 
MAP_SHARED) works])
+                AC_MSG_RESULT([yes]),
+                AC_MSG_RESULT([no])
+                AC_MSG_ERROR([ualpn requires MAP_ANON or mmap("/dev/zero", 
MAP_SHARED)])),
+            AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <sys/mman.h>
+                             int main() {return mmap(0, 4096, 
PROT_READ|PROT_WRITE,
+                                MAP_ANON|MAP_SHARED, -1, 0) == MAP_FAILED;}])],
+                AC_DEFINE(HAVE_MAP_ANON, 1, [if mmap(MAP_ANON|MAP_SHARED) 
works])
+                AC_MSG_RESULT([yes]),
+                AC_MSG_RESULT([no])
+                AC_MSG_NOTICE([falling back to mmap("/dev/zero", MAP_SHARED)])
+                AC_DEFINE(HAVE_MAP_DEVZERO, 1, [if mmap("/dev/zero", 
MAP_SHARED) works]))
+        ])
     AC_ARG_ENABLE(splice, AS_HELP_STRING([--disable-splice], [disable splice]))
     if test "x$enable_splice" != "xno"; then
         AC_CHECK_FUNCS([splice])
@@ -406,4 +409,3 @@
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/crypto.c new/uacme-1.7.5/crypto.c
--- old/uacme-1.7.4/crypto.c    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/crypto.c    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/crypto.h new/uacme-1.7.5/crypto.h
--- old/uacme-1.7.4/crypto.h    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/crypto.h    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/curlwrap.c new/uacme-1.7.5/curlwrap.c
--- old/uacme-1.7.4/curlwrap.c  2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/curlwrap.c  2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/curlwrap.h new/uacme-1.7.5/curlwrap.h
--- old/uacme-1.7.4/curlwrap.h  2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/curlwrap.h  2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/docs/uacme.html 
new/uacme-1.7.5/docs/uacme.html
--- old/uacme-1.7.4/docs/uacme.html     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/docs/uacme.html     2024-01-28 21:03:31.000000000 +0100
@@ -1318,7 +1318,7 @@
 <div class="sect1">
 <h2 id="_copyright">COPYRIGHT</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Copyright &#169; 2019-2023 Nicola Di Lieto &lt;<a 
href="mailto:nicola.dili...@gmail.com";>nicola.dili...@gmail.com</a>&gt;</p></div>
+<div class="paragraph"><p>Copyright &#169; 2019-2024 Nicola Di Lieto &lt;<a 
href="mailto:nicola.dili...@gmail.com";>nicola.dili...@gmail.com</a>&gt;</p></div>
 <div class="paragraph"><p>This file is part of 
<strong>uacme</strong>.</p></div>
 <div class="paragraph"><p><strong>uacme</strong> is free software: you can 
redistribute it and/or modify it
 under the terms of the GNU General Public License as published by
@@ -1336,9 +1336,9 @@
 <div id="footnotes"><hr></div>
 <div id="footer">
 <div id="footer-text">
-Version 1.7.4<br>
+Version 1.7.5<br>
 Last updated
- 2023-02-15 21:19:35 CET
+ 2024-01-28 20:29:11 CET
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/docs/ualpn.html 
new/uacme-1.7.5/docs/ualpn.html
--- old/uacme-1.7.4/docs/ualpn.html     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/docs/ualpn.html     2024-01-28 21:03:31.000000000 +0100
@@ -1170,7 +1170,7 @@
 <div class="sect1">
 <h2 id="_copyright">COPYRIGHT</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Copyright &#169; 2019-2023 Nicola Di Lieto &lt;<a 
href="mailto:nicola.dili...@gmail.com";>nicola.dili...@gmail.com</a>&gt;</p></div>
+<div class="paragraph"><p>Copyright &#169; 2019-2024 Nicola Di Lieto &lt;<a 
href="mailto:nicola.dili...@gmail.com";>nicola.dili...@gmail.com</a>&gt;</p></div>
 <div class="paragraph"><p>This file is part of 
<strong>uacme</strong>.</p></div>
 <div class="paragraph"><p><strong>uacme</strong> is free software: you can 
redistribute it and/or modify it
 under the terms of the GNU General Public License as published by
@@ -1188,9 +1188,9 @@
 <div id="footnotes"><hr></div>
 <div id="footer">
 <div id="footer-text">
-Version 1.7.4<br>
+Version 1.7.5<br>
 Last updated
- 2023-02-15 21:19:35 CET
+ 2024-01-20 20:29:11 CET
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/json.c new/uacme-1.7.5/json.c
--- old/uacme-1.7.4/json.c      2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/json.c      2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/json.h new/uacme-1.7.5/json.h
--- old/uacme-1.7.4/json.h      2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/json.h      2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/log.c new/uacme-1.7.5/log.c
--- old/uacme-1.7.4/log.c       2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/log.c       2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/log.h new/uacme-1.7.5/log.h
--- old/uacme-1.7.4/log.h       2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/log.h       2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/msg.c new/uacme-1.7.5/msg.c
--- old/uacme-1.7.4/msg.c       2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/msg.c       2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/msg.h new/uacme-1.7.5/msg.h
--- old/uacme-1.7.4/msg.h       2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/msg.h       2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/nsupdate.sh new/uacme-1.7.5/nsupdate.sh
--- old/uacme-1.7.4/nsupdate.sh 2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/nsupdate.sh 2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,6 @@
 #!/bin/sh
 # Copyright (C) 2020 Michel Stam <mic...@reverze.net>
+# Copyright (C) 2023 Michal Roszkowski
 #
 # This file is part of uacme.
 #
@@ -20,135 +21,181 @@
 DIG=dig
 NSUPDATE=nsupdate
 
+# Server to which updates will be sent. If not specified it will
+# be obtained from MNAME in the SOA record.
+NSUPDATE_SERVER=
+
 # Files
-# RNDC_KEY_{NSUPDATE,DIG}
-#   if you wish to specify an RDC key for TSIG transactions, do so
-#   here. If you do, also make sure /etc/named.conf specifies the
+# {NSUPDATE,DIG}_KEY
+#   If you wish to sign transactions using TSIG, specify the keyfile
+#   here. If you do, also make sure named.conf specifies the
 #   key "KEYNAME"; in the zone that must be updated (and disallow
 #   all others for safety)
-RNDC_KEY_NSUPDATE=
-RNDC_KEY_DIG=
+NSUPDATE_KEY=
+DIG_KEY=
+
+ARGS=5
+E_BADARGS=85
+
+if [ $# -ne "$ARGS" ]; then
+    echo "Usage: $(basename "$0") method type ident token auth" 1>&2
+    exit $E_BADARGS
+fi
 
-# Arguments
 METHOD=$1
 TYPE=$2
 IDENT=$3
 TOKEN=$4
 AUTH=$5
 
-ns_getdomain()
+ns_getns()
 {
-    local domain=$1
+    local zone=$1
+    local answer
 
-    [ -n "$domain" ] || return
-    set -- $($DIG ${RNDC_KEY_DIG:+-k ${RNDC_KEY_DIG}} +noall +authority 
"$domain" SOA 2>/dev/null)
+    [ -n "$zone" ] && answer=$($DIG ${DIG_KEY:+-k ${DIG_KEY}} +noall +nottl 
+noclass +answer "$zone" NS) || return
 
-    echo $1
-}
-
-ns_getprimary()
-{
-    local domain=$1
-
-    [ -n "$domain" ] || return
-    set -- $($DIG ${RNDC_KEY_DIG:+-k ${RNDC_KEY_DIG}} +short "$domain" SOA 
2>/dev/null)
-
-    echo $1
+    local owner
+    local type
+    local rdata
+    while read -r owner type rdata; do
+        [ "$type" = NS ] && echo $rdata
+    done <<-EOF
+       $answer
+       EOF
 }
 
 ns_getall()
 {
-    local domain=$1
-
-    [ -n "$domain" ] || return 1
+    local name=$1
+    local answer
+    local zone
+    local primary
+
+    [ -n "$name" ] && answer=$($DIG ${DIG_KEY:+-k ${DIG_KEY}} +noall +nottl 
+noclass +answer +authority "$name" SOA) || return
+
+    name=${name%.}.
+
+    local owner
+    local type
+    local rdata
+    while read -r owner type rdata; do
+        case "$type" in
+            CNAME)
+                name=$rdata
+                ;;
+            DNAME)
+                name=${name%$owner}$rdata
+                ;;
+            SOA)
+                zone=$owner
+                set -- $rdata && primary=$1
+                ;;
+        esac
+    done <<-EOF
+       $answer
+       EOF
 
-    $DIG ${RNDC_KEY_DIG:+-k ${RNDC_KEY_DIG}} +short "$domain" NS 2>/dev/null
+    echo $name $zone $primary
 }
 
 ns_ispresent()
 {
-    local fqhn="$1"
-    local expect="$2"
-    local domain=$(ns_getdomain "$fqhn")
-    local nameservers=$(ns_getall "$domain")
-    local res
-    local ret
-
-    for NS in $nameservers; do
-        OLDIFS="${IFS}"
-        IFS='.'
-        set -- $($DIG ${RNDC_KEY_DIG:+-k ${RNDC_KEY_DIG}} +short "@$NS" 
"$fqhn" TXT 2>/dev/null)
-        IFS="${OLDIFS}"
-        { [ "$*" = "$expect" ] || [ "$*" = "\"$expect\"" ] ; } || return 1
+    local challenge=$2
+    set -- $(ns_getall "$1")
+    local name=$1
+    local nameservers=$(ns_getns "$2")
+    local answer
+    local target
+    local rc=1
+
+    local ns
+    for ns in $nameservers; do
+        answer=$($DIG ${DIG_KEY:+-k ${DIG_KEY}} +noall +nottl +noclass +answer 
"@$ns" "$name" TXT) || continue
+        target=
+
+        local owner
+        local type
+        local rdata
+        while read -r owner type rdata; do
+            case "$type" in
+                CNAME)
+                    target=$rdata
+                    ;;
+                DNAME)
+                    [ -n "$target" ] && target=${target%$owner}$rdata || 
target=${name%$owner}$rdata
+                    ;;
+                TXT)
+                    [ "$rdata" = \"$challenge\" ] && rc=0 && continue 2
+                    target=
+                    ;;
+            esac
+        done <<-EOF
+               $answer
+               EOF
+
+        [ -n "$target" ] && ns_ispresent "$target" "$challenge" && rc=0 || 
return 1
     done
 
-    return 0
+    return $rc
 }
 
 ns_doupdate()
 {
-    local fqhn="$1"
-    local challenge="$2"
-    local ttl=600
-    local domain=$(ns_getdomain "$fqhn")
-    local nameserver=$(ns_getprimary "$domain")
-    local action=
-
-    [ -n "$nameserver" ] || return
-
-    if [ -n "${challenge}" ]; then
-            action="update add ${fqhn}. ${ttl} IN TXT ${challenge}"
-    else
-            action="update del ${fqhn}."
-    fi
-
-    $NSUPDATE ${RNDC_KEY_NSUPDATE:+-k ${RNDC_KEY_NSUPDATE}} -v <<-EOF
-            server ${nameserver}
-            ${action}
-            send
-EOF
+    local action=$1
+    local challenge=$3
+    set -- $(ns_getall "$2")
+    local name=$1
+    local zone=$2
+    local server=${NSUPDATE_SERVER:-$3}
+    local ttl=300
+
+    [ -n "$server" ] && [ -n "$zone" ] && [ -n "$name" ] && [ -n "$challenge" 
] || return 1
+
+    $NSUPDATE ${NSUPDATE_KEY:+-k ${NSUPDATE_KEY}} -v <<-EOF
+       server ${server}
+       zone ${zone}
+       update ${action} ${name} ${ttl} IN TXT ${challenge}
+       send
+       EOF
 
     return $?
 }
 
 ns_update()
 {
-    local fqhn="$1"
-    local challenge="$2"
+    local action=$1
+    local name=$2
+    local challenge=$3
+    local retries=5
+    local delay=5
     local count=0
-    local res
 
-    res=1
-    while [ $res -ne 0 ]; do
-        if [ $count -eq 0 ]; then
-            ns_doupdate "$fqhn" "$challenge"
-            res=$?
-            [ $res -eq 0 ] || break
-        else
-            sleep 1
-        fi
-
-        count=$(((count + 1) % 5))
-        ns_ispresent "$fqhn" "$challenge"
-        res=$?
+    ns_doupdate "$action" "$name" "$challenge" || return 1
+
+    while sleep $delay; do
+        case "$action" in
+            add)
+                ns_ispresent "$name" "$challenge" && break
+                ;;
+            del)
+                ns_ispresent "$name" "$challenge" || break
+                ;;
+            *)
+                return 1
+        esac
+        [ $count -lt $retries ] || return 1
+        count=$((count + 1))
     done
 
-    return $res
+    return 0
 }
 
-ARGS=5
-E_BADARGS=85
-
-if [ $# -ne "$ARGS" ]; then
-    echo "Usage: $(basename "$0") method type ident token auth" 1>&2
-    exit $E_BADARGS
-fi
-
 case "$METHOD" in
     "begin")
         case "$TYPE" in
             dns-01)
-                ns_update "_acme-challenge.$IDENT" "$AUTH"
+                ns_update add "_acme-challenge.$IDENT" "$AUTH"
                 exit $?
                 ;;
             *)
@@ -160,7 +207,7 @@
     "done"|"failed")
         case "$TYPE" in
             dns-01)
-                ns_update "_acme-challenge.$IDENT"
+                ns_update del "_acme-challenge.$IDENT" "$AUTH"
                 exit $?
                 ;;
             *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/uacme.1 new/uacme-1.7.5/uacme.1
--- old/uacme-1.7.4/uacme.1     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/uacme.1     2024-01-28 21:03:31.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: uacme
 .\"    Author: [see the "AUTHOR" section]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\"      Date: 02/15/2023
+.\"      Date: 01/28/2024
 .\"    Manual: User Commands
-.\"    Source: uacme 1.7.4
+.\"    Source: uacme 1.7.5
 .\"  Language: English
 .\"
-.TH "UACME" "1" "02/15/2023" "uacme 1\&.7\&.4" "User Commands"
+.TH "UACME" "1" "01/28/2024" "uacme 1\&.7\&.5" "User Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -503,7 +503,7 @@
 \fBuacme\fR was written by Nicola Di Lieto
 .SH "COPYRIGHT"
 .sp
-Copyright \(co 2019\-2023 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
+Copyright \(co 2019\-2024 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
 .sp
 This file is part of \fBuacme\fR\&.
 .sp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/uacme.1.txt new/uacme-1.7.5/uacme.1.txt
--- old/uacme-1.7.4/uacme.1.txt 2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/uacme.1.txt 2024-01-28 21:03:31.000000000 +0100
@@ -320,7 +320,7 @@
 
 COPYRIGHT
 ---------
-Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 
 This file is part of *uacme*.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/uacme.c new/uacme-1.7.5/uacme.c
--- old/uacme-1.7.4/uacme.c     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/uacme.c     2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
@@ -1390,7 +1390,7 @@
 void version(const char *progname)
 {
     fprintf(stderr, "%s: version " PACKAGE_VERSION "\n"
-            "Copyright (C) 2019-2023 Nicola Di Lieto\n\n"
+            "Copyright (C) 2019-2024 Nicola Di Lieto\n\n"
             "%s is free software: you can redistribute and/or modify\n"
             "it under the terms of the GNU General Public License as\n"
             "published by the Free Software Foundation, either version 3\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/uacme.sh new/uacme-1.7.5/uacme.sh
--- old/uacme-1.7.4/uacme.sh    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/uacme.sh    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+# Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 #
 # This file is part of uacme.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/ualpn.1 new/uacme-1.7.5/ualpn.1
--- old/uacme-1.7.4/ualpn.1     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/ualpn.1     2024-01-28 21:03:31.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: ualpn
 .\"    Author: [see the "AUTHOR" section]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\"      Date: 02/15/2023
+.\"      Date: 01/28/2024
 .\"    Manual: User Commands
-.\"    Source: ualpn 1.7.4
+.\"    Source: ualpn 1.7.5
 .\"  Language: English
 .\"
-.TH "UALPN" "1" "02/15/2023" "ualpn 1\&.7\&.4" "User Commands"
+.TH "UALPN" "1" "01/28/2024" "ualpn 1\&.7\&.5" "User Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -379,7 +379,7 @@
 \fBualpn\fR was written by Nicola Di Lieto
 .SH "COPYRIGHT"
 .sp
-Copyright \(co 2019\-2023 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
+Copyright \(co 2019\-2024 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
 .sp
 This file is part of \fBuacme\fR\&.
 .sp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/ualpn.1.txt new/uacme-1.7.5/ualpn.1.txt
--- old/uacme-1.7.4/ualpn.1.txt 2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/ualpn.1.txt 2024-01-28 21:03:31.000000000 +0100
@@ -268,7 +268,7 @@
 
 COPYRIGHT
 ---------
-Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 
 This file is part of *uacme*.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/ualpn.c new/uacme-1.7.5/ualpn.c
--- old/uacme-1.7.4/ualpn.c     2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/ualpn.c     2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+ * Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
  *
  * This file is part of uacme.
  *
@@ -4024,7 +4024,7 @@
 void version(void)
 {
     fprintf(stderr, "%s: version " PACKAGE_VERSION "\n"
-            "Copyright (C) 2019-2023 Nicola Di Lieto\n\n"
+            "Copyright (C) 2019-2024 Nicola Di Lieto\n\n"
             "%s is free software: you can redistribute and/or modify\n"
             "it under the terms of the GNU General Public License as\n"
             "published by the Free Software Foundation, either version 3\n"
@@ -4434,24 +4434,38 @@
             cleanup_and_exit(0, EXIT_FAILURE);
         }
 
+        rc = EXIT_SUCCESS;
         while (1) {
             ssize_t r = getline(&line, &len, stdin);
-            if (r == -1)
+            if (r == -1) {
+                if (!feof(stdin)) {
+                    rc = EXIT_FAILURE;
+                    err("failed to get line from stdin");
+                }
                 break;
-
+            }
             if (fputs(line, f) < 0) {
+                rc = EXIT_FAILURE;
                 err("failed to write to %s", g.socket);
                 break;
             }
             r = getline(&line, &len, f);
-            if (r == -1)
+            if (r == -1) {
+                if (!feof(f)) {
+                    rc = EXIT_FAILURE;
+                    err("failed to read from %s", g.socket);
+                }
                 break;
-            fputs(line, stdout);
+            }
+            if (fputs(line, stdout) < 0) {
+                rc = EXIT_FAILURE;
+                err("failed to write to stdout");
+                break;
+            }
         }
-
         free(line);
         fclose(f);
-        cleanup_and_exit(0, EXIT_FAILURE);
+        cleanup_and_exit(0, rc);
     }
 
     if (g.connect == NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.7.4/ualpn.sh new/uacme-1.7.5/ualpn.sh
--- old/uacme-1.7.4/ualpn.sh    2023-02-15 21:21:00.000000000 +0100
+++ new/uacme-1.7.5/ualpn.sh    2024-01-28 21:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 2019-2023 Nicola Di Lieto <nicola.dili...@gmail.com>
+# Copyright (C) 2019-2024 Nicola Di Lieto <nicola.dili...@gmail.com>
 #
 # This file is part of uacme.
 #

Reply via email to