diff --git a/kronosnet.spec.in b/kronosnet.spec.in
index 706dcdfb..eb653331 100644
--- a/kronosnet.spec.in
+++ b/kronosnet.spec.in
@@ -1,458 +1,461 @@
 ###############################################################################
 ###############################################################################
 ##
 ##  Copyright (C) 2012-2022 Red Hat, Inc.  All rights reserved.
 ##
 ##  This copyrighted material is made available to anyone wishing to use,
 ##  modify, copy, or redistribute it subject to the terms and conditions
 ##  of the GNU General Public License v.2 or higher
 ##
 ###############################################################################
 ###############################################################################
 
 # keep around ready for later user
 %global alphatag @alphatag@
 %global numcomm @numcomm@
 %global dirty @dirty@
 
 # set defaults from ./configure invokation
 %@sctp@ sctp
 %@nss@ nss
 %@openssl@ openssl
 %@zlib@ zlib
 %@lz4@ lz4
 %@lzo2@ lzo2
 %@lzma@ lzma
 %@bzip2@ bzip2
 %@zstd@ zstd
 %@libnozzle@ libnozzle
 %@runautogen@ runautogen
 %@rpmdebuginfo@ rpmdebuginfo
 %@overriderpmdebuginfo@ overriderpmdebuginfo
 %@buildman@ buildman
 %@installtests@ installtests
 
 %if %{with overriderpmdebuginfo}
 %undefine _enable_debug_packages
 %endif
 
 # main (empty) package
 # http://www.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
 
 Name: kronosnet
 Summary: Multipoint-to-Multipoint VPN daemon
 Version: @version@
 Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
 License: GPLv2+ and LGPLv2+
 URL: https://kronosnet.org
 Source0: https://kronosnet.org/releases/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz
 
 # Build dependencies
 BuildRequires: gcc libqb-devel make
 # required to build man pages
 %if %{with buildman}
 BuildRequires: libxml2-devel doxygen
 %endif
 %if %{with sctp}
 BuildRequires: lksctp-tools-devel
 %endif
 %if %{with nss}
 %if 0%{?suse_version}
 BuildRequires: mozilla-nss-devel
 %else
 BuildRequires: nss-devel
 %endif
 %endif
 %if %{with openssl}
 %if 0%{?suse_version}
 BuildRequires: libopenssl-devel
 %else
 BuildRequires: openssl-devel
 %endif
 %endif
 %if %{with zlib}
 BuildRequires: zlib-devel
 %endif
 %if %{with lz4}
 %if 0%{?suse_version}
 BuildRequires: liblz4-devel
 %else
 BuildRequires: lz4-devel
 %endif
 %endif
 %if %{with lzo2}
 BuildRequires: lzo-devel
 %endif
 %if %{with lzma}
 BuildRequires: xz-devel
 %endif
 %if %{with bzip2}
 %if 0%{?suse_version}
 BuildRequires: libbz2-devel
 %else
 BuildRequires: bzip2-devel
 %endif
 %endif
 %if %{with zstd}
 BuildRequires: libzstd-devel
 %endif
 %if %{with libnozzle}
 BuildRequires: libnl3-devel
 %endif
 %if %{with runautogen}
 BuildRequires: autoconf automake libtool
 %endif
 
 %prep
 %setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
 
 %build
 %if %{with runautogen}
 ./autogen.sh
 %endif
 
 %{configure} \
 %if %{with installtests}
 	--enable-install-tests \
 %else
 	--disable-install-tests \
 %endif
 %if %{with buildman}
 	--enable-man \
 %else
 	--disable-man \
 %endif
 %if %{with sctp}
 	--enable-libknet-sctp \
 %else
 	--disable-libknet-sctp \
 %endif
 %if %{with nss}
 	--enable-crypto-nss \
 %else
 	--disable-crypto-nss \
 %endif
 %if %{with openssl}
 	--enable-crypto-openssl \
 %else
 	--disable-crypto-openssl \
 %endif
 %if %{with zlib}
 	--enable-compress-zlib \
 %else
 	--disable-compress-zlib \
 %endif
 %if %{with lz4}
 	--enable-compress-lz4 \
 %else
 	--disable-compress-lz4 \
 %endif
 %if %{with lzo2}
 	--enable-compress-lzo2 \
 %else
 	--disable-compress-lzo2 \
 %endif
 %if %{with lzma}
 	--enable-compress-lzma \
 %else
 	--disable-compress-lzma \
 %endif
 %if %{with bzip2}
 	--enable-compress-bzip2 \
 %else
 	--disable-compress-bzip2 \
 %endif
 %if %{with zstd}
 	--enable-compress-zstd \
 %else
 	--disable-compress-zstd \
 %endif
 %if %{with libnozzle}
 	--enable-libnozzle
 %else
 	--disable-libnozzle
 %endif
 
 make %{_smp_mflags}
 
 %install
 rm -rf %{buildroot}
 make install DESTDIR=%{buildroot}
 
 # tree cleanup
 # remove static libraries
 find %{buildroot} -name "*.a" -exec rm {} \;
 # remove libtools leftovers
 find %{buildroot} -name "*.la" -exec rm {} \;
 
 # remove init scripts
 rm -rf %{buildroot}/etc/init.d
 
 # remove docs
 rm -rf %{buildroot}/usr/share/doc/kronosnet
 
 # main empty package
 %description
  The kronosnet source
 
 %if %{with libnozzle}
 %package -n libnozzle1
 Summary: Simple userland wrapper around kernel tap devices
 License: LGPLv2+
 
 %description -n libnozzle1
  This is an over-engineered commodity library to manage a pool
  of tap devices and provides the basic
  pre-up.d/up.d/down.d/post-down.d infrastructure.
 
 %files -n libnozzle1
 %license COPYING.* COPYRIGHT
 %{_libdir}/libnozzle.so.*
 
 %if 0%{?ldconfig_scriptlets}
 %ldconfig_scriptlets -n libnozzle1
 %else
 %post -n libnozzle1 -p /sbin/ldconfig
 %postun -n libnozzle1 -p /sbin/ldconfig
 %endif
 
 %package -n libnozzle1-devel
 Summary: Simple userland wrapper around kernel tap devices (developer files)
 License: LGPLv2+
 Requires: libnozzle1%{_isa} = %{version}-%{release}
 Requires: pkgconfig
 
 %description -n libnozzle1-devel
  This is an over-engineered commodity library to manage a pool
  of tap devices and provides the basic
  pre-up.d/up.d/down.d/post-down.d infrastructure.
 
 %files -n libnozzle1-devel
 %license COPYING.* COPYRIGHT
 %{_libdir}/libnozzle.so
 %{_includedir}/libnozzle.h
 %{_libdir}/pkgconfig/libnozzle.pc
 %if %{with buildman}
 %{_mandir}/man3/nozzle*.3.gz
 %endif
 %endif
 
 %package -n libknet1
 Summary: Kronosnet core switching implementation
 License: LGPLv2+
 
 %description -n libknet1
  The whole kronosnet core is implemented in this library.
  Please refer to the not-yet-existing documentation for further
  information.
 
 %files -n libknet1
 %license COPYING.* COPYRIGHT
 %{_libdir}/libknet.so.*
 %dir %{_libdir}/kronosnet
 
 %if 0%{?ldconfig_scriptlets}
 %ldconfig_scriptlets -n libknet1
 %else
 %post -n libknet1 -p /sbin/ldconfig
 %postun -n libknet1 -p /sbin/ldconfig
 %endif
 
 %package -n libknet1-devel
 Summary: Kronosnet core switching implementation (developer files)
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 Requires: pkgconfig
 
 %description -n libknet1-devel
  The whole kronosnet core is implemented in this library.
  Please refer to the not-yet-existing documentation for further
  information. 
 
 %files -n libknet1-devel
 %license COPYING.* COPYRIGHT
 %{_libdir}/libknet.so
 %{_includedir}/libknet.h
 %{_libdir}/pkgconfig/libknet.pc
 %if %{with buildman}
 %{_mandir}/man3/knet*.3.gz
 %endif
 
 %if %{with nss}
 %package -n libknet1-crypto-nss-plugin
 Summary: Provides libknet1 nss support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-crypto-nss-plugin
  Provides NSS crypto support for libknet1.
 
 %files -n libknet1-crypto-nss-plugin
 %{_libdir}/kronosnet/crypto_nss.so
 %endif
 
 %if %{with openssl}
 %package -n libknet1-crypto-openssl-plugin
 Summary: Provides libknet1 openssl support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-crypto-openssl-plugin
  Provides OpenSSL crypto support for libknet1.
 
 %files -n libknet1-crypto-openssl-plugin
 %{_libdir}/kronosnet/crypto_openssl.so
 %endif
 
 %if %{with zlib}
 %package -n libknet1-compress-zlib-plugin
 Summary: Provides libknet1 zlib support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-zlib-plugin
  Provides zlib compression support for libknet1.
 
 %files -n libknet1-compress-zlib-plugin
 %{_libdir}/kronosnet/compress_zlib.so
 %endif
 
 %if %{with lz4}
 %package -n libknet1-compress-lz4-plugin
 Summary: Provides libknet1 lz4 and lz4hc support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-lz4-plugin
  Provides lz4 and lz4hc compression support for libknet1.
 
 %files -n libknet1-compress-lz4-plugin
 %{_libdir}/kronosnet/compress_lz4.so
 %{_libdir}/kronosnet/compress_lz4hc.so
 %endif
 
 %if %{with lzo2}
 %package -n libknet1-compress-lzo2-plugin
 Summary: Provides libknet1 lzo2 support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-lzo2-plugin
  Provides lzo2 compression support for libknet1.
 
 %files -n libknet1-compress-lzo2-plugin
 %{_libdir}/kronosnet/compress_lzo2.so
 %endif
 
 %if %{with lzma}
 %package -n libknet1-compress-lzma-plugin
 Summary: Provides libknet1 lzma support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-lzma-plugin
  Provides lzma compression support for libknet1.
 
 %files -n libknet1-compress-lzma-plugin
 %{_libdir}/kronosnet/compress_lzma.so
 %endif
 
 %if %{with bzip2}
 %package -n libknet1-compress-bzip2-plugin
 Summary: Provides libknet1 bzip2 support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-bzip2-plugin
  Provides bzip2 compression support for libknet1.
 
 %files -n libknet1-compress-bzip2-plugin
 %{_libdir}/kronosnet/compress_bzip2.so
 %endif
 
 %if %{with zstd}
 %package -n libknet1-compress-zstd-plugin
 Summary: Provides libknet1 zstd support
 License: LGPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
 
 %description -n libknet1-compress-zstd-plugin
  Provides zstd compression support for libknet1.
 
 %files -n libknet1-compress-zstd-plugin
 %{_libdir}/kronosnet/compress_zstd.so
 %endif
 
 %package -n libknet1-crypto-plugins-all
 Summary: Provides libknet1 crypto plugins meta package
 License: LGPLv2+
 %if %{with nss}
 Requires: libknet1-crypto-nss-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with openssl}
 Requires: libknet1-crypto-openssl-plugin%{_isa} = %{version}-%{release}
 %endif
 
 %description -n libknet1-crypto-plugins-all
  Provides meta package to install all of libknet1 crypto plugins
 
 %files -n libknet1-crypto-plugins-all
 
 %package -n libknet1-compress-plugins-all
 Summary: Provides libknet1 compress plugins meta package
 License: LGPLv2+
 %if %{with zlib}
 Requires: libknet1-compress-zlib-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with lz4}
 Requires: libknet1-compress-lz4-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with lzo2}
 Requires: libknet1-compress-lzo2-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with lzma}
 Requires: libknet1-compress-lzma-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with bzip2}
 Requires: libknet1-compress-bzip2-plugin%{_isa} = %{version}-%{release}
 %endif
 %if %{with zstd}
 Requires: libknet1-compress-zstd-plugin%{_isa} = %{version}-%{release}
 %endif
 
 %description -n libknet1-compress-plugins-all
  Meta package to install all of libknet1 compress plugins
 
 %files -n libknet1-compress-plugins-all
 
 %package -n libknet1-plugins-all
 Summary: Provides libknet1 plugins meta package
 License: LGPLv2+
 Requires: libknet1-compress-plugins-all%{_isa} = %{version}-%{release}
 Requires: libknet1-crypto-plugins-all%{_isa} = %{version}-%{release}
 
 %description -n libknet1-plugins-all
  Meta package to install all of libknet1 plugins
 
 %files -n libknet1-plugins-all
 
 %if %{with installtests}
 %package -n kronosnet-tests
 Summary: Provides kronosnet test suite
 License: GPLv2+
 Requires: libknet1%{_isa} = %{version}-%{release}
