diff -pruN 1.12.6-1/config.h.in 1.12.7-1/config.h.in
--- 1.12.6-1/config.h.in	2022-07-27 12:47:43.000000000 +0000
+++ 1.12.7-1/config.h.in	2022-08-01 15:08:32.000000000 +0000
@@ -42,6 +42,9 @@
 /* Define to 1 if you have the `gnutls_session_set_verify_cert' function. */
 #undef HAVE_GNUTLS_SESSION_SET_VERIFY_CERT
 
+/* Define to 1 if you have the <gnutls/socket.h> header file. */
+#undef HAVE_GNUTLS_SOCKET_H
+
 /* Define to 1 if you have the `gnutls_transport_is_ktls_enabled' function. */
 #undef HAVE_GNUTLS_TRANSPORT_IS_KTLS_ENABLED
 
diff -pruN 1.12.6-1/configure 1.12.7-1/configure
--- 1.12.6-1/configure	2022-07-27 12:47:39.000000000 +0000
+++ 1.12.7-1/configure	2022-08-01 15:04:32.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libnbd 1.12.6.
+# Generated by GNU Autoconf 2.71 for libnbd 1.12.7.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -618,8 +618,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libnbd'
 PACKAGE_TARNAME='libnbd'
-PACKAGE_VERSION='1.12.6'
-PACKAGE_STRING='libnbd 1.12.6'
+PACKAGE_VERSION='1.12.7'
+PACKAGE_STRING='libnbd 1.12.7'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1492,7 +1492,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libnbd 1.12.6 to adapt to many kinds of systems.
+\`configure' configures libnbd 1.12.7 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1563,7 +1563,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libnbd 1.12.6:";;
+     short | recursive ) echo "Configuration of libnbd 1.12.7:";;
    esac
   cat <<\_ACEOF
 
@@ -1720,7 +1720,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libnbd configure 1.12.6
+libnbd configure 1.12.7
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2152,7 +2152,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libnbd $as_me 1.12.6, which was
+It was created by libnbd $as_me 1.12.7, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -5138,7 +5138,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libnbd'
- VERSION='1.12.6'
+ VERSION='1.12.7'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -19636,6 +19636,18 @@ printf "%s\n" "$tls_priority" >&6; }
 printf "%s\n" "#define TLS_PRIORITY \"$tls_priority\"" >>confdefs.h
 
 
+    # Check for gnutls/socket.h
+    old_CFLAGS="$CFLAGS"
+    CFLAGS="$GNUTLS_CFLAGS $CFLAGS"
+    ac_fn_c_check_header_compile "$LINENO" "gnutls/socket.h" "ac_cv_header_gnutls_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_gnutls_socket_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_GNUTLS_SOCKET_H 1" >>confdefs.h
+
+fi
+
+    CFLAGS="$old_CFLAGS"
+
     # Check for APIs which may not be present.
     old_LIBS="$LIBS"
     LIBS="$GNUTLS_LIBS $LIBS"
@@ -23245,7 +23257,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libnbd $as_me 1.12.6, which was
+This file was extended by libnbd $as_me 1.12.7, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23313,7 +23325,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libnbd config.status 1.12.6
+libnbd config.status 1.12.7
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -pruN 1.12.6-1/configure.ac 1.12.7-1/configure.ac
--- 1.12.6-1/configure.ac	2022-07-27 12:47:31.000000000 +0000
+++ 1.12.7-1/configure.ac	2022-08-01 15:04:19.000000000 +0000
@@ -15,7 +15,7 @@
 # License along with this library; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
-AC_INIT([libnbd],[1.12.6])
+AC_INIT([libnbd],[1.12.7])
 
 AC_CONFIG_MACRO_DIR([m4])
 m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],[],
@@ -172,6 +172,12 @@ AS_IF([test "$GNUTLS_LIBS" != ""],[
     AC_DEFINE_UNQUOTED([TLS_PRIORITY],["$tls_priority"],
                        [Default TLS session priority string])
 
+    # Check for gnutls/socket.h
+    old_CFLAGS="$CFLAGS"
+    CFLAGS="$GNUTLS_CFLAGS $CFLAGS"
+    AC_CHECK_HEADERS([gnutls/socket.h])
+    CFLAGS="$old_CFLAGS"
+
     # Check for APIs which may not be present.
     old_LIBS="$LIBS"
     LIBS="$GNUTLS_LIBS $LIBS"
diff -pruN 1.12.6-1/debian/changelog 1.12.7-1/debian/changelog
--- 1.12.6-1/debian/changelog	2022-07-28 18:30:06.000000000 +0000
+++ 1.12.7-1/debian/changelog	2022-08-02 11:18:00.000000000 +0000
@@ -1,3 +1,9 @@
+libnbd (1.12.7-1) unstable; urgency=medium
+
+  * New upstream version 1.12.7
+
+ -- Hilko Bengen <bengen@debian.org>  Tue, 02 Aug 2022 13:18:00 +0200
+
 libnbd (1.12.6-1) unstable; urgency=medium
 
   * New upstream version 1.12.6
diff -pruN 1.12.6-1/docs/libnbd.pod 1.12.7-1/docs/libnbd.pod
--- 1.12.6-1/docs/libnbd.pod	2022-06-09 20:16:13.000000000 +0000
+++ 1.12.7-1/docs/libnbd.pod	2022-08-01 15:02:31.000000000 +0000
@@ -940,6 +940,18 @@ should return C<1> on all control paths,
 (note that with automatic retirement, assigning into C<error> is
 pointless as there is no later API to see that value).
 
+=head1 SIGNALS
+
+Libnbd does not install signal handlers.  It attempts to disable
+C<SIGPIPE> when writing to the NBD socket using the C<MSG_NOSIGNAL>
+flag of L<send(2)>, or the C<SO_NOSIGPIPE> socket option, on platforms
+that support those.
+
+On some old Linux or newer non-Linux platforms the main program may
+wish to register a signal handler to ignore SIGPIPE:
+
+ signal (SIGPIPE, SIG_IGN);
+
 =head1 COMPILING YOUR PROGRAM
 
 On most systems, C programs that use libnbd can be compiled like this:
diff -pruN 1.12.6-1/generator/Makefile.am 1.12.7-1/generator/Makefile.am
--- 1.12.6-1/generator/Makefile.am	2022-07-27 12:47:25.000000000 +0000
+++ 1.12.7-1/generator/Makefile.am	2022-08-01 15:03:04.000000000 +0000
@@ -80,7 +80,7 @@ stamp-generator: generator $(states_code
 
 generator: $(sources)
 	$(OCAMLC) $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -I $(srcdir) -I . \
-	  str.cma unix.cma $^ -o $@
+	  str.cma unix.cma $(sources) -o $@
 
 else
 
diff -pruN 1.12.6-1/generator/Makefile.in 1.12.7-1/generator/Makefile.in
--- 1.12.6-1/generator/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/generator/Makefile.in	2022-08-01 15:04:31.000000000 +0000
@@ -654,7 +654,7 @@ $(top_builddir)/podwrapper.pl: $(top_src
 
 @HAVE_OCAMLC_TRUE@generator: $(sources)
 @HAVE_OCAMLC_TRUE@	$(OCAMLC) $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -I $(srcdir) -I . \
-@HAVE_OCAMLC_TRUE@	  str.cma unix.cma $^ -o $@
+@HAVE_OCAMLC_TRUE@	  str.cma unix.cma $(sources) -o $@
 
 @HAVE_OCAMLC_FALSE@stamp-generator:
 @HAVE_OCAMLC_FALSE@	@rm -f $@
diff -pruN 1.12.6-1/generator/states-connect.c 1.12.7-1/generator/states-connect.c
--- 1.12.6-1/generator/states-connect.c	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/generator/states-connect.c	2022-08-01 15:02:24.000000000 +0000
@@ -45,6 +45,21 @@ disable_nagle (int sock)
   setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof flag);
 }
 
+/* Disable SIGPIPE on FreeBSD & MacOS.
+ *
+ * Does nothing on other platforms, but if those platforms have
+ * MSG_NOSIGNAL then we will set that when writing.  (FreeBSD has both.)
+ */
+static void
+disable_sigpipe (int sock)
+{
+#ifdef SO_NOSIGPIPE
+  const int flag = 1;
+
+  setsockopt (sock, SOL_SOCKET, SO_NOSIGPIPE, &flag, sizeof flag);
+#endif
+}
+
 STATE_MACHINE {
  CONNECT.START:
   sa_family_t family;
@@ -65,6 +80,7 @@ STATE_MACHINE {
   }
 
   disable_nagle (fd);
+  disable_sigpipe (fd);
 
   r = connect (fd, (struct sockaddr *) &h->connaddr, h->connaddrlen);
   if (r == 0 || (r == -1 && errno == EINPROGRESS))
@@ -177,6 +193,7 @@ STATE_MACHINE {
   }
 
   disable_nagle (fd);
+  disable_sigpipe (fd);
 
   if (connect (fd, h->rp->ai_addr, h->rp->ai_addrlen) == -1) {
     if (errno != EINPROGRESS) {
diff -pruN 1.12.6-1/info/info-uri-nbds.sh 1.12.7-1/info/info-uri-nbds.sh
--- 1.12.6-1/info/info-uri-nbds.sh	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/info/info-uri-nbds.sh	2022-08-01 15:02:36.000000000 +0000
@@ -25,6 +25,7 @@ set -x
 
 requires nbdkit --version
 requires nbdkit null --version
+requires nbdkit --tls-verify-peer -U - null --run 'exit 0'
 requires jq --version
 
 # Requires that the test certificates were created.
diff -pruN 1.12.6-1/interop/interop.c 1.12.7-1/interop/interop.c
--- 1.12.6-1/interop/interop.c	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/interop/interop.c	2022-08-01 15:02:18.000000000 +0000
@@ -84,6 +84,14 @@ main (int argc, char *argv[])
   REQUIRES
 #endif
 
+  /* Ignore SIGPIPE.  We only need this for GnuTLS that lacks the
+   * GNUTLS_NO_SIGNAL flag, either because it predates GnuTLS 3.4.2 or
+   * because the OS lacks MSG_NOSIGNAL support.
+   */
+#if TLS && !defined(HAVE_GNUTLS_NO_SIGNAL)
+  signal (SIGPIPE, SIG_IGN);
+#endif
+
   /* Create a large sparse temporary file. */
 #ifdef NEEDS_TMPFILE
   int fd = mkstemp (TMPFILE);
@@ -216,19 +224,10 @@ main (int argc, char *argv[])
 
   /* XXX In future test more operations here. */
 
-#if !TLS
-  /* XXX qemu doesn't shut down the connection nicely (using
-   * gnutls_bye) and because of this the following call will fail
-   * with:
-   *
-   * nbd_shutdown: gnutls_record_recv: The TLS connection was
-   * non-properly terminated.
-   */
   if (nbd_shutdown (nbd, 0) == -1) {
     fprintf (stderr, "%s\n", nbd_get_error ());
     exit (EXIT_FAILURE);
   }
-#endif
 
   nbd_close (nbd);
 
diff -pruN 1.12.6-1/interop/Makefile.am 1.12.7-1/interop/Makefile.am
--- 1.12.6-1/interop/Makefile.am	2022-07-08 16:55:44.000000000 +0000
+++ 1.12.7-1/interop/Makefile.am	2022-08-01 15:02:43.000000000 +0000
@@ -191,7 +191,7 @@ interop_qemu_nbd_tls_psk_SOURCES = \
 	$(NULL)
 interop_qemu_nbd_tls_psk_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
-	-DREQUIRES=' requires ("test -f $(abs_top_builddir)/tests/keys.psk"); requires_qemu_nbd_tls_support ("$(QEMU_NBD)"); ' \
+	-DREQUIRES=' requires ("test -f $(abs_top_builddir)/tests/keys.psk"); requires_qemu_nbd_tls_support ("$(QEMU_NBD)"); requires_qemu_nbd_tls_psk_support ("$(QEMU_NBD)"); ' \
 	-DSOCKET_ACTIVATION=1 \
 	-DNEEDS_TMPFILE=1 \
 	-DSERVER=\"$(QEMU_NBD)\" \
diff -pruN 1.12.6-1/interop/Makefile.in 1.12.7-1/interop/Makefile.in
--- 1.12.6-1/interop/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/interop/Makefile.in	2022-08-01 15:04:31.000000000 +0000
@@ -1115,7 +1115,7 @@ AM_CFLAGS = \
 
 @HAVE_QEMU_NBD_TRUE@interop_qemu_nbd_tls_psk_CPPFLAGS = \
 @HAVE_QEMU_NBD_TRUE@	$(AM_CPPFLAGS) \
-@HAVE_QEMU_NBD_TRUE@	-DREQUIRES=' requires ("test -f $(abs_top_builddir)/tests/keys.psk"); requires_qemu_nbd_tls_support ("$(QEMU_NBD)"); ' \
+@HAVE_QEMU_NBD_TRUE@	-DREQUIRES=' requires ("test -f $(abs_top_builddir)/tests/keys.psk"); requires_qemu_nbd_tls_support ("$(QEMU_NBD)"); requires_qemu_nbd_tls_psk_support ("$(QEMU_NBD)"); ' \
 @HAVE_QEMU_NBD_TRUE@	-DSOCKET_ACTIVATION=1 \
 @HAVE_QEMU_NBD_TRUE@	-DNEEDS_TMPFILE=1 \
 @HAVE_QEMU_NBD_TRUE@	-DSERVER=\"$(QEMU_NBD)\" \
diff -pruN 1.12.6-1/interop/requires.c 1.12.7-1/interop/requires.c
--- 1.12.6-1/interop/requires.c	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/interop/requires.c	2022-08-01 15:02:43.000000000 +0000
@@ -62,6 +62,21 @@ requires_qemu_nbd_tls_support (const cha
   requires (cmd);
 }
 
+/* Check qemu-nbd supports PSK (version 3.0.0 and above). */
+void
+requires_qemu_nbd_tls_psk_support (const char *qemu_nbd)
+{
+  char cmd[256];
+
+  /* Note the qemu-nbd command will fail in some way.  We're only
+   * interested in the error message that it prints.
+   */
+  snprintf (cmd, sizeof cmd,
+            "if %s --object tls-creds-psk,id=tls0 / |& grep -sq 'invalid object type'; then exit 1; else exit 0; fi",
+            qemu_nbd);
+  requires (cmd);
+}
+
 /* On some distros, nbd-server is built without support for syslog
  * which prevents use of inetd mode.  Instead nbd-server will exit with
  * this error:
diff -pruN 1.12.6-1/lib/crypto.c 1.12.7-1/lib/crypto.c
--- 1.12.6-1/lib/crypto.c	2022-07-06 11:42:25.000000000 +0000
+++ 1.12.7-1/lib/crypto.c	2022-08-01 15:02:18.000000000 +0000
@@ -28,8 +28,10 @@
 
 #ifdef HAVE_GNUTLS
 #include <gnutls/gnutls.h>
+#ifdef HAVE_GNUTLS_SOCKET_H
 #include <gnutls/socket.h>
 #endif
+#endif
 
 #include "internal.h"
 #include "nbdkit-string.h"
@@ -187,6 +189,22 @@ tls_recv (struct nbd_handle *h, struct s
       errno = EAGAIN;
       return -1;
     }
+    if (h->tls_shut_writes &&
+        (r == GNUTLS_E_PULL_ERROR || r == GNUTLS_E_PREMATURE_TERMINATION)) {
+      /* qemu-nbd doesn't call gnutls_bye to cleanly shut down the
+       * connection after we send NBD_CMD_DISC, instead it simply
+       * closes the connection.  On the client side we see
+       * "gnutls_record_recv: The TLS connection was non-properly
+       * terminated" or "gnutls_record_recv: Error in the pull
+       * function.".
+       *
+       * If we see these errors after we shut down the write side
+       * (h->tls_shut_writes), which happens after we have sent
+       * NBD_CMD_DISC on the wire, downgrade them to a debug message.
+       */
+      debug (h, "gnutls_record_recv: %s", gnutls_strerror (r));
+      return 0; /* EOF */
+    }
     set_error (0, "gnutls_record_recv: %s", gnutls_strerror (r));
     errno = EIO;
     return -1;
@@ -234,6 +252,7 @@ tls_shut_writes (struct nbd_handle *h, s
     return false;
   if (r != 0)
     debug (h, "ignoring gnutls_bye failure: %s", gnutls_strerror (r));
+  h->tls_shut_writes = true;
   return sock->u.tls.oldsock->ops->shut_writes (h, sock->u.tls.oldsock);
 }
 
@@ -587,8 +606,13 @@ nbd_internal_crypto_create_session (stru
   gnutls_session_t session;
   gnutls_psk_client_credentials_t pskcreds = NULL;
   gnutls_certificate_credentials_t xcreds = NULL;
+  unsigned init_flags;
 
-  err = gnutls_init (&session, GNUTLS_CLIENT|GNUTLS_NONBLOCK);
+  init_flags = GNUTLS_CLIENT | GNUTLS_NONBLOCK;
+#ifdef GNUTLS_NO_SIGNAL
+  init_flags |= GNUTLS_NO_SIGNAL;
+#endif
+  err = gnutls_init (&session, init_flags);
   if (err < 0) {
     set_error (errno, "gnutls_init: %s", gnutls_strerror (err));
     return NULL;
diff -pruN 1.12.6-1/lib/internal.h 1.12.7-1/lib/internal.h
--- 1.12.6-1/lib/internal.h	2022-06-09 20:17:58.000000000 +0000
+++ 1.12.7-1/lib/internal.h	2022-08-01 15:02:12.000000000 +0000
@@ -307,6 +307,7 @@ struct nbd_handle {
   struct command *reply_cmd;
 
   bool disconnect_request;      /* True if we've queued NBD_CMD_DISC */
+  bool tls_shut_writes;         /* Used by lib/crypto.c to track disconnect. */
 };
 
 struct meta_context {
diff -pruN 1.12.6-1/lib/states.c 1.12.7-1/lib/states.c
--- 1.12.6-1/lib/states.c	2022-07-27 12:36:08.000000000 +0000
+++ 1.12.7-1/lib/states.c	2022-08-01 15:04:36.000000000 +0000
@@ -166,6 +166,21 @@ disable_nagle (int sock)
   setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof flag);
 }
 
+/* Disable SIGPIPE on FreeBSD & MacOS.
+ *
+ * Does nothing on other platforms, but if those platforms have
+ * MSG_NOSIGNAL then we will set that when writing.  (FreeBSD has both.)
+ */
+static void
+disable_sigpipe (int sock)
+{
+#ifdef SO_NOSIGPIPE
+  const int flag = 1;
+
+  setsockopt (sock, SOL_SOCKET, SO_NOSIGPIPE, &flag, sizeof flag);
+#endif
+}
+
 
 #line 1 "generator/states-issue-command.c"
 /* nbd client library in userspace: state machine
@@ -785,7 +800,7 @@ enter_STATE_START (struct nbd_handle *h,
   return 0;
 }
 
-#line 789 "lib/states.c"
+#line 804 "lib/states.c"
 int
 nbd_internal_enter_STATE_START (struct nbd_handle *h, bool *blocked)
 {
@@ -808,7 +823,7 @@ enter_STATE_CONNECT_START (struct nbd_ha
              enum state *next_state,
              bool *blocked)
 {
-#line 49 "generator/states-connect.c"
+#line 64 "generator/states-connect.c"
 
   sa_family_t family;
   int fd, r;
@@ -828,6 +843,7 @@ enter_STATE_CONNECT_START (struct nbd_ha
   }
 
   disable_nagle (fd);
+  disable_sigpipe (fd);
 
   r = connect (fd, (struct sockaddr *) &h->connaddr, h->connaddrlen);
   if (r == 0 || (r == -1 && errno == EINPROGRESS))
@@ -855,7 +871,7 @@ enter_STATE_CONNECT_START (struct nbd_ha
 
 }
 
-#line 859 "lib/states.c"
+#line 875 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_START (struct nbd_handle *h, bool *blocked)
 {
@@ -878,7 +894,7 @@ enter_STATE_CONNECT_CONNECTING (struct n
              enum state *next_state,
              bool *blocked)
 {
-#line 93 "generator/states-connect.c"
+#line 109 "generator/states-connect.c"
 
   int status;
   socklen_t len = sizeof status;
@@ -902,7 +918,7 @@ enter_STATE_CONNECT_CONNECTING (struct n
 
 }
 
-#line 906 "lib/states.c"
+#line 922 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_CONNECTING (struct nbd_handle *h, bool *blocked)
 {
@@ -925,7 +941,7 @@ enter_STATE_CONNECT_TCP_START (struct nb
              enum state *next_state,
              bool *blocked)
 {
-#line 114 "generator/states-connect.c"
+#line 130 "generator/states-connect.c"
 
   int r;
 
@@ -963,7 +979,7 @@ enter_STATE_CONNECT_TCP_START (struct nb
 
 }
 
-#line 967 "lib/states.c"
+#line 983 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_TCP_START (struct nbd_handle *h, bool *blocked)
 {
@@ -986,7 +1002,7 @@ enter_STATE_CONNECT_TCP_CONNECT (struct
              enum state *next_state,
              bool *blocked)
 {
-#line 149 "generator/states-connect.c"
+#line 165 "generator/states-connect.c"
 
   int fd;
 
@@ -1018,6 +1034,7 @@ enter_STATE_CONNECT_TCP_CONNECT (struct
   }
 
   disable_nagle (fd);
+  disable_sigpipe (fd);
 
   if (connect (fd, h->rp->ai_addr, h->rp->ai_addrlen) == -1) {
     if (errno != EINPROGRESS) {
@@ -1033,7 +1050,7 @@ enter_STATE_CONNECT_TCP_CONNECT (struct
 
 }
 
-#line 1037 "lib/states.c"
+#line 1054 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_TCP_CONNECT (struct nbd_handle *h, bool *blocked)
 {
@@ -1056,7 +1073,7 @@ enter_STATE_CONNECT_TCP_CONNECTING (stru
              enum state *next_state,
              bool *blocked)
 {
-#line 193 "generator/states-connect.c"
+#line 210 "generator/states-connect.c"
 
   int status;
   socklen_t len = sizeof status;
@@ -1079,7 +1096,7 @@ enter_STATE_CONNECT_TCP_CONNECTING (stru
 
 }
 
-#line 1083 "lib/states.c"
+#line 1100 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_TCP_CONNECTING (struct nbd_handle *h, bool *blocked)
 {
@@ -1102,7 +1119,7 @@ enter_STATE_CONNECT_TCP_NEXT_ADDRESS (st
              enum state *next_state,
              bool *blocked)
 {
-#line 213 "generator/states-connect.c"
+#line 230 "generator/states-connect.c"
 
   if (h->sock) {
     h->sock->ops->close (h->sock);
@@ -1115,7 +1132,7 @@ enter_STATE_CONNECT_TCP_NEXT_ADDRESS (st
 
 }
 
-#line 1119 "lib/states.c"
+#line 1136 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_TCP_NEXT_ADDRESS (struct nbd_handle *h, bool *blocked)
 {
@@ -1138,7 +1155,7 @@ enter_STATE_CONNECT_COMMAND_START (struc
              enum state *next_state,
              bool *blocked)
 {
-#line 223 "generator/states-connect.c"
+#line 240 "generator/states-connect.c"
 
   int sv[2];
   pid_t pid;
@@ -1211,7 +1228,7 @@ enter_STATE_CONNECT_COMMAND_START (struc
 
 }
 
-#line 1215 "lib/states.c"
+#line 1232 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_COMMAND_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1359,7 +1376,7 @@ enter_STATE_CONNECT_SA_START (struct nbd
   return 0;
 }
 
-#line 1363 "lib/states.c"
+#line 1380 "lib/states.c"
 int
 nbd_internal_enter_STATE_CONNECT_SA_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1391,7 +1408,7 @@ enter_STATE_MAGIC_START (struct nbd_hand
 
 }
 
-#line 1395 "lib/states.c"
+#line 1412 "lib/states.c"
 int
 nbd_internal_enter_STATE_MAGIC_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1424,7 +1441,7 @@ enter_STATE_MAGIC_RECV_MAGIC (struct nbd
 
 }
 
-#line 1428 "lib/states.c"
+#line 1445 "lib/states.c"
 int
 nbd_internal_enter_STATE_MAGIC_RECV_MAGIC (struct nbd_handle *h, bool *blocked)
 {
@@ -1473,7 +1490,7 @@ enter_STATE_MAGIC_CHECK_MAGIC (struct nb
 
 }
 
-#line 1477 "lib/states.c"
+#line 1494 "lib/states.c"
 int
 nbd_internal_enter_STATE_MAGIC_CHECK_MAGIC (struct nbd_handle *h, bool *blocked)
 {
@@ -1510,7 +1527,7 @@ enter_STATE_OLDSTYLE_START (struct nbd_h
 
 }
 
-#line 1514 "lib/states.c"
+#line 1531 "lib/states.c"
 int
 nbd_internal_enter_STATE_OLDSTYLE_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1543,7 +1560,7 @@ enter_STATE_OLDSTYLE_RECV_REMAINING (str
 
 }
 
-#line 1547 "lib/states.c"
+#line 1564 "lib/states.c"
 int
 nbd_internal_enter_STATE_OLDSTYLE_RECV_REMAINING (struct nbd_handle *h, bool *blocked)
 {
@@ -1607,7 +1624,7 @@ enter_STATE_OLDSTYLE_CHECK (struct nbd_h
 
 }
 
-#line 1611 "lib/states.c"
+#line 1628 "lib/states.c"
 int
 nbd_internal_enter_STATE_OLDSTYLE_CHECK (struct nbd_handle *h, bool *blocked)
 {
@@ -1672,7 +1689,7 @@ enter_STATE_NEWSTYLE_START (struct nbd_h
 
 }
 
-#line 1676 "lib/states.c"
+#line 1693 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1705,7 +1722,7 @@ enter_STATE_NEWSTYLE_RECV_GFLAGS (struct
 
 }
 
-#line 1709 "lib/states.c"
+#line 1726 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_RECV_GFLAGS (struct nbd_handle *h, bool *blocked)
 {
@@ -1755,7 +1772,7 @@ enter_STATE_NEWSTYLE_CHECK_GFLAGS (struc
 
 }
 
-#line 1759 "lib/states.c"
+#line 1776 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_CHECK_GFLAGS (struct nbd_handle *h, bool *blocked)
 {
@@ -1797,7 +1814,7 @@ enter_STATE_NEWSTYLE_SEND_CFLAGS (struct
 
 }
 
-#line 1801 "lib/states.c"
+#line 1818 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_SEND_CFLAGS (struct nbd_handle *h, bool *blocked)
 {
@@ -1839,7 +1856,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_START
 
 }
 
-#line 1843 "lib/states.c"
+#line 1860 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_START (struct nbd_handle *h, bool *blocked)
 {
@@ -1875,7 +1892,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_SEND (
 
 }
 
-#line 1879 "lib/states.c"
+#line 1896 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -1913,7 +1930,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_RECV_R
 
 }
 
-#line 1917 "lib/states.c"
+#line 1934 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -1946,7 +1963,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_RECV_R
 
 }
 
-#line 1950 "lib/states.c"
+#line 1967 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -2015,7 +2032,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_CHECK_
 
 }
 
-#line 2019 "lib/states.c"
+#line 2036 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2065,7 +2082,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_TLS_HA
 
 }
 
-#line 2069 "lib/states.c"
+#line 2086 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_READ (struct nbd_handle *h, bool *blocked)
 {
@@ -2114,7 +2131,7 @@ enter_STATE_NEWSTYLE_OPT_STARTTLS_TLS_HA
 
 }
 
-#line 2118 "lib/states.c"
+#line 2135 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_WRITE (struct nbd_handle *h, bool *blocked)
 {
@@ -2155,7 +2172,7 @@ enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPL
 
 }
 
-#line 2159 "lib/states.c"
+#line 2176 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_START (struct nbd_handle *h, bool *blocked)
 {
@@ -2191,7 +2208,7 @@ enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPL
 
 }
 
-#line 2195 "lib/states.c"
+#line 2212 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -2229,7 +2246,7 @@ enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPL
 
 }
 
-#line 2233 "lib/states.c"
+#line 2250 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2262,7 +2279,7 @@ enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPL
 
 }
 
-#line 2266 "lib/states.c"
+#line 2283 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -2315,7 +2332,7 @@ enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPL
 
 }
 
-#line 2319 "lib/states.c"
+#line 2336 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2382,7 +2399,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_ST
 
 }
 
-#line 2386 "lib/states.c"
+#line 2403 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_START (struct nbd_handle *h, bool *blocked)
 {
@@ -2420,7 +2437,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2424 "lib/states.c"
+#line 2441 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -2457,7 +2474,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2461 "lib/states.c"
+#line 2478 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAMELEN (struct nbd_handle *h, bool *blocked)
 {
@@ -2495,7 +2512,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2499 "lib/states.c"
+#line 2516 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAME (struct nbd_handle *h, bool *blocked)
 {
@@ -2530,7 +2547,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2534 "lib/states.c"
+#line 2551 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_NRQUERIES (struct nbd_handle *h, bool *blocked)
 {
@@ -2571,7 +2588,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_PR
 
 }
 
-#line 2575 "lib/states.c"
+#line 2592 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_NEXT_QUERY (struct nbd_handle *h, bool *blocked)
 {
@@ -2609,7 +2626,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2613 "lib/states.c"
+#line 2630 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERYLEN (struct nbd_handle *h, bool *blocked)
 {
@@ -2644,7 +2661,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SE
 
 }
 
-#line 2648 "lib/states.c"
+#line 2665 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERY (struct nbd_handle *h, bool *blocked)
 {
@@ -2676,7 +2693,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_PR
 
 }
 
-#line 2680 "lib/states.c"
+#line 2697 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_FOR_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2721,7 +2738,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_RE
 
 }
 
-#line 2725 "lib/states.c"
+#line 2742 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2754,7 +2771,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_RE
 
 }
 
-#line 2758 "lib/states.c"
+#line 2775 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -2868,7 +2885,7 @@ enter_STATE_NEWSTYLE_OPT_META_CONTEXT_CH
 
 }
 
-#line 2872 "lib/states.c"
+#line 2889 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_META_CONTEXT_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -2921,7 +2938,7 @@ enter_STATE_NEWSTYLE_OPT_GO_START (struc
 
 }
 
-#line 2925 "lib/states.c"
+#line 2942 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_START (struct nbd_handle *h, bool *blocked)
 {
@@ -2961,7 +2978,7 @@ enter_STATE_NEWSTYLE_OPT_GO_SEND (struct
 
 }
 
-#line 2965 "lib/states.c"
+#line 2982 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -2998,7 +3015,7 @@ enter_STATE_NEWSTYLE_OPT_GO_SEND_EXPORTN
 
 }
 
-#line 3002 "lib/states.c"
+#line 3019 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_SEND_EXPORTNAMELEN (struct nbd_handle *h, bool *blocked)
 {
@@ -3042,7 +3059,7 @@ enter_STATE_NEWSTYLE_OPT_GO_SEND_EXPORT
 
 }
 
-#line 3046 "lib/states.c"
+#line 3063 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_SEND_EXPORT (struct nbd_handle *h, bool *blocked)
 {
@@ -3086,7 +3103,7 @@ enter_STATE_NEWSTYLE_OPT_GO_SEND_NRINFOS
 
 }
 
-#line 3090 "lib/states.c"
+#line 3107 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_SEND_NRINFOS (struct nbd_handle *h, bool *blocked)
 {
@@ -3122,7 +3139,7 @@ enter_STATE_NEWSTYLE_OPT_GO_SEND_INFO (s
 
 }
 
-#line 3126 "lib/states.c"
+#line 3143 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_SEND_INFO (struct nbd_handle *h, bool *blocked)
 {
@@ -3160,7 +3177,7 @@ enter_STATE_NEWSTYLE_OPT_GO_RECV_REPLY (
 
 }
 
-#line 3164 "lib/states.c"
+#line 3181 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3193,7 +3210,7 @@ enter_STATE_NEWSTYLE_OPT_GO_RECV_REPLY_P
 
 }
 
-#line 3197 "lib/states.c"
+#line 3214 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_RECV_REPLY_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -3369,7 +3386,7 @@ enter_STATE_NEWSTYLE_OPT_GO_CHECK_REPLY
 
 }
 
-#line 3373 "lib/states.c"
+#line 3390 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_GO_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3405,7 +3422,7 @@ enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_STA
 
 }
 
-#line 3409 "lib/states.c"
+#line 3426 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_START (struct nbd_handle *h, bool *blocked)
 {
@@ -3441,7 +3458,7 @@ enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_SEN
 
 }
 
-#line 3445 "lib/states.c"
+#line 3462 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -3479,7 +3496,7 @@ enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_SEN
 
 }
 
-#line 3483 "lib/states.c"
+#line 3500 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND_EXPORT (struct nbd_handle *h, bool *blocked)
 {
@@ -3512,7 +3529,7 @@ enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_REC
 
 }
 
-#line 3516 "lib/states.c"
+#line 3533 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3554,7 +3571,7 @@ enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_CHE
 
 }
 
-#line 3558 "lib/states.c"
+#line 3575 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_EXPORT_NAME_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3592,7 +3609,7 @@ enter_STATE_NEWSTYLE_OPT_LIST_START (str
 
 }
 
-#line 3596 "lib/states.c"
+#line 3613 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_LIST_START (struct nbd_handle *h, bool *blocked)
 {
@@ -3628,7 +3645,7 @@ enter_STATE_NEWSTYLE_OPT_LIST_SEND (stru
 
 }
 
-#line 3632 "lib/states.c"
+#line 3649 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_LIST_SEND (struct nbd_handle *h, bool *blocked)
 {
@@ -3666,7 +3683,7 @@ enter_STATE_NEWSTYLE_OPT_LIST_RECV_REPLY
 
 }
 
-#line 3670 "lib/states.c"
+#line 3687 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_LIST_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3699,7 +3716,7 @@ enter_STATE_NEWSTYLE_OPT_LIST_RECV_REPLY
 
 }
 
-#line 3703 "lib/states.c"
+#line 3720 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_LIST_RECV_REPLY_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -3798,7 +3815,7 @@ enter_STATE_NEWSTYLE_OPT_LIST_CHECK_REPL
 
 }
 
-#line 3802 "lib/states.c"
+#line 3819 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_OPT_LIST_CHECK_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -3834,7 +3851,7 @@ enter_STATE_NEWSTYLE_PREPARE_OPT_ABORT (
 
 }
 
-#line 3838 "lib/states.c"
+#line 3855 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_PREPARE_OPT_ABORT (struct nbd_handle *h, bool *blocked)
 {
@@ -3868,7 +3885,7 @@ enter_STATE_NEWSTYLE_SEND_OPT_ABORT (str
 
 }
 
-#line 3872 "lib/states.c"
+#line 3889 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_SEND_OPT_ABORT (struct nbd_handle *h, bool *blocked)
 {
@@ -3907,7 +3924,7 @@ enter_STATE_NEWSTYLE_SEND_OPTION_SHUTDOW
 
 }
 
-#line 3911 "lib/states.c"
+#line 3928 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_SEND_OPTION_SHUTDOWN (struct nbd_handle *h, bool *blocked)
 {
@@ -3937,7 +3954,7 @@ enter_STATE_NEWSTYLE_FINISHED (struct nb
 
 }
 
-#line 3941 "lib/states.c"
+#line 3958 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEWSTYLE_FINISHED (struct nbd_handle *h, bool *blocked)
 {
@@ -3963,7 +3980,7 @@ enter_STATE_NEGOTIATING (struct nbd_hand
   return 0;
 }
 
-#line 3967 "lib/states.c"
+#line 3984 "lib/states.c"
 int
 nbd_internal_enter_STATE_NEGOTIATING (struct nbd_handle *h, bool *blocked)
 {
@@ -3999,7 +4016,7 @@ enter_STATE_READY (struct nbd_handle *h,
 
 }
 
-#line 4003 "lib/states.c"
+#line 4020 "lib/states.c"
 int
 nbd_internal_enter_STATE_READY (struct nbd_handle *h, bool *blocked)
 {
@@ -4060,7 +4077,7 @@ enter_STATE_ISSUE_COMMAND_START (struct
 
 }
 
-#line 4064 "lib/states.c"
+#line 4081 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_START (struct nbd_handle *h, bool *blocked)
 {
@@ -4093,7 +4110,7 @@ enter_STATE_ISSUE_COMMAND_SEND_REQUEST (
 
 }
 
-#line 4097 "lib/states.c"
+#line 4114 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_SEND_REQUEST (struct nbd_handle *h, bool *blocked)
 {
@@ -4126,7 +4143,7 @@ enter_STATE_ISSUE_COMMAND_PAUSE_SEND_REQ
 
 }
 
-#line 4130 "lib/states.c"
+#line 4147 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_PAUSE_SEND_REQUEST (struct nbd_handle *h, bool *blocked)
 {
@@ -4173,7 +4190,7 @@ enter_STATE_ISSUE_COMMAND_PREPARE_WRITE_
 
 }
 
-#line 4177 "lib/states.c"
+#line 4194 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_PREPARE_WRITE_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -4206,7 +4223,7 @@ enter_STATE_ISSUE_COMMAND_SEND_WRITE_PAY
 
 }
 
-#line 4210 "lib/states.c"
+#line 4227 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_SEND_WRITE_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -4239,7 +4256,7 @@ enter_STATE_ISSUE_COMMAND_PAUSE_WRITE_PA
 
 }
 
-#line 4243 "lib/states.c"
+#line 4260 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_PAUSE_WRITE_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -4270,7 +4287,7 @@ enter_STATE_ISSUE_COMMAND_SEND_WRITE_SHU
 
 }
 
-#line 4274 "lib/states.c"
+#line 4291 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_SEND_WRITE_SHUTDOWN (struct nbd_handle *h, bool *blocked)
 {
@@ -4301,7 +4318,7 @@ enter_STATE_ISSUE_COMMAND_PAUSE_WRITE_SH
 
 }
 
-#line 4305 "lib/states.c"
+#line 4322 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_PAUSE_WRITE_SHUTDOWN (struct nbd_handle *h, bool *blocked)
 {
@@ -4342,7 +4359,7 @@ enter_STATE_ISSUE_COMMAND_FINISH (struct
 
 }
 
-#line 4346 "lib/states.c"
+#line 4363 "lib/states.c"
 int
 nbd_internal_enter_STATE_ISSUE_COMMAND_FINISH (struct nbd_handle *h, bool *blocked)
 {
@@ -4429,7 +4446,7 @@ enter_STATE_REPLY_START (struct nbd_hand
 
 }
 
-#line 4433 "lib/states.c"
+#line 4450 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_START (struct nbd_handle *h, bool *blocked)
 {
@@ -4463,7 +4480,7 @@ enter_STATE_REPLY_RECV_REPLY (struct nbd
 
 }
 
-#line 4467 "lib/states.c"
+#line 4484 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_RECV_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -4530,7 +4547,7 @@ enter_STATE_REPLY_CHECK_SIMPLE_OR_STRUCT
 
 }
 
-#line 4534 "lib/states.c"
+#line 4551 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_CHECK_SIMPLE_OR_STRUCTURED_REPLY (struct nbd_handle *h, bool *blocked)
 {
@@ -4585,7 +4602,7 @@ enter_STATE_REPLY_SIMPLE_REPLY_START (st
 
 }
 
-#line 4589 "lib/states.c"
+#line 4606 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_SIMPLE_REPLY_START (struct nbd_handle *h, bool *blocked)
 {
@@ -4638,7 +4655,7 @@ enter_STATE_REPLY_SIMPLE_REPLY_RECV_READ
 
 }
 
-#line 4642 "lib/states.c"
+#line 4659 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_SIMPLE_REPLY_RECV_READ_PAYLOAD (struct nbd_handle *h, bool *blocked)
 {
@@ -4680,7 +4697,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_START
 
 }
 
-#line 4684 "lib/states.c"
+#line 4701 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_START (struct nbd_handle *h, bool *blocked)
 {
@@ -4717,7 +4734,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 4721 "lib/states.c"
+#line 4738 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_REMAINING (struct nbd_handle *h, bool *blocked)
 {
@@ -4878,7 +4895,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_CHECK
 
 }
 
-#line 4882 "lib/states.c"
+#line 4899 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_CHECK (struct nbd_handle *h, bool *blocked)
 {
@@ -4929,7 +4946,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 4933 "lib/states.c"
+#line 4950 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_ERROR (struct nbd_handle *h, bool *blocked)
 {
@@ -5000,7 +5017,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5004 "lib/states.c"
+#line 5021 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_ERROR_MESSAGE (struct nbd_handle *h, bool *blocked)
 {
@@ -5086,7 +5103,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5090 "lib/states.c"
+#line 5107 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_ERROR_TAIL (struct nbd_handle *h, bool *blocked)
 {
@@ -5150,7 +5167,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5154 "lib/states.c"
+#line 5171 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_OFFSET_DATA (struct nbd_handle *h, bool *blocked)
 {
@@ -5206,7 +5223,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5210 "lib/states.c"
+#line 5227 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_OFFSET_DATA_DATA (struct nbd_handle *h, bool *blocked)
 {
@@ -5280,7 +5297,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5284 "lib/states.c"
+#line 5301 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_OFFSET_HOLE (struct nbd_handle *h, bool *blocked)
 {
@@ -5362,7 +5379,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_RECV_
 
 }
 
-#line 5366 "lib/states.c"
+#line 5383 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_RECV_BS_ENTRIES (struct nbd_handle *h, bool *blocked)
 {
@@ -5401,7 +5418,7 @@ enter_STATE_REPLY_STRUCTURED_REPLY_FINIS
 
 }
 
-#line 5405 "lib/states.c"
+#line 5422 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_STRUCTURED_REPLY_FINISH (struct nbd_handle *h, bool *blocked)
 {
@@ -5488,7 +5505,7 @@ enter_STATE_REPLY_FINISH_COMMAND (struct
 
 }
 
-#line 5492 "lib/states.c"
+#line 5509 "lib/states.c"
 int
 nbd_internal_enter_STATE_REPLY_FINISH_COMMAND (struct nbd_handle *h, bool *blocked)
 {
@@ -5527,7 +5544,7 @@ enter_STATE_DEAD (struct nbd_handle *h,
 
 }
 
-#line 5531 "lib/states.c"
+#line 5548 "lib/states.c"
 int
 nbd_internal_enter_STATE_DEAD (struct nbd_handle *h, bool *blocked)
 {
@@ -5564,7 +5581,7 @@ enter_STATE_CLOSED (struct nbd_handle *h
 
 }
 
-#line 5568 "lib/states.c"
+#line 5585 "lib/states.c"
 int
 nbd_internal_enter_STATE_CLOSED (struct nbd_handle *h, bool *blocked)
 {
diff -pruN 1.12.6-1/ocaml/examples/Makefile.am 1.12.7-1/ocaml/examples/Makefile.am
--- 1.12.6-1/ocaml/examples/Makefile.am	2021-03-06 10:02:43.000000000 +0000
+++ 1.12.7-1/ocaml/examples/Makefile.am	2022-08-01 15:03:04.000000000 +0000
@@ -50,5 +50,5 @@ endif HAVE_OCAML
 # Dependencies.
 #.depend: $(srcdir)/*.mli $(srcdir)/*.ml
 .depend: $(srcdir)/*.ml
-	$(OCAMLFIND) ocamldep -I .. $^ > $@
+	$(OCAMLFIND) ocamldep -I .. $(srcdir)/*.ml > $@
 -include .depend
diff -pruN 1.12.6-1/ocaml/examples/Makefile.in 1.12.7-1/ocaml/examples/Makefile.in
--- 1.12.6-1/ocaml/examples/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/ocaml/examples/Makefile.in	2022-08-01 15:04:32.000000000 +0000
@@ -618,7 +618,7 @@ $(top_builddir)/podwrapper.pl: $(top_src
 # Dependencies.
 #.depend: $(srcdir)/*.mli $(srcdir)/*.ml
 .depend: $(srcdir)/*.ml
-	$(OCAMLFIND) ocamldep -I .. $^ > $@
+	$(OCAMLFIND) ocamldep -I .. $(srcdir)/*.ml > $@
 -include .depend
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -pruN 1.12.6-1/ocaml/Makefile.am 1.12.7-1/ocaml/Makefile.am
--- 1.12.6-1/ocaml/Makefile.am	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/ocaml/Makefile.am	2022-08-01 15:03:04.000000000 +0000
@@ -139,7 +139,7 @@ endif
 
 # Dependencies.
 .depend: $(srcdir)/*.mli $(srcdir)/*.ml
-	$(OCAMLFIND) ocamldep $^ > $@
+	$(OCAMLFIND) ocamldep $(srcdir)/*.mli $(srcdir)/*.ml > $@
 -include .depend
 
 # Run ocamlfind to perform the install.  ocamlfind refuses to install
diff -pruN 1.12.6-1/ocaml/Makefile.in 1.12.7-1/ocaml/Makefile.in
--- 1.12.6-1/ocaml/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/ocaml/Makefile.in	2022-08-01 15:04:32.000000000 +0000
@@ -1025,7 +1025,7 @@ $(top_builddir)/podwrapper.pl: $(top_src
 
 # Dependencies.
 @HAVE_OCAML_TRUE@.depend: $(srcdir)/*.mli $(srcdir)/*.ml
-@HAVE_OCAML_TRUE@	$(OCAMLFIND) ocamldep $^ > $@
+@HAVE_OCAML_TRUE@	$(OCAMLFIND) ocamldep $(srcdir)/*.mli $(srcdir)/*.ml > $@
 @HAVE_OCAML_TRUE@-include .depend
 
 @HAVE_OCAML_TRUE@install-data-hook:
diff -pruN 1.12.6-1/ocaml/tests/Makefile.am 1.12.7-1/ocaml/tests/Makefile.am
--- 1.12.6-1/ocaml/tests/Makefile.am	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/ocaml/tests/Makefile.am	2022-08-01 15:03:04.000000000 +0000
@@ -142,5 +142,5 @@ check-valgrind:
 # Dependencies.
 #.depend: $(srcdir)/*.mli $(srcdir)/*.ml
 .depend: $(srcdir)/*.ml
-	$(OCAMLFIND) ocamldep -I .. $^ > $@
+	$(OCAMLFIND) ocamldep -I .. $(srcdir)/*.ml > $@
 -include .depend
diff -pruN 1.12.6-1/ocaml/tests/Makefile.in 1.12.7-1/ocaml/tests/Makefile.in
--- 1.12.6-1/ocaml/tests/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/ocaml/tests/Makefile.in	2022-08-01 15:04:32.000000000 +0000
@@ -1429,7 +1429,7 @@ check-valgrind:
 # Dependencies.
 #.depend: $(srcdir)/*.mli $(srcdir)/*.ml
 .depend: $(srcdir)/*.ml
-	$(OCAMLFIND) ocamldep -I .. $^ > $@
+	$(OCAMLFIND) ocamldep -I .. $(srcdir)/*.ml > $@
 -include .depend
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -pruN 1.12.6-1/README 1.12.7-1/README
--- 1.12.6-1/README	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/README	2022-08-01 15:03:50.000000000 +0000
@@ -68,6 +68,9 @@ want to run these tests, do:
 
   sudo make check-root
 
+On FreeBSD, OpenBSD and macOS which do not have GNU make by default
+you must use 'gmake' instead of 'make'.
+
 Requirements:
 
  * Linux, FreeBSD or OpenBSD.
diff -pruN 1.12.6-1/tests/aio-parallel-load-tls.sh 1.12.7-1/tests/aio-parallel-load-tls.sh
--- 1.12.6-1/tests/aio-parallel-load-tls.sh	2021-03-06 10:02:43.000000000 +0000
+++ 1.12.7-1/tests/aio-parallel-load-tls.sh	2022-08-01 15:02:36.000000000 +0000
@@ -18,6 +18,13 @@
 
 # Test AIO random load.
 
+. ../tests/functions.sh
+
+set -e
+set -x
+
+requires nbdkit --tls-verify-peer -U - null --run 'exit 0'
+
 nbdkit -U - --tls=require --tls-verify-peer --tls-psk=keys.psk \
        memory size=64M \
        --run '$VG ./aio-parallel-load-tls $unixsocket'
diff -pruN 1.12.6-1/tests/aio-parallel-tls.sh 1.12.7-1/tests/aio-parallel-tls.sh
--- 1.12.6-1/tests/aio-parallel-tls.sh	2021-03-06 10:02:43.000000000 +0000
+++ 1.12.7-1/tests/aio-parallel-tls.sh	2022-08-01 15:02:36.000000000 +0000
@@ -18,6 +18,13 @@
 
 # Test AIO parallel data integrity.
 
+. ../tests/functions.sh
+
+set -e
+set -x
+
+requires nbdkit --tls-verify-peer -U - null --run 'exit 0'
+
 nbdkit -U - --tls=require --tls-verify-peer --tls-psk=keys.psk \
        --filter=cow \
        pattern size=64M \
diff -pruN 1.12.6-1/tests/connect-tls.c 1.12.7-1/tests/connect-tls.c
--- 1.12.6-1/tests/connect-tls.c	2021-04-07 15:49:18.000000000 +0000
+++ 1.12.7-1/tests/connect-tls.c	2022-08-01 15:02:36.000000000 +0000
@@ -30,6 +30,8 @@
 
 #include <libnbd.h>
 
+#include "requires.h"
+
 int
 main (int argc, char *argv[])
 {
@@ -37,6 +39,9 @@ main (int argc, char *argv[])
   char buf[512];
   int64_t actual_size;
 
+  /* Check --tls-verify-peer option is supported. */
+  requires ("nbdkit --tls-verify-peer -U - null --run 'exit 0'");
+
   nbd = nbd_create ();
   if (nbd == NULL) {
     fprintf (stderr, "%s\n", nbd_get_error ());
diff -pruN 1.12.6-1/tests/connect-uri.c 1.12.7-1/tests/connect-uri.c
--- 1.12.6-1/tests/connect-uri.c	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/tests/connect-uri.c	2022-08-01 15:02:36.000000000 +0000
@@ -29,6 +29,8 @@
 
 #include <libnbd.h>
 
+#include "requires.h"
+
 #ifdef NEEDS_UNIX_SOCKET
 #define UNIX_SOCKET tmp
 static char tmp[] = "/tmp/nbdXXXXXX";
@@ -55,6 +57,13 @@ main (int argc, char *argv[])
   const char *uri = URI;
 #endif
 
+  /* If SERVER_PARAMS contains --tls-verify-peer we must make sure
+   * that nbdkit supports that option.
+   */
+#ifdef REQUIRES_NBDKIT_TLS_VERIFY_PEER
+  requires ("nbdkit --tls-verify-peer -U - null --run 'exit 0'");
+#endif
+
 #ifdef NEEDS_UNIX_SOCKET
   int fd = mkstemp (UNIX_SOCKET);
   if (fd == -1 ||
diff -pruN 1.12.6-1/tests/Makefile.am 1.12.7-1/tests/Makefile.am
--- 1.12.6-1/tests/Makefile.am	2022-02-22 13:31:29.000000000 +0000
+++ 1.12.7-1/tests/Makefile.am	2022-08-01 15:02:36.000000000 +0000
@@ -609,7 +609,7 @@ check_PROGRAMS += connect-tls-certs
 check_DATA += pki/stamp-pki
 TESTS += connect-tls-certs
 
-connect_tls_certs_SOURCES = connect-tls.c
+connect_tls_certs_SOURCES = connect-tls.c requires.c requires.h
 connect_tls_certs_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DCERTS=1 \
@@ -640,7 +640,7 @@ TESTS += \
 	$(NULL)
 check_DATA += keys.psk
 
-connect_tls_psk_SOURCES = connect-tls.c
+connect_tls_psk_SOURCES = connect-tls.c requires.c requires.h
 connect_tls_psk_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DPSK=1 \
@@ -695,7 +695,7 @@ TESTS += \
 	$(NULL)
 
 RANDOM1 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-connect_uri_nbd_SOURCES = connect-uri.c
+connect_uri_nbd_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbd_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DSERVER_PARAMS='"-p", "$(RANDOM1)"' \
@@ -705,7 +705,7 @@ connect_uri_nbd_CPPFLAGS = \
 connect_uri_nbd_CFLAGS = $(AM_CFLAGS)
 connect_uri_nbd_LDADD = $(top_builddir)/lib/libnbd.la
 
-connect_uri_nbd_unix_SOURCES = connect-uri.c
+connect_uri_nbd_unix_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbd_unix_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DNEEDS_UNIX_SOCKET=1 \
@@ -727,20 +727,22 @@ TESTS += \
 	$(NULL)
 
 RANDOM2 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-connect_uri_nbds_certs_SOURCES = connect-uri.c
+connect_uri_nbds_certs_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbds_certs_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DSERVER_PARAMS='"-p", "$(RANDOM2)", "--tls=require", "--tls-verify-peer", "--tls-certificates=pki"' \
+	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 	-DPIDFILE='"connect-uri-nbds-certs.pid"' \
 	-DURI='"nbds://localhost:$(RANDOM2)/?tls-certificates=pki"' \
 	$(NULL)
 connect_uri_nbds_certs_LDADD = $(top_builddir)/lib/libnbd.la
 
-connect_uri_nbds_unix_certs_SOURCES = connect-uri.c
+connect_uri_nbds_unix_certs_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbds_unix_certs_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DNEEDS_UNIX_SOCKET=1 \
 	-DSERVER_PARAMS='"-U", UNIX_SOCKET, "--tls=require", "--tls-verify-peer", "--tls-certificates=pki"' \
+	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 	-DPIDFILE='"connect-uri-nbds-unix-certs.pid"' \
 	-DURI='"nbds+unix://alice@/?tls-certificates=pki&socket="' # UNIX_SOCKET appended
 connect_uri_nbds_unix_certs_LDADD = $(top_builddir)/lib/libnbd.la
@@ -759,20 +761,22 @@ TESTS += \
 	$(NULL)
 
 RANDOM3 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-connect_uri_nbds_psk_SOURCES = connect-uri.c
+connect_uri_nbds_psk_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbds_psk_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DSERVER_PARAMS='"-p", "$(RANDOM3)", "--tls=require", "--tls-verify-peer", "--tls-psk=keys.psk"' \
+	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 	-DPIDFILE='"connect-uri-nbds-psk.pid"' \
 	-DURI='"nbds://alice@localhost:$(RANDOM3)/?tls-psk-file=keys.psk"' \
 	$(NULL)
 connect_uri_nbds_psk_LDADD = $(top_builddir)/lib/libnbd.la
 
-connect_uri_nbds_unix_psk_SOURCES = connect-uri.c
+connect_uri_nbds_unix_psk_SOURCES = connect-uri.c requires.c requires.h
 connect_uri_nbds_unix_psk_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DNEEDS_UNIX_SOCKET=1 \
 	-DSERVER_PARAMS='"-U", UNIX_SOCKET, "--tls=require", "--tls-verify-peer", "--tls-psk=keys.psk"' \
+	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 	-DPIDFILE='"connect-uri-nbds-unix-psk.pid"' \
 	-DURI='"nbds+unix://alice@/?tls-psk-file=keys.psk&socket="' # UNIX_SOCKET appended \
 	$(NULL)
diff -pruN 1.12.6-1/tests/Makefile.in 1.12.7-1/tests/Makefile.in
--- 1.12.6-1/tests/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/tests/Makefile.in	2022-08-01 15:04:32.000000000 +0000
@@ -652,12 +652,15 @@ am__connect_tcp6_SOURCES_DIST = connect-
 connect_tcp6_OBJECTS = $(am_connect_tcp6_OBJECTS)
 @HAVE_NBDKIT_TRUE@connect_tcp6_DEPENDENCIES =  \
 @HAVE_NBDKIT_TRUE@	$(top_builddir)/lib/libnbd.la
-am__connect_tls_certs_SOURCES_DIST = connect-tls.c
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_tls_certs_OBJECTS = connect_tls_certs-connect-tls.$(OBJEXT)
+am__connect_tls_certs_SOURCES_DIST = connect-tls.c requires.c \
+	requires.h
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_tls_certs_OBJECTS = connect_tls_certs-connect-tls.$(OBJEXT) \
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	connect_tls_certs-requires.$(OBJEXT)
 connect_tls_certs_OBJECTS = $(am_connect_tls_certs_OBJECTS)
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_tls_certs_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
-am__connect_tls_psk_SOURCES_DIST = connect-tls.c
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_tls_psk_OBJECTS = connect_tls_psk-connect-tls.$(OBJEXT)
+am__connect_tls_psk_SOURCES_DIST = connect-tls.c requires.c requires.h
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_tls_psk_OBJECTS = connect_tls_psk-connect-tls.$(OBJEXT) \
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	connect_tls_psk-requires.$(OBJEXT)
 connect_tls_psk_OBJECTS = $(am_connect_tls_psk_OBJECTS)
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_tls_psk_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
 am__connect_unix_SOURCES_DIST = connect-unix.c
@@ -665,9 +668,10 @@ am__connect_unix_SOURCES_DIST = connect-
 connect_unix_OBJECTS = $(am_connect_unix_OBJECTS)
 @HAVE_NBDKIT_TRUE@connect_unix_DEPENDENCIES =  \
 @HAVE_NBDKIT_TRUE@	$(top_builddir)/lib/libnbd.la
-am__connect_uri_nbd_SOURCES_DIST = connect-uri.c
+am__connect_uri_nbd_SOURCES_DIST = connect-uri.c requires.c requires.h
 @HAVE_NBDKIT_TRUE@am_connect_uri_nbd_OBJECTS =  \
-@HAVE_NBDKIT_TRUE@	connect_uri_nbd-connect-uri.$(OBJEXT)
+@HAVE_NBDKIT_TRUE@	connect_uri_nbd-connect-uri.$(OBJEXT) \
+@HAVE_NBDKIT_TRUE@	connect_uri_nbd-requires.$(OBJEXT)
 connect_uri_nbd_OBJECTS = $(am_connect_uri_nbd_OBJECTS)
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_DEPENDENCIES =  \
 @HAVE_NBDKIT_TRUE@	$(top_builddir)/lib/libnbd.la
@@ -675,27 +679,37 @@ connect_uri_nbd_LINK = $(LIBTOOL) $(AM_V
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(connect_uri_nbd_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-am__connect_uri_nbd_unix_SOURCES_DIST = connect-uri.c
+am__connect_uri_nbd_unix_SOURCES_DIST = connect-uri.c requires.c \
+	requires.h
 @HAVE_NBDKIT_TRUE@am_connect_uri_nbd_unix_OBJECTS =  \
-@HAVE_NBDKIT_TRUE@	connect_uri_nbd_unix-connect-uri.$(OBJEXT)
+@HAVE_NBDKIT_TRUE@	connect_uri_nbd_unix-connect-uri.$(OBJEXT) \
+@HAVE_NBDKIT_TRUE@	connect_uri_nbd_unix-requires.$(OBJEXT)
 connect_uri_nbd_unix_OBJECTS = $(am_connect_uri_nbd_unix_OBJECTS)
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_unix_DEPENDENCIES =  \
 @HAVE_NBDKIT_TRUE@	$(top_builddir)/lib/libnbd.la
-am__connect_uri_nbds_certs_SOURCES_DIST = connect-uri.c
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_uri_nbds_certs_OBJECTS = connect_uri_nbds_certs-connect-uri.$(OBJEXT)
+am__connect_uri_nbds_certs_SOURCES_DIST = connect-uri.c requires.c \
+	requires.h
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_uri_nbds_certs_OBJECTS = connect_uri_nbds_certs-connect-uri.$(OBJEXT) \
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	connect_uri_nbds_certs-requires.$(OBJEXT)
 connect_uri_nbds_certs_OBJECTS = $(am_connect_uri_nbds_certs_OBJECTS)
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_certs_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
-am__connect_uri_nbds_psk_SOURCES_DIST = connect-uri.c
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_uri_nbds_psk_OBJECTS = connect_uri_nbds_psk-connect-uri.$(OBJEXT)
+am__connect_uri_nbds_psk_SOURCES_DIST = connect-uri.c requires.c \
+	requires.h
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_uri_nbds_psk_OBJECTS = connect_uri_nbds_psk-connect-uri.$(OBJEXT) \
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	connect_uri_nbds_psk-requires.$(OBJEXT)
 connect_uri_nbds_psk_OBJECTS = $(am_connect_uri_nbds_psk_OBJECTS)
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_psk_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
-am__connect_uri_nbds_unix_certs_SOURCES_DIST = connect-uri.c
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_uri_nbds_unix_certs_OBJECTS = connect_uri_nbds_unix_certs-connect-uri.$(OBJEXT)
+am__connect_uri_nbds_unix_certs_SOURCES_DIST = connect-uri.c \
+	requires.c requires.h
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@am_connect_uri_nbds_unix_certs_OBJECTS = connect_uri_nbds_unix_certs-connect-uri.$(OBJEXT) \
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	connect_uri_nbds_unix_certs-requires.$(OBJEXT)
 connect_uri_nbds_unix_certs_OBJECTS =  \
 	$(am_connect_uri_nbds_unix_certs_OBJECTS)
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_unix_certs_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
-am__connect_uri_nbds_unix_psk_SOURCES_DIST = connect-uri.c
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_uri_nbds_unix_psk_OBJECTS = connect_uri_nbds_unix_psk-connect-uri.$(OBJEXT)
+am__connect_uri_nbds_unix_psk_SOURCES_DIST = connect-uri.c requires.c \
+	requires.h
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@am_connect_uri_nbds_unix_psk_OBJECTS = connect_uri_nbds_unix_psk-connect-uri.$(OBJEXT) \
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	connect_uri_nbds_unix_psk-requires.$(OBJEXT)
 connect_uri_nbds_unix_psk_OBJECTS =  \
 	$(am_connect_uri_nbds_unix_psk_OBJECTS)
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_unix_psk_DEPENDENCIES = $(top_builddir)/lib/libnbd.la
@@ -1038,13 +1052,21 @@ am__depfiles_remade = ./$(DEPDIR)/aio-co
 	./$(DEPDIR)/connect-tcp.Po ./$(DEPDIR)/connect-tcp6.Po \
 	./$(DEPDIR)/connect-unix.Po \
 	./$(DEPDIR)/connect_tls_certs-connect-tls.Po \
+	./$(DEPDIR)/connect_tls_certs-requires.Po \
 	./$(DEPDIR)/connect_tls_psk-connect-tls.Po \
+	./$(DEPDIR)/connect_tls_psk-requires.Po \
 	./$(DEPDIR)/connect_uri_nbd-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbd-requires.Po \
 	./$(DEPDIR)/connect_uri_nbd_unix-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbd_unix-requires.Po \
 	./$(DEPDIR)/connect_uri_nbds_certs-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbds_certs-requires.Po \
 	./$(DEPDIR)/connect_uri_nbds_psk-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbds_psk-requires.Po \
 	./$(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po \
 	./$(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Po \
+	./$(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po \
 	./$(DEPDIR)/debug-environment.Po ./$(DEPDIR)/debug.Po \
 	./$(DEPDIR)/dlopen-dlopen.Po ./$(DEPDIR)/errors-bad-cookie.Po \
 	./$(DEPDIR)/errors-bitmask.Po \
@@ -2093,14 +2115,14 @@ private_data_LDADD = $(top_builddir)/lib
 @HAVE_NBDKIT_TRUE@closure_lifetimes_LDADD = $(top_builddir)/lib/libnbd.la
 @HAVE_NBDKIT_TRUE@pread_initialize_SOURCES = pread-initialize.c
 @HAVE_NBDKIT_TRUE@pread_initialize_LDADD = $(top_builddir)/lib/libnbd.la
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_tls_certs_SOURCES = connect-tls.c
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_tls_certs_SOURCES = connect-tls.c requires.c requires.h
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_tls_certs_CPPFLAGS = \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DCERTS=1 \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	$(NULL)
 
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_tls_certs_LDADD = $(top_builddir)/lib/libnbd.la
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_tls_psk_SOURCES = connect-tls.c
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_tls_psk_SOURCES = connect-tls.c requires.c requires.h
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_tls_psk_CPPFLAGS = \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DPSK=1 \
@@ -2134,7 +2156,7 @@ private_data_LDADD = $(top_builddir)/lib
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@synch_parallel_tls_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@synch_parallel_tls_LDADD = $(top_builddir)/lib/libnbd.la $(PTHREAD_LIBS)
 @HAVE_NBDKIT_TRUE@RANDOM1 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-@HAVE_NBDKIT_TRUE@connect_uri_nbd_SOURCES = connect-uri.c
+@HAVE_NBDKIT_TRUE@connect_uri_nbd_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_CPPFLAGS = \
 @HAVE_NBDKIT_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_NBDKIT_TRUE@	-DSERVER_PARAMS='"-p", "$(RANDOM1)"' \
@@ -2144,7 +2166,7 @@ private_data_LDADD = $(top_builddir)/lib
 
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_CFLAGS = $(AM_CFLAGS)
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_LDADD = $(top_builddir)/lib/libnbd.la
-@HAVE_NBDKIT_TRUE@connect_uri_nbd_unix_SOURCES = connect-uri.c
+@HAVE_NBDKIT_TRUE@connect_uri_nbd_unix_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_unix_CPPFLAGS = \
 @HAVE_NBDKIT_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_NBDKIT_TRUE@	-DNEEDS_UNIX_SOCKET=1 \
@@ -2154,39 +2176,43 @@ private_data_LDADD = $(top_builddir)/lib
 
 @HAVE_NBDKIT_TRUE@connect_uri_nbd_unix_LDADD = $(top_builddir)/lib/libnbd.la
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@RANDOM2 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_certs_SOURCES = connect-uri.c
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_certs_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_certs_CPPFLAGS = \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DSERVER_PARAMS='"-p", "$(RANDOM2)", "--tls=require", "--tls-verify-peer", "--tls-certificates=pki"' \
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DPIDFILE='"connect-uri-nbds-certs.pid"' \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DURI='"nbds://localhost:$(RANDOM2)/?tls-certificates=pki"' \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	$(NULL)
 
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_certs_LDADD = $(top_builddir)/lib/libnbd.la
-@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_unix_certs_SOURCES = connect-uri.c
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_unix_certs_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_unix_certs_CPPFLAGS = \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DNEEDS_UNIX_SOCKET=1 \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DSERVER_PARAMS='"-U", UNIX_SOCKET, "--tls=require", "--tls-verify-peer", "--tls-certificates=pki"' \
+@HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DPIDFILE='"connect-uri-nbds-unix-certs.pid"' \
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@	-DURI='"nbds+unix://alice@/?tls-certificates=pki&socket="' # UNIX_SOCKET appended
 
 @HAVE_CERTTOOL_TRUE@@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@connect_uri_nbds_unix_certs_LDADD = $(top_builddir)/lib/libnbd.la
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@RANDOM3 := $(shell bash -c 'echo $$(( 32768 + (RANDOM & 16383) ))')
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_psk_SOURCES = connect-uri.c
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_psk_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_psk_CPPFLAGS = \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DSERVER_PARAMS='"-p", "$(RANDOM3)", "--tls=require", "--tls-verify-peer", "--tls-psk=keys.psk"' \
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DPIDFILE='"connect-uri-nbds-psk.pid"' \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DURI='"nbds://alice@localhost:$(RANDOM3)/?tls-psk-file=keys.psk"' \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	$(NULL)
 
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_psk_LDADD = $(top_builddir)/lib/libnbd.la
-@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_unix_psk_SOURCES = connect-uri.c
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_unix_psk_SOURCES = connect-uri.c requires.c requires.h
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@connect_uri_nbds_unix_psk_CPPFLAGS = \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	$(AM_CPPFLAGS) \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DNEEDS_UNIX_SOCKET=1 \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DSERVER_PARAMS='"-U", UNIX_SOCKET, "--tls=require", "--tls-verify-peer", "--tls-psk=keys.psk"' \
+@HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DREQUIRES_NBDKIT_TLS_VERIFY_PEER=1 \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DPIDFILE='"connect-uri-nbds-unix-psk.pid"' \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	-DURI='"nbds+unix://alice@/?tls-psk-file=keys.psk&socket="' # UNIX_SOCKET appended \
 @HAVE_GNUTLS_TRUE@@HAVE_NBDKIT_TRUE@@HAVE_PSKTOOL_TRUE@	$(NULL)
@@ -2633,13 +2659,21 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect-tcp6.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect-unix.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_tls_certs-connect-tls.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_tls_certs-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_tls_psk-connect-tls.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_tls_psk-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbd-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbd-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbd_unix-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbd_unix-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_certs-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_certs-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_psk-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_psk-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug-environment.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlopen-dlopen.Po@am__quote@ # am--include-marker
@@ -3235,6 +3269,20 @@ connect_tls_certs-connect-tls.obj: conne
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_certs-connect-tls.obj `if test -f 'connect-tls.c'; then $(CYGPATH_W) 'connect-tls.c'; else $(CYGPATH_W) '$(srcdir)/connect-tls.c'; fi`
 
+connect_tls_certs-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_tls_certs-requires.o -MD -MP -MF $(DEPDIR)/connect_tls_certs-requires.Tpo -c -o connect_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_tls_certs-requires.Tpo $(DEPDIR)/connect_tls_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_tls_certs-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_tls_certs-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_tls_certs-requires.obj -MD -MP -MF $(DEPDIR)/connect_tls_certs-requires.Tpo -c -o connect_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_tls_certs-requires.Tpo $(DEPDIR)/connect_tls_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_tls_certs-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_tls_psk-connect-tls.o: connect-tls.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_tls_psk-connect-tls.o -MD -MP -MF $(DEPDIR)/connect_tls_psk-connect-tls.Tpo -c -o connect_tls_psk-connect-tls.o `test -f 'connect-tls.c' || echo '$(srcdir)/'`connect-tls.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_tls_psk-connect-tls.Tpo $(DEPDIR)/connect_tls_psk-connect-tls.Po
@@ -3249,6 +3297,20 @@ connect_tls_psk-connect-tls.obj: connect
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_psk-connect-tls.obj `if test -f 'connect-tls.c'; then $(CYGPATH_W) 'connect-tls.c'; else $(CYGPATH_W) '$(srcdir)/connect-tls.c'; fi`
 
+connect_tls_psk-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_tls_psk-requires.o -MD -MP -MF $(DEPDIR)/connect_tls_psk-requires.Tpo -c -o connect_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_tls_psk-requires.Tpo $(DEPDIR)/connect_tls_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_tls_psk-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_tls_psk-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_tls_psk-requires.obj -MD -MP -MF $(DEPDIR)/connect_tls_psk-requires.Tpo -c -o connect_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_tls_psk-requires.Tpo $(DEPDIR)/connect_tls_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_tls_psk-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbd-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -MT connect_uri_nbd-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbd-connect-uri.Tpo -c -o connect_uri_nbd-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd-connect-uri.Tpo $(DEPDIR)/connect_uri_nbd-connect-uri.Po
@@ -3263,6 +3325,20 @@ connect_uri_nbd-connect-uri.obj: connect
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbd-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -MT connect_uri_nbd-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbd-requires.Tpo -c -o connect_uri_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd-requires.Tpo $(DEPDIR)/connect_uri_nbd-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbd-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbd-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -MT connect_uri_nbd-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbd-requires.Tpo -c -o connect_uri_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd-requires.Tpo $(DEPDIR)/connect_uri_nbd-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbd-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_CPPFLAGS) $(CPPFLAGS) $(connect_uri_nbd_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbd_unix-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbd_unix-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbd_unix-connect-uri.Tpo -c -o connect_uri_nbd_unix-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd_unix-connect-uri.Tpo $(DEPDIR)/connect_uri_nbd_unix-connect-uri.Po
@@ -3277,6 +3353,20 @@ connect_uri_nbd_unix-connect-uri.obj: co
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd_unix-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbd_unix-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbd_unix-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbd_unix-requires.Tpo -c -o connect_uri_nbd_unix-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd_unix-requires.Tpo $(DEPDIR)/connect_uri_nbd_unix-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbd_unix-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd_unix-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbd_unix-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbd_unix-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbd_unix-requires.Tpo -c -o connect_uri_nbd_unix-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbd_unix-requires.Tpo $(DEPDIR)/connect_uri_nbd_unix-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbd_unix-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbd_unix_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbd_unix-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbds_certs-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_certs-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_certs-connect-uri.Tpo -c -o connect_uri_nbds_certs-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_certs-connect-uri.Tpo $(DEPDIR)/connect_uri_nbds_certs-connect-uri.Po
@@ -3291,6 +3381,20 @@ connect_uri_nbds_certs-connect-uri.obj:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_certs-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbds_certs-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_certs-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_certs-requires.Tpo -c -o connect_uri_nbds_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_certs-requires.Tpo $(DEPDIR)/connect_uri_nbds_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_certs-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbds_certs-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_certs-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbds_certs-requires.Tpo -c -o connect_uri_nbds_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_certs-requires.Tpo $(DEPDIR)/connect_uri_nbds_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_certs-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbds_psk-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_psk-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_psk-connect-uri.Tpo -c -o connect_uri_nbds_psk-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_psk-connect-uri.Tpo $(DEPDIR)/connect_uri_nbds_psk-connect-uri.Po
@@ -3305,6 +3409,20 @@ connect_uri_nbds_psk-connect-uri.obj: co
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_psk-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbds_psk-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_psk-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_psk-requires.Tpo -c -o connect_uri_nbds_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_psk-requires.Tpo $(DEPDIR)/connect_uri_nbds_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_psk-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbds_psk-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_psk-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbds_psk-requires.Tpo -c -o connect_uri_nbds_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_psk-requires.Tpo $(DEPDIR)/connect_uri_nbds_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_psk-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbds_unix_certs-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_certs-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Tpo -c -o connect_uri_nbds_unix_certs-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Tpo $(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Po
@@ -3319,6 +3437,20 @@ connect_uri_nbds_unix_certs-connect-uri.
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_certs-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbds_unix_certs-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_certs-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Tpo -c -o connect_uri_nbds_unix_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Tpo $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_unix_certs-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbds_unix_certs-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_certs-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Tpo -c -o connect_uri_nbds_unix_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Tpo $(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_unix_certs-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 connect_uri_nbds_unix_psk-connect-uri.o: connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_psk-connect-uri.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Tpo -c -o connect_uri_nbds_unix_psk-connect-uri.o `test -f 'connect-uri.c' || echo '$(srcdir)/'`connect-uri.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Tpo $(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Po
@@ -3333,6 +3465,20 @@ connect_uri_nbds_unix_psk-connect-uri.ob
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_psk-connect-uri.obj `if test -f 'connect-uri.c'; then $(CYGPATH_W) 'connect-uri.c'; else $(CYGPATH_W) '$(srcdir)/connect-uri.c'; fi`
 
+connect_uri_nbds_unix_psk-requires.o: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_psk-requires.o -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Tpo -c -o connect_uri_nbds_unix_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Tpo $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_unix_psk-requires.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
+
+connect_uri_nbds_unix_psk-requires.obj: requires.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connect_uri_nbds_unix_psk-requires.obj -MD -MP -MF $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Tpo -c -o connect_uri_nbds_unix_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Tpo $(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='requires.c' object='connect_uri_nbds_unix_psk-requires.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connect_uri_nbds_unix_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connect_uri_nbds_unix_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
+
 dlopen-dlopen.o: dlopen.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dlopen_CPPFLAGS) $(CPPFLAGS) $(dlopen_CFLAGS) $(CFLAGS) -MT dlopen-dlopen.o -MD -MP -MF $(DEPDIR)/dlopen-dlopen.Tpo -c -o dlopen-dlopen.o `test -f 'dlopen.c' || echo '$(srcdir)/'`dlopen.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/dlopen-dlopen.Tpo $(DEPDIR)/dlopen-dlopen.Po
@@ -4418,13 +4564,21 @@ distclean: distclean-am
 	-rm -f ./$(DEPDIR)/connect-tcp6.Po
 	-rm -f ./$(DEPDIR)/connect-unix.Po
 	-rm -f ./$(DEPDIR)/connect_tls_certs-connect-tls.Po
+	-rm -f ./$(DEPDIR)/connect_tls_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_tls_psk-connect-tls.Po
+	-rm -f ./$(DEPDIR)/connect_tls_psk-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbd-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbd-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbd_unix-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbd_unix-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_certs-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_psk-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_psk-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po
 	-rm -f ./$(DEPDIR)/debug-environment.Po
 	-rm -f ./$(DEPDIR)/debug.Po
 	-rm -f ./$(DEPDIR)/dlopen-dlopen.Po
@@ -4568,13 +4722,21 @@ maintainer-clean: maintainer-clean-am
 	-rm -f ./$(DEPDIR)/connect-tcp6.Po
 	-rm -f ./$(DEPDIR)/connect-unix.Po
 	-rm -f ./$(DEPDIR)/connect_tls_certs-connect-tls.Po
+	-rm -f ./$(DEPDIR)/connect_tls_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_tls_psk-connect-tls.Po
+	-rm -f ./$(DEPDIR)/connect_tls_psk-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbd-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbd-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbd_unix-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbd_unix-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_certs-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_psk-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_psk-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_certs-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_certs-requires.Po
 	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_psk-connect-uri.Po
+	-rm -f ./$(DEPDIR)/connect_uri_nbds_unix_psk-requires.Po
 	-rm -f ./$(DEPDIR)/debug-environment.Po
 	-rm -f ./$(DEPDIR)/debug.Po
 	-rm -f ./$(DEPDIR)/dlopen-dlopen.Po
diff -pruN 1.12.6-1/tests/requires.c 1.12.7-1/tests/requires.c
--- 1.12.6-1/tests/requires.c	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/tests/requires.c	2022-08-01 15:02:43.000000000 +0000
@@ -62,6 +62,21 @@ requires_qemu_nbd_tls_support (const cha
   requires (cmd);
 }
 
+/* Check qemu-nbd supports PSK (version 3.0.0 and above). */
+void
+requires_qemu_nbd_tls_psk_support (const char *qemu_nbd)
+{
+  char cmd[256];
+
+  /* Note the qemu-nbd command will fail in some way.  We're only
+   * interested in the error message that it prints.
+   */
+  snprintf (cmd, sizeof cmd,
+            "if %s --object tls-creds-psk,id=tls0 / |& grep -sq 'invalid object type'; then exit 1; else exit 0; fi",
+            qemu_nbd);
+  requires (cmd);
+}
+
 /* On some distros, nbd-server is built without support for syslog
  * which prevents use of inetd mode.  Instead nbd-server will exit with
  * this error:
diff -pruN 1.12.6-1/tests/requires.h 1.12.7-1/tests/requires.h
--- 1.12.6-1/tests/requires.h	2022-02-07 16:28:37.000000000 +0000
+++ 1.12.7-1/tests/requires.h	2022-08-01 15:02:43.000000000 +0000
@@ -24,6 +24,7 @@ extern void requires_not (const char *cm
 
 /* Some specific tests using the requires() mechanism. */
 extern void requires_qemu_nbd_tls_support (const char *qemu_nbd);
+extern void requires_qemu_nbd_tls_psk_support (const char *qemu_nbd);
 extern void requires_nbd_server_supports_inetd (const char *nbd_server);
 
 #endif /* LIBNBD_REQUIRES */
diff -pruN 1.12.6-1/tests/synch-parallel-tls.sh 1.12.7-1/tests/synch-parallel-tls.sh
--- 1.12.6-1/tests/synch-parallel-tls.sh	2021-03-06 10:02:43.000000000 +0000
+++ 1.12.7-1/tests/synch-parallel-tls.sh	2022-08-01 15:02:36.000000000 +0000
@@ -18,6 +18,13 @@
 
 # Test synchronous parallel high level API requests.
 
+. ../tests/functions.sh
+
+set -e
+set -x
+
+requires nbdkit --tls-verify-peer -U - null --run 'exit 0'
+
 nbdkit -U - --tls=require --tls-verify-peer --tls-psk=keys.psk \
        --filter=cow \
        pattern size=8M \
diff -pruN 1.12.6-1/valgrind/Makefile.am 1.12.7-1/valgrind/Makefile.am
--- 1.12.6-1/valgrind/Makefile.am	2021-03-06 10:02:43.000000000 +0000
+++ 1.12.7-1/valgrind/Makefile.am	2022-08-01 15:03:04.000000000 +0000
@@ -25,7 +25,7 @@ noinst_DATA = suppressions
 
 suppressions: $(suppressions_files)
 	rm -f $@ $@-t
-	cat $^ > $@-t
+	cat $(suppressions_files) > $@-t
 	mv $@-t $@
 	chmod 0444 $@
 
diff -pruN 1.12.6-1/valgrind/Makefile.in 1.12.7-1/valgrind/Makefile.in
--- 1.12.6-1/valgrind/Makefile.in	2022-07-27 12:47:40.000000000 +0000
+++ 1.12.7-1/valgrind/Makefile.in	2022-08-01 15:04:32.000000000 +0000
@@ -602,7 +602,7 @@ $(top_builddir)/podwrapper.pl: $(top_src
 
 suppressions: $(suppressions_files)
 	rm -f $@ $@-t
-	cat $^ > $@-t
+	cat $(suppressions_files) > $@-t
 	mv $@-t $@
 	chmod 0444 $@
 