+%if %{with libnozzle}
+Requires: libnozzle1%{_isa} = %{version}-%{release}
+%endif
 
 %description -n kronosnet-tests
  This package contains all the libknet and libnozzle test suite.
 
 %files -n kronosnet-tests
 %{_libdir}/kronosnet/tests/*
 %endif
 
 %if %{with rpmdebuginfo}
 %debug_package
 %endif
 
 %changelog
 * @date@ Autotools generated version <nobody@nowhere.org> - @version@-1-@numcomm@.@alphatag@.@dirty@
 - These aren't the droids you're looking for.
diff --git a/libknet/tests/api_knet_handle_new.c b/libknet/tests/api_knet_handle_new.c
index 6a74d4c5..7342dcda 100644
--- a/libknet/tests/api_knet_handle_new.c
+++ b/libknet/tests/api_knet_handle_new.c
@@ -1,124 +1,124 @@
 /*
  * Copyright (C) 2016-2022 Red Hat, Inc.  All rights reserved.
  *
  * Authors: Fabio M. Di Nitto <fabbione@kronosnet.org>
  *
  * This software licensed under GPL-2.0+
  */
 
 #include "config.h"
 
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 
 #include "libknet.h"
 #include "internals.h"
 
 #include "test-common.h"
 
 static void test(void)
 {
 	knet_handle_t knet_h1, knet_h[2];
 	struct rlimit cur;
 	int logfds[2];
 
 	printf("Test knet_handle_new hostid 1, no logging\n");
 
 	knet_h1 = knet_handle_new_ex(1, 0, 0, 0);
 	if (!knet_h1) {
 		printf("Unable to init knet_handle! err: %s\n", strerror(errno));
 		exit(FAIL);
 	}
 
 	if (knet_handle_free(knet_h1) != 0) {
 		printf("Unable to free knet_handle\n");
 		exit(FAIL);
 	}
 
 	printf("Test knet_handle_new hostid -1, no logging\n");
 
 	knet_h1 = knet_handle_new_ex(-1, 0, 0, 0);
 	if (!knet_h1) {
 		printf("Unable to init knet_handle! err: %s\n", strerror(errno));
 		exit(FAIL);
 	}
 
 	/*
 	 * -1 == knet_node_id_t 65535
 	 */
 
 	if (knet_h1->host_id != 65535) {
 		printf("host_id size might have changed!\n");
 		knet_handle_free(knet_h1);
 		exit(FAIL);
 	}
 
 	if (knet_handle_free(knet_h1) != 0) {
 		printf("Unable to free knet_handle\n");
 		exit(FAIL);
 	}
 
 	if (getrlimit(RLIMIT_NOFILE, &cur) < 0) {
 		printf("Unable to get current fd limit: %s\n", strerror(errno));
 		exit(SKIP);
 	}
 
 	/*
 	 * passing a bad fd and it should fail
 	 */
 	printf("Test knet_handle_new hostid 1, incorrect log_fd (-1)\n");
 
 	knet_h1 = knet_handle_new(1, -1, 0);
 
 	if ((!knet_h1) && (errno != EINVAL)) {
 		printf("knet_handle_new returned incorrect errno on incorrect log_fd\n");
 		exit(FAIL);
 	}
 
 	if (knet_h1) {
 		printf("knet_handle_new accepted an incorrect (-1) log_fd\n");
 		knet_handle_free(knet_h1);
 		exit(FAIL);
 	}
 
 	/*
 	 * passing a bad fd and it should fail
 	 */
 	printf("Test knet_handle_new hostid 1, incorrect log_fd (max_fd + 1)\n");
 
 	knet_h1 = knet_handle_new(1, (int) cur.rlim_max, 0);
 
 	if ((knet_h1) || (errno != EINVAL)) {
 		printf("knet_handle_new accepted an incorrect (max_fd + 1) log_fd or returned incorrect errno on incorrect log_fd: %s\n", strerror(errno));
 		knet_handle_free(knet_h1);
 		exit(FAIL);
 	}
 
 	setup_logpipes(logfds);
 
 	printf("Test knet_handle_new hostid 1, proper log_fd, invalid log level (DEBUG + 1)\n");
 
 	knet_h1 = knet_handle_new(1, logfds[1], KNET_LOG_DEBUG + 1);
 	if ((knet_h1) || (errno != EINVAL)) {
 		printf("knet_handle_new accepted an incorrect log level or returned incorrect errno on incorrect log level: %s\n", strerror(errno));
 		knet_h[1] = knet_h1;
 		CLEAN_EXIT(FAIL);
 	}
 
 	printf("Test knet_handle_new hostid 1, proper log_fd, proper log level (DEBUG)\n");
 
-	knet_h1 = knet_handle_start(logfds, KNET_LOG_DEBUG, knet_h);
+	(void)knet_handle_start(logfds, KNET_LOG_DEBUG, knet_h);
 	CLEAN_EXIT(CONTINUE);
 }
 
 int main(int argc, char *argv[])
 {
 	test();
 
 	return PASS;
 }