Hello community,

here is the log from the commit of package radvd for openSUSE:Factory checked 
in at 2019-08-19 20:47:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/radvd (Old)
 and      /work/SRC/openSUSE:Factory/.radvd.new.22127 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "radvd"

Mon Aug 19 20:47:59 2019 rev:33 rq:724121 version:2.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/radvd/radvd.changes      2017-11-29 
10:49:45.322972662 +0100
+++ /work/SRC/openSUSE:Factory/.radvd.new.22127/radvd.changes   2019-08-19 
20:48:01.417090304 +0200
@@ -1,0 +2,21 @@
+Thu Aug 15 11:42:43 UTC 2019 - Ludwig Nussel <[email protected]>
+
+- new version 2.18:
+  * Fix double-free scenario in case if duplicate interface was specified
+  * Separate systemd and SysV packaging
+  * Update fedora packaging files
+  * No router advertisements on tunnel interfaces
+  * Add nodaemon option to the manpage
+  * Write to stderr in non-daemonized mode
+  * Fixes memory leak in add_ra_options_dnssl
+  * Allow quoted strings in config.
+  * nd_opt_6co endianness fix
+- new keyid 0x6FE19F21451C9A2B used for signing. Upstream confirmed
+  that he changed computers and changed his key.
+- do not strictly require systemd
+- use upstream service file
+- use system user framework to create user. Leads to using a dedicated radvd
+  group after all (boo#1060032)
+- rename patch radvd-tmpfile-grpname.patch -> radvd-systemd.patch
+
+-------------------------------------------------------------------

Old:
----
  radvd-2.17.tar.xz
  radvd-2.17.tar.xz.asc
  radvd-tmpfile-grpname.patch
  radvd.service

New:
----
  radvd-2.18.tar.xz
  radvd-2.18.tar.xz.asc
  radvd-systemd.patch
  system-user-radvd.conf

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

Other differences:
------------------
++++++ radvd.spec ++++++
--- /var/tmp/diff_new_pack.uqHdeL/_old  2019-08-19 20:48:03.641089828 +0200
+++ /var/tmp/diff_new_pack.uqHdeL/_new  2019-08-19 20:48:03.673089821 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package radvd
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -26,7 +26,7 @@
 %endif
 
 Name:           radvd
-Version:        2.17
+Version:        2.18
 Release:        0
 Summary:        Router ADVertisement Daemon for IPv6
 License:        BSD-3-Clause
@@ -34,19 +34,20 @@
 Url:            http://v6web.litech.org/radvd
 Source0:        http://www.litech.org/radvd/dist/%{name}-%{version}.tar.xz
 Source2:        sysconfig.radvd
-Source3:        radvd.service
+Source3:        system-user-radvd.conf
 Source42:       http://www.litech.org/radvd/dist/%{name}-%{version}.tar.xz.asc
 Source43:       %{name}.keyring
 Patch1:         0001-run-as-user-radvd-by-default.diff
 Patch2:         radvd-configure.patch
 # PATCH-FIX-OPENSUSE radvd-tmpfile-grpname.patch [email protected] -- On 
openSUSE, we add the radvd user to the group daemon. Thus, we also need to 
create the folders with the respective group owner (otherwise, the 
systemd-tmpfiles service fails).
-Patch3:         radvd-tmpfile-grpname.patch
+Patch3:         radvd-systemd.patch
 BuildRequires:  automake
 BuildRequires:  bison
 BuildRequires:  flex
 BuildRequires:  libdaemon-devel
 BuildRequires:  pkgconfig
 BuildRequires:  systemd-rpm-macros
+BuildRequires:  sysuser-tools
 BuildRequires:  xz
 BuildRequires:  pkgconfig(check)
 Requires(pre):  %fillup_prereq
@@ -55,7 +56,6 @@
 Requires(pre):  group(daemon)
 %endif
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-%{?systemd_requires}
 
 %description
 RADVD is the Router ADVertisement Daemon. It sends IPv6 RA packets
@@ -63,10 +63,7 @@
 configuration of IPv6 clients.
 
 %prep
-%setup -q
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+%autosetup -p1
 
 %build
 autoreconf -fiv
@@ -75,6 +72,8 @@
        --with-configfile=%{_sysconfdir}/radvd.conf \
        --with-pidfile=%{_rundir}/radvd/radvd.pid
 make %{?_smp_mflags}
+#
+%sysusers_generate_pre %{SOURCE3} radvd
 
 %install
 make DESTDIR=%{buildroot} install %{?_smp_mflags}
@@ -84,12 +83,13 @@
 install -m 644 %{SOURCE2} %{buildroot}%{_fillupdir}/
 install -m 644 /dev/null %{buildroot}%{_sysconfdir}/radvd.conf
 
-install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
-install -D -m 0644 redhat/radvd-tmpfs.conf 
%{buildroot}%{_libexecdir}/tmpfiles.d/%name.conf
+install -D -m 644 %{SOURCE3} %{buildroot}%{_sysusersdir}/system-user-radvd.conf
+
+install -D -m 0644 redhat/systemd/radvd.service 
%{buildroot}%{_unitdir}/%{name}.service
+install -D -m 0644 redhat/systemd/radvd-tmpfs.conf 
%{buildroot}%{_libexecdir}/tmpfiles.d/%name.conf
 ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcradvd
 
-%pre
-getent passwd %{name} >/dev/null || useradd -r -d %{_localstatedir}/lib/empty 
-s /sbin/nologin -c "Router ADVertisement Daemon for" %{name}
+%pre -f radvd.pre
 %service_add_pre %{name}.service
 
 %post
@@ -152,5 +152,6 @@
 %{_unitdir}/%{name}.service
 %dir %{_libexecdir}/tmpfiles.d
 %{_libexecdir}/tmpfiles.d/%{name}.conf
+%{_sysusersdir}/system-user-radvd.conf
 
 %changelog

++++++ radvd-2.17.tar.xz -> radvd-2.18.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/CHANGES new/radvd-2.18/CHANGES
--- old/radvd-2.17/CHANGES      2017-07-04 05:30:02.000000000 +0200
+++ new/radvd-2.18/CHANGES      2019-02-26 05:34:57.000000000 +0100
@@ -1,3 +1,20 @@
+2019/02/25     Release v2.18
+
+2019/02/15     Add TravisCI config
+               Fix double-free scenario in case if duplicate interface was 
specified (Fixes #100).
+               Separate systemd and SysV packaging
+               Update fedora packaging files
+               No router advertisements on tunnel interfaces
+               Add nodaemon option to the manpage
+               Write to stderr in non-daemonized mode
+               Fixes memory leak in add_ra_options_dnssl
+               Check forwarding on interface
+               Added contrib/95-radvd-gen.
+               Allow quoted strings in config.
+               nd_opt_6co: use uint8_t as a bitfield to be endianness-agnostic
+
+2017/12/18     Allow quoted strings in config.
+
 2017/07/03     Release v2.17
 
 2017/07/01     Fix STDERR_SYSLOG log level bug.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/Makefile.am new/radvd-2.18/Makefile.am
--- old/radvd-2.17/Makefile.am  2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/Makefile.am  2019-02-16 07:08:33.000000000 +0100
@@ -152,11 +152,14 @@
        radvd.conf.example \
        radvd.service.in \
        radvdump.8.man \
-       redhat/radvd-tmpfs.conf \
-       redhat/radvd.conf.empty \
-       redhat/radvd.init \
-       redhat/radvd.spec \
-       redhat/radvd.sysconfig \
+       redhat/SysV/radvd-tmpfs.conf \
+       redhat/SysV/radvd.conf.empty \
+       redhat/SysV/radvd.init \
+       redhat/SysV/radvd.spec \
+       redhat/SysV/radvd.sysconfig \
+       redhat/systemd/radvd-tmpfs.conf \
+       redhat/systemd/radvd.service \
+       redhat/systemd/radvd.spec \
        test/check.c \
        test/print_safe_buffer.c \
        test/print_safe_buffer.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/Makefile.in new/radvd-2.18/Makefile.in
--- old/radvd-2.17/Makefile.in  2017-07-04 05:30:28.000000000 +0200
+++ new/radvd-2.18/Makefile.in  2019-02-26 05:36:38.000000000 +0100
@@ -122,7 +122,8 @@
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = radvd.service redhat/radvd.spec
+CONFIG_CLEAN_FILES = radvd.service redhat/systemd/radvd.spec \
+       redhat/SysV/radvd.spec
 CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
 AR = ar
@@ -446,9 +447,11 @@
 TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
        $(TEST_LOG_FLAGS)
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-       $(srcdir)/radvd.service.in $(top_srcdir)/redhat/radvd.spec.in \
-       README TODO compile config.guess config.sub depcomp gram.c \
-       gram.h install-sh missing scanner.c test-driver ylwrap
+       $(srcdir)/radvd.service.in \
+       $(top_srcdir)/redhat/SysV/radvd.spec.in \
+       $(top_srcdir)/redhat/systemd/radvd.spec.in README TODO compile \
+       config.guess config.sub depcomp gram.c gram.h install-sh \
+       missing scanner.c test-driver ylwrap
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -688,11 +691,14 @@
        radvd.conf.example \
        radvd.service.in \
        radvdump.8.man \
-       redhat/radvd-tmpfs.conf \
-       redhat/radvd.conf.empty \
-       redhat/radvd.init \
-       redhat/radvd.spec \
-       redhat/radvd.sysconfig \
+       redhat/SysV/radvd-tmpfs.conf \
+       redhat/SysV/radvd.conf.empty \
+       redhat/SysV/radvd.init \
+       redhat/SysV/radvd.spec \
+       redhat/SysV/radvd.sysconfig \
+       redhat/systemd/radvd-tmpfs.conf \
+       redhat/systemd/radvd.service \
+       redhat/systemd/radvd.spec \
        test/check.c \
        test/print_safe_buffer.c \
        test/print_safe_buffer.h \
@@ -806,7 +812,9 @@
        -rm -f config.h stamp-h1
 radvd.service: $(top_builddir)/config.status $(srcdir)/radvd.service.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
-redhat/radvd.spec: $(top_builddir)/config.status 
$(top_srcdir)/redhat/radvd.spec.in
+redhat/systemd/radvd.spec: $(top_builddir)/config.status 
$(top_srcdir)/redhat/systemd/radvd.spec.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
+redhat/SysV/radvd.spec: $(top_builddir)/config.status 
$(top_srcdir)/redhat/SysV/radvd.spec.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
 
 clean-noinstLIBRARIES:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/configure new/radvd-2.18/configure
--- old/radvd-2.17/configure    2017-07-04 05:30:27.000000000 +0200
+++ new/radvd-2.18/configure    2019-02-26 05:36:37.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for radvd 2.17.
+# Generated by GNU Autoconf 2.69 for radvd 2.18.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='radvd'
 PACKAGE_TARNAME='radvd'
-PACKAGE_VERSION='2.17'
-PACKAGE_STRING='radvd 2.17'
+PACKAGE_VERSION='2.18'
+PACKAGE_STRING='radvd 2.18'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1324,7 +1324,7 @@
   # 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 radvd 2.17 to adapt to many kinds of systems.
+\`configure' configures radvd 2.18 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1396,7 +1396,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of radvd 2.17:";;
+     short | recursive ) echo "Configuration of radvd 2.18:";;
    esac
   cat <<\_ACEOF
 
@@ -1512,7 +1512,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-radvd configure 2.17
+radvd configure 2.18
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1877,7 +1877,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by radvd $as_me 2.17, which was
+It was created by radvd $as_me 2.18, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2852,7 +2852,7 @@
 
 # Define the identity of the package.
  PACKAGE='radvd'
- VERSION='2.17'
+ VERSION='2.18'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5960,7 +5960,7 @@
 
 ac_config_headers="$ac_config_headers config.h"
 
-ac_config_files="$ac_config_files Makefile radvd.service redhat/radvd.spec"
+ac_config_files="$ac_config_files Makefile radvd.service 
redhat/systemd/radvd.spec redhat/SysV/radvd.spec"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -6495,7 +6495,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by radvd $as_me 2.17, which was
+This file was extended by radvd $as_me 2.18, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6561,7 +6561,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-radvd config.status 2.17
+radvd config.status 2.18
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -6694,7 +6694,8 @@
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "radvd.service") CONFIG_FILES="$CONFIG_FILES radvd.service" ;;
-    "redhat/radvd.spec") CONFIG_FILES="$CONFIG_FILES redhat/radvd.spec" ;;
+    "redhat/systemd/radvd.spec") CONFIG_FILES="$CONFIG_FILES 
redhat/systemd/radvd.spec" ;;
+    "redhat/SysV/radvd.spec") CONFIG_FILES="$CONFIG_FILES 
redhat/SysV/radvd.spec" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/configure.ac new/radvd-2.18/configure.ac
--- old/radvd-2.17/configure.ac 2017-07-04 05:28:39.000000000 +0200
+++ new/radvd-2.18/configure.ac 2019-02-26 05:35:34.000000000 +0100
@@ -13,7 +13,7 @@
 dnl
 
 dnl If adding rcX to version, be sure to separate with a '-' 
-AC_INIT(radvd, [2.17])
+AC_INIT(radvd, [2.18])
 AC_CONFIG_SRCDIR(radvd.c)
 AC_CANONICAL_SYSTEM
 AM_INIT_AUTOMAKE
@@ -239,7 +239,8 @@
 AC_OUTPUT(
        Makefile \
        radvd.service \
-       redhat/radvd.spec\
+       redhat/systemd/radvd.spec \
+       redhat/SysV/radvd.spec \
 )
 
 cat << EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/device-bsd44.c 
new/radvd-2.18/device-bsd44.c
--- old/radvd-2.17/device-bsd44.c       2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/device-bsd44.c       2018-02-18 23:45:02.000000000 +0100
@@ -157,3 +157,9 @@
        dlog(LOG_DEBUG, 4, "checking ipv6 forwarding not supported");
        return 0;
 }
+
+int check_ip6_iface_forwarding(const char *iface)
+{
+       dlog(LOG_DEBUG, 4, "checking ipv6 forwarding of interface not 
supported");
+       return -1;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/device-common.c 
new/radvd-2.18/device-common.c
--- old/radvd-2.17/device-common.c      2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/device-common.c      2018-12-09 00:35:39.000000000 +0100
@@ -45,11 +45,15 @@
                dlog(LOG_ERR, 4, "%s is running", iface->props.name);
        }
 
-       if (!iface->UnicastOnly && !(ifr.ifr_flags & IFF_MULTICAST)) {
-               flog(LOG_INFO, "%s does not support multicast, forcing 
UnicastOnly", iface->props.name);
+       if (!iface->UnicastOnly &&
+           !(ifr.ifr_flags & (IFF_MULTICAST | IFF_POINTOPOINT))) {
+               flog(LOG_INFO,
+                    "%s does not support multicast or point-to-point, forcing 
UnicastOnly",
+                    iface->props.name);
                iface->UnicastOnly = 1;
        } else {
-               dlog(LOG_ERR, 4, "%s supports multicast", iface->props.name);
+               dlog(LOG_ERR, 4, "%s supports multicast or is point-to-point",
+                    iface->props.name);
        }
 
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/device-linux.c 
new/radvd-2.18/device-linux.c
--- old/radvd-2.17/device-linux.c       2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/device-linux.c       2018-02-18 23:45:02.000000000 +0100
@@ -219,6 +219,32 @@
 
 int set_interface_retranstimer(const char *iface, uint32_t rettimer) { return 
privsep_interface_retranstimer(iface, rettimer); }
 
+int check_ip6_iface_forwarding(const char *iface)
+{
+       int value = -1;
+       FILE *fp = NULL;
+       char path[sizeof(PROC_SYS_IP6_IFACE_FORWARDING) + IFNAMSIZ];
+
+       snprintf(path, sizeof(PROC_SYS_IP6_IFACE_FORWARDING) + IFNAMSIZ, 
PROC_SYS_IP6_IFACE_FORWARDING, iface);
+
+       fp = fopen(path, "r");
+       if (fp) {
+               int rc = fscanf(fp, "%d", &value);
+               if (rc != 1) {
+                       flog(LOG_ERR, "cannot read value from %s: %s", path, 
strerror(errno));
+                       exit(1);
+               }
+               fclose(fp);
+       } else {
+               flog(LOG_DEBUG, "Correct IPv6 forwarding procfs entry for 
interface "
+                               "not found, perhaps the procfs is disabled, "
+                               "or the kernel interface has changed?");
+               value = -1;
+       }
+
+       return value;
+}
+
 int check_ip6_forwarding(void)
 {
        int value;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/gram.y new/radvd-2.18/gram.y
--- old/radvd-2.17/gram.y       2017-07-02 03:59:02.000000000 +0200
+++ new/radvd-2.18/gram.y       2019-02-16 06:30:57.000000000 +0100
@@ -408,7 +408,6 @@
 prefixdef      : prefixhead optional_prefixplist ';'
                {
                        if (prefix) {
-                               unsigned int dst;
 
                                if (prefix->AdvPreferredLifetime > 
prefix->AdvValidLifetime)
                                {
@@ -436,9 +435,11 @@
                        struct in6_addr zeroaddr;
                        memset(&zeroaddr, 0, sizeof(zeroaddr));
 
+#ifndef HAVE_IFADDRS_H // all-zeros prefix is a way to tell us to get the 
prefix from the interface config
                        if (!memcmp($2, &zeroaddr, sizeof(struct in6_addr))) {
                                flog(LOG_WARNING, "invalid all-zeros prefix in 
%s, line %d", filename, num_lines);
                        }
+#endif
                        prefix = malloc(sizeof(struct AdvPrefix));
 
                        if (prefix == NULL) {
@@ -957,6 +958,7 @@
                if (yyparse() != 0) {
                        free_ifaces(iface);
                        iface = 0;
+                       IfaceList = 0;
                } else {
                        dlog(LOG_DEBUG, 1, "config file, %s, syntax ok", path);
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/interface.c new/radvd-2.18/interface.c
--- old/radvd-2.17/interface.c  2017-07-02 03:59:02.000000000 +0200
+++ new/radvd-2.18/interface.c  2018-02-18 23:45:02.000000000 +0100
@@ -164,6 +164,11 @@
                flog(LOG_INFO, "using Mobile IPv6 extensions");
        }
 
+       /* Check forwarding on interface */
+       if (check_ip6_iface_forwarding(iface->props.name) < 1) {
+               flog(LOG_WARNING, "IPv6 forwarding on interface seems to be 
disabled, but continuing anyway");
+       }
+
        struct AdvPrefix *prefix = iface->AdvPrefixList;
        while (!MIPv6 && prefix) {
                if (prefix->AdvRouterAddr) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/log.c new/radvd-2.18/log.c
--- old/radvd-2.17/log.c        2017-06-29 06:54:44.000000000 +0200
+++ new/radvd-2.18/log.c        2018-12-09 00:35:39.000000000 +0100
@@ -32,6 +32,7 @@
 
        switch (log_method) {
        case L_NONE:
+       case L_UNSPEC:
        case L_STDERR:
                break;
        case L_STDERR_CLEAN:
@@ -76,6 +77,7 @@
 
        switch (log_method) {
        case L_NONE:
+       case L_UNSPEC:
                break;
        case L_SYSLOG:
                syslog(prio, "%s", buff);
@@ -136,6 +138,7 @@
 {
        switch (log_method) {
        case L_NONE:
+       case L_UNSPEC:
        case L_STDERR:
                break;
        case L_STDERR_SYSLOG:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/log.h new/radvd-2.18/log.h
--- old/radvd-2.17/log.h        2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/log.h        2018-12-09 00:35:39.000000000 +0100
@@ -20,6 +20,7 @@
 #define L_STDERR_SYSLOG 3
 #define L_LOGFILE 4
 #define L_STDERR_CLEAN 5
+#define L_UNSPEC 6
 
 #define LOG_TIME_FORMAT "%b %d %H:%M:%S"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/pathnames.h new/radvd-2.18/pathnames.h
--- old/radvd-2.17/pathnames.h  2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/pathnames.h  2018-02-18 23:45:02.000000000 +0100
@@ -33,6 +33,7 @@
 #define SYSCTL_IP6_FORWARDING CTL_NET, NET_IPV6, NET_IPV6_CONF, 
NET_PROTO_CONF_ALL, NET_IPV6_FORWARDING
 #define SYSCTL_IP6_AUTOCONFIG CTL_NET, NET_IPV6, NET_IPV6_CONF, 
NET_PROTO_CONF_ALL, NET_IPV6_AUTOCONF
 #define PROC_SYS_IP6_FORWARDING "/proc/sys/net/ipv6/conf/all/forwarding"
+#define PROC_SYS_IP6_IFACE_FORWARDING "/proc/sys/net/ipv6/conf/%s/forwarding"
 #define PROC_SYS_IP6_AUTOCONFIG "/proc/sys/net/ipv6/conf/%s/autoconf"
 #define PROC_SYS_IP6_LINKMTU "/proc/sys/net/ipv6/conf/%s/mtu"
 #define PROC_SYS_IP6_CURHLIM "/proc/sys/net/ipv6/conf/%s/hop_limit"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/radvd.8.man new/radvd-2.18/radvd.8.man
--- old/radvd-2.17/radvd.8.man  2017-01-03 00:37:07.000000000 +0100
+++ new/radvd-2.18/radvd.8.man  2018-12-09 00:35:39.000000000 +0100
@@ -23,6 +23,7 @@
 .BI "[ \-p " pidfile " ]"
 .BI "[ \-m " logmethod " ]"
 .BI "[ \-l " logfile " ]"
+.BI "[ \-n " nodaemon " ]"
 .BI "[ \-f " facility " ]"
 .BI "[ \-t " chrootdir " ]"
 .BI "[ \-u " username " ]"
@@ -57,6 +58,9 @@
 .BR "\-c" , " \-\-configtest"
 Test configuration and do startup tests and then exit.
 .TP
+.BR "\-n" , " \-\-nodaemon"
+Prevent the daemonizing.
+.TP
 .BR "\-d " debuglevel, " \-\-debug " debuglevel
 With this option you turn on debugging information. The debugging level is
 an integer in the range from 1 to 5, from  quiet to very verbose. A
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/radvd.c new/radvd-2.18/radvd.c
--- old/radvd-2.17/radvd.c      2017-07-02 04:04:47.000000000 +0200
+++ new/radvd-2.18/radvd.c      2018-12-09 00:35:39.000000000 +0100
@@ -65,7 +65,7 @@
 #else
 
 static char usage_str[] = {
-"[-hsvcn] [-d level] [-C config_path] [-m log_method] [-l log_file]\n"
+"[-hvcn] [-d level] [-C config_path] [-m log_method] [-l log_file]\n"
 "\t[-f facility] [-p pid_file] [-u username] [-t chrootdir]"
 
 };
@@ -181,7 +181,7 @@
 int main(int argc, char *argv[])
 {
        int c;
-       int log_method = L_STDERR_SYSLOG;
+       int log_method = L_UNSPEC;
        char *logfile = PATH_RADVD_LOG;
        int facility = LOG_FACILITY;
        char *username = NULL;
@@ -294,6 +294,7 @@
                        break;
                case L_STDERR_SYSLOG:
                case L_NONE:
+               case L_UNSPEC:
                case L_SYSLOG:
                case L_LOGFILE:
                default:
@@ -301,7 +302,8 @@
                        break;
                }
        }
-
+       if (log_method == L_UNSPEC)
+               log_method = daemonize ? L_STDERR_SYSLOG : L_STDERR;
        if (log_open(log_method, pname, logfile, facility) < 0) {
                perror("log_open");
                exit(1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/radvd.h new/radvd-2.18/radvd.h
--- old/radvd-2.17/radvd.h      2017-07-02 03:59:02.000000000 +0200
+++ new/radvd-2.18/radvd.h      2018-02-18 23:45:02.000000000 +0100
@@ -259,9 +259,7 @@
        uint8_t nd_opt_6co_type;
        uint8_t nd_opt_6co_len;
        uint8_t nd_opt_6co_context_len;
-       uint8_t nd_opt_6co_res : 3;
-       uint8_t nd_opt_6co_c : 1;
-       uint8_t nd_opt_6co_cid : 4;
+       uint8_t nd_opt_6co_res_c_cid; /* [ res=3-bits | c=1-bit | cid=4-bits ] 
*/
        uint16_t nd_opt_6co_reserved;
        uint16_t nd_opt_6co_valid_lifetime;
        struct in6_addr nd_opt_6co_con_prefix;
@@ -281,6 +279,7 @@
 /* device.c */
 int check_device(int sock, struct Interface *);
 int check_ip6_forwarding(void);
+int check_ip6_iface_forwarding(const char *iface);
 int get_v4addr(const char *, unsigned int *);
 int set_interface_curhlim(const char *, uint8_t);
 int set_interface_linkmtu(const char *, uint32_t);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd-tmpfs.conf 
new/radvd-2.18/redhat/SysV/radvd-tmpfs.conf
--- old/radvd-2.17/redhat/SysV/radvd-tmpfs.conf 1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd-tmpfs.conf 2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1 @@
+d      /var/run/radvd  0755 radvd radvd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.conf.empty 
new/radvd-2.18/redhat/SysV/radvd.conf.empty
--- old/radvd-2.17/redhat/SysV/radvd.conf.empty 1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd.conf.empty 2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,18 @@
+# NOTE: there is no such thing as a working "by-default" configuration file. 
+#       At least the prefix needs to be specified.  Please consult the 
radvd.conf(5)
+#       man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help.
+#
+#
+#interface eth0
+#{
+#      AdvSendAdvert on;
+#      MinRtrAdvInterval 30;
+#      MaxRtrAdvInterval 100;
+#      prefix 2001:db8:1:0::/64
+#      {
+#              AdvOnLink on;
+#              AdvAutonomous on;
+#              AdvRouterAddr off;
+#      };
+#
+#};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.init 
new/radvd-2.18/redhat/SysV/radvd.init
--- old/radvd-2.17/redhat/SysV/radvd.init       1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd.init       2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,92 @@
+#! /bin/sh
+#
+#
+# chkconfig: - 54 46
+# description: radvd is the router advertisement daemon for IPv6.  It \
+#              listens to router solicitations and sends router \
+#              advertisements as described in "Neighbor Discovery for IP \
+#              Version 6 (IPv6)" (RFC 2461).  With these advertisements \
+#              hosts can automatically configure their addresses and some \
+#              other parameters.  They also can choose a default router \
+#              based on these advertisements.
+#
+# processname: radvd
+# pidfile: /var/run/radvd.pid
+# config: /etc/radvd.conf
+# config: /etc/sysconfig/radvd
+
+### BEGIN INIT INFO
+# Provides: radvd
+# Short-Description: router advertisement daemon for IPv6
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Get config.
+. /etc/sysconfig/network
+
+[ -f /etc/sysconfig/radvd ] && . /etc/sysconfig/radvd
+
+RETVAL=0
+PROG="radvd"
+LOCKFILE=/var/lock/subsys/radvd
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f /etc/radvd.conf ]; then
+               echo $"Configuration file /etc/radvd.conf missing" 1>&2
+               exit 6
+       fi
+       if [ `id -u` -ne 0 ]; then
+               echo $"Insufficient privilege" 1>&2
+               exit 4
+       fi
+       echo -n $"Starting $PROG: "
+       daemon radvd $OPTIONS
+       RETVAL=$?
+       echo
+       if [ $RETVAL -eq 0 ]; then
+               touch $LOCKFILE
+       else
+               if [ -f $LOCKFILE ]; then
+                       RETVAL=0
+               fi
+       fi
+       ;;
+  stop)
+       echo -n $"Stopping $PROG: "
+       killproc radvd
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
+       ;;
+  status)
+       status radvd
+       RETVAL=$?
+       ;;
+  restart)
+       $0 stop
+       $0 start
+       RETVAL=$?
+       ;;
+  reload|force-reload)
+       echo -n $"Reloading $PROG: "
+       killproc radvd -HUP
+       RETVAL=$?       
+       echo
+       ;;
+  condrestart|try-restart)
+        if [ -f $LOCKFILE ]; then
+               $0 stop
+               $0 start
+               RETVAL=$?
+       fi
+        ;;  
+  *)
+       echo $"Usage: $0 
{start|stop|status|restart|try-restart|reload|force-reload}"
+       exit 2
+esac
+
+exit $RETVAL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.spec 
new/radvd-2.18/redhat/SysV/radvd.spec
--- old/radvd-2.17/redhat/SysV/radvd.spec       1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd.spec       2019-02-26 05:36:53.000000000 
+0100
@@ -0,0 +1,96 @@
+
+%define initdir %{_sysconfdir}/rc.d/init.d
+
+%define RADVD_UID 75
+
+Summary: A Router Advertisement daemon
+Name: radvd
+Version: 2.18
+Release: 1
+# The code includes the advertising clause, so it's GPL-incompatible
+License: BSD with advertising
+Group: System Environment/Daemons
+URL:        http://www.litech.org/radvd/
+Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
+Requires(postun):   chkconfig, initscripts
+Requires(preun):    chkconfig, initscripts
+Requires(post):     chkconfig
+Requires(pre):      /usr/sbin/useradd
+BuildRequires: flex, byacc
+BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} 
-n)
+
+%description
+radvd is the router advertisement daemon for IPv6.  It listens to router
+solicitations and sends router advertisements as described in "Neighbor
+Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
+hosts can automatically configure their addresses and some other
+parameters.  They also can choose a default router based on these
+advertisements.
+
+Install radvd if you are setting up IPv6 network and/or Mobile IPv6
+services.
+
+%prep
+%setup -q
+
+%build
+export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" 
+export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
+%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid
+make
+# make %{?_smp_mflags} 
+# Parallel builds still fail because seds that transform y.tab.x into
+# scanner/gram.x are not executed before compile of scanner/gram.x
+#
+
+%install
+[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+make DESTDIR=$RPM_BUILD_ROOT install
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+mkdir -p $RPM_BUILD_ROOT%{initdir}
+mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd
+
+install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf
+install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd
+install -m 644 redhat/radvd.sysconfig 
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd
+
+install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
+install -p -m 644 redhat/radvd-tmpfs.conf 
$RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf 
+
+%clean
+[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+%postun
+if [ "$1" -ge "1" ]; then
+    /sbin/service radvd condrestart >/dev/null 2>&1
+fi
+
+%post
+/sbin/chkconfig --add radvd
+
+%preun
+if [ $1 = 0 ]; then
+   /sbin/service radvd stop >/dev/null 2>&1
+   /sbin/chkconfig --del radvd
+fi
+
+%pre
+getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd
+getent passwd radvd >/dev/null || \
+  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
+exit 0
+
+%files
+%defattr(-,root,root,-)
+%doc COPYRIGHT README CHANGES INTRO.html TODO
+%config(noreplace) %{_sysconfdir}/radvd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/radvd
+%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf
+%{initdir}/radvd
+%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/
+%doc radvd.conf.example
+%{_mandir}/*/*
+%{_sbindir}/radvd
+%{_sbindir}/radvdump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.spec.in 
new/radvd-2.18/redhat/SysV/radvd.spec.in
--- old/radvd-2.17/redhat/SysV/radvd.spec.in    1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd.spec.in    2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,96 @@
+
+%define initdir %{_sysconfdir}/rc.d/init.d
+
+%define RADVD_UID 75
+
+Summary: A Router Advertisement daemon
+Name: radvd
+Version: @VERSION@
+Release: 1
+# The code includes the advertising clause, so it's GPL-incompatible
+License: BSD with advertising
+Group: System Environment/Daemons
+URL:        http://www.litech.org/radvd/
+Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
+Requires(postun):   chkconfig, initscripts
+Requires(preun):    chkconfig, initscripts
+Requires(post):     chkconfig
+Requires(pre):      /usr/sbin/useradd
+BuildRequires: flex, byacc
+BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} 
-n)
+
+%description
+radvd is the router advertisement daemon for IPv6.  It listens to router
+solicitations and sends router advertisements as described in "Neighbor
+Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
+hosts can automatically configure their addresses and some other
+parameters.  They also can choose a default router based on these
+advertisements.
+
+Install radvd if you are setting up IPv6 network and/or Mobile IPv6
+services.
+
+%prep
+%setup -q
+
+%build
+export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" 
+export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
+%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid
+make
+# make %{?_smp_mflags} 
+# Parallel builds still fail because seds that transform y.tab.x into
+# scanner/gram.x are not executed before compile of scanner/gram.x
+#
+
+%install
+[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+make DESTDIR=$RPM_BUILD_ROOT install
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+mkdir -p $RPM_BUILD_ROOT%{initdir}
+mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd
+
+install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf
+install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd
+install -m 644 redhat/radvd.sysconfig 
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd
+
+install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
+install -p -m 644 redhat/radvd-tmpfs.conf 
$RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf 
+
+%clean
+[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+%postun
+if [ "$1" -ge "1" ]; then
+    /sbin/service radvd condrestart >/dev/null 2>&1
+fi
+
+%post
+/sbin/chkconfig --add radvd
+
+%preun
+if [ $1 = 0 ]; then
+   /sbin/service radvd stop >/dev/null 2>&1
+   /sbin/chkconfig --del radvd
+fi
+
+%pre
+getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd
+getent passwd radvd >/dev/null || \
+  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
+exit 0
+
+%files
+%defattr(-,root,root,-)
+%doc COPYRIGHT README CHANGES INTRO.html TODO
+%config(noreplace) %{_sysconfdir}/radvd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/radvd
+%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf
+%{initdir}/radvd
+%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/
+%doc radvd.conf.example
+%{_mandir}/*/*
+%{_sbindir}/radvd
+%{_sbindir}/radvdump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/SysV/radvd.sysconfig 
new/radvd-2.18/redhat/SysV/radvd.sysconfig
--- old/radvd-2.17/redhat/SysV/radvd.sysconfig  1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/SysV/radvd.sysconfig  2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,6 @@
+
+# No chroot; /var/run/radvd must be owned by -u.
+OPTIONS="-u radvd"
+
+# Chroot; directory structure under /var/chroot/radvd has to be populated.
+#OPTIONS="-u radvd -t /var/chroot/radvd"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd-tmpfs.conf 
new/radvd-2.18/redhat/radvd-tmpfs.conf
--- old/radvd-2.17/redhat/radvd-tmpfs.conf      2014-07-31 02:13:24.000000000 
+0200
+++ new/radvd-2.18/redhat/radvd-tmpfs.conf      1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-d      /var/run/radvd  0755 radvd radvd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd.conf.empty 
new/radvd-2.18/redhat/radvd.conf.empty
--- old/radvd-2.17/redhat/radvd.conf.empty      2014-07-31 02:13:24.000000000 
+0200
+++ new/radvd-2.18/redhat/radvd.conf.empty      1970-01-01 01:00:00.000000000 
+0100
@@ -1,18 +0,0 @@
-# NOTE: there is no such thing as a working "by-default" configuration file. 
-#       At least the prefix needs to be specified.  Please consult the 
radvd.conf(5)
-#       man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help.
-#
-#
-#interface eth0
-#{
-#      AdvSendAdvert on;
-#      MinRtrAdvInterval 30;
-#      MaxRtrAdvInterval 100;
-#      prefix 2001:db8:1:0::/64
-#      {
-#              AdvOnLink on;
-#              AdvAutonomous on;
-#              AdvRouterAddr off;
-#      };
-#
-#};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd.init 
new/radvd-2.18/redhat/radvd.init
--- old/radvd-2.17/redhat/radvd.init    2014-07-31 02:13:24.000000000 +0200
+++ new/radvd-2.18/redhat/radvd.init    1970-01-01 01:00:00.000000000 +0100
@@ -1,92 +0,0 @@
-#! /bin/sh
-#
-#
-# chkconfig: - 54 46
-# description: radvd is the router advertisement daemon for IPv6.  It \
-#              listens to router solicitations and sends router \
-#              advertisements as described in "Neighbor Discovery for IP \
-#              Version 6 (IPv6)" (RFC 2461).  With these advertisements \
-#              hosts can automatically configure their addresses and some \
-#              other parameters.  They also can choose a default router \
-#              based on these advertisements.
-#
-# processname: radvd
-# pidfile: /var/run/radvd.pid
-# config: /etc/radvd.conf
-# config: /etc/sysconfig/radvd
-
-### BEGIN INIT INFO
-# Provides: radvd
-# Short-Description: router advertisement daemon for IPv6
-### END INIT INFO
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
-# Get config.
-. /etc/sysconfig/network
-
-[ -f /etc/sysconfig/radvd ] && . /etc/sysconfig/radvd
-
-RETVAL=0
-PROG="radvd"
-LOCKFILE=/var/lock/subsys/radvd
-
-# See how we were called.
-case "$1" in
-  start)
-       if [ ! -f /etc/radvd.conf ]; then
-               echo $"Configuration file /etc/radvd.conf missing" 1>&2
-               exit 6
-       fi
-       if [ `id -u` -ne 0 ]; then
-               echo $"Insufficient privilege" 1>&2
-               exit 4
-       fi
-       echo -n $"Starting $PROG: "
-       daemon radvd $OPTIONS
-       RETVAL=$?
-       echo
-       if [ $RETVAL -eq 0 ]; then
-               touch $LOCKFILE
-       else
-               if [ -f $LOCKFILE ]; then
-                       RETVAL=0
-               fi
-       fi
-       ;;
-  stop)
-       echo -n $"Stopping $PROG: "
-       killproc radvd
-       RETVAL=$?
-       echo
-       [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
-       ;;
-  status)
-       status radvd
-       RETVAL=$?
-       ;;
-  restart)
-       $0 stop
-       $0 start
-       RETVAL=$?
-       ;;
-  reload|force-reload)
-       echo -n $"Reloading $PROG: "
-       killproc radvd -HUP
-       RETVAL=$?       
-       echo
-       ;;
-  condrestart|try-restart)
-        if [ -f $LOCKFILE ]; then
-               $0 stop
-               $0 start
-               RETVAL=$?
-       fi
-        ;;  
-  *)
-       echo $"Usage: $0 
{start|stop|status|restart|try-restart|reload|force-reload}"
-       exit 2
-esac
-
-exit $RETVAL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd.spec 
new/radvd-2.18/redhat/radvd.spec
--- old/radvd-2.17/redhat/radvd.spec    2017-07-04 05:31:12.000000000 +0200
+++ new/radvd-2.18/redhat/radvd.spec    1970-01-01 01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-
-%define initdir %{_sysconfdir}/rc.d/init.d
-
-%define RADVD_UID 75
-
-Summary: A Router Advertisement daemon
-Name: radvd
-Version: 2.17
-Release: 1
-# The code includes the advertising clause, so it's GPL-incompatible
-License: BSD with advertising
-Group: System Environment/Daemons
-URL:        http://www.litech.org/radvd/
-Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
-Requires(postun):   chkconfig, initscripts
-Requires(preun):    chkconfig, initscripts
-Requires(post):     chkconfig
-Requires(pre):      /usr/sbin/useradd
-BuildRequires: flex, byacc
-BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} 
-n)
-
-%description
-radvd is the router advertisement daemon for IPv6.  It listens to router
-solicitations and sends router advertisements as described in "Neighbor
-Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
-hosts can automatically configure their addresses and some other
-parameters.  They also can choose a default router based on these
-advertisements.
-
-Install radvd if you are setting up IPv6 network and/or Mobile IPv6
-services.
-
-%prep
-%setup -q
-
-%build
-export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" 
-export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
-%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid
-make
-# make %{?_smp_mflags} 
-# Parallel builds still fail because seds that transform y.tab.x into
-# scanner/gram.x are not executed before compile of scanner/gram.x
-#
-
-%install
-[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-make DESTDIR=$RPM_BUILD_ROOT install
-
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
-mkdir -p $RPM_BUILD_ROOT%{initdir}
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd
-
-install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf
-install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd
-install -m 644 redhat/radvd.sysconfig 
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd
-
-install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
-install -p -m 644 redhat/radvd-tmpfs.conf 
$RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf 
-
-%clean
-[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-%postun
-if [ "$1" -ge "1" ]; then
-    /sbin/service radvd condrestart >/dev/null 2>&1
-fi
-
-%post
-/sbin/chkconfig --add radvd
-
-%preun
-if [ $1 = 0 ]; then
-   /sbin/service radvd stop >/dev/null 2>&1
-   /sbin/chkconfig --del radvd
-fi
-
-%pre
-getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd
-getent passwd radvd >/dev/null || \
-  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
-exit 0
-
-%files
-%defattr(-,root,root,-)
-%doc COPYRIGHT README CHANGES INTRO.html TODO
-%config(noreplace) %{_sysconfdir}/radvd.conf
-%config(noreplace) %{_sysconfdir}/sysconfig/radvd
-%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf
-%{initdir}/radvd
-%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/
-%doc radvd.conf.example
-%{_mandir}/*/*
-%{_sbindir}/radvd
-%{_sbindir}/radvdump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd.spec.in 
new/radvd-2.18/redhat/radvd.spec.in
--- old/radvd-2.17/redhat/radvd.spec.in 2014-07-31 02:13:24.000000000 +0200
+++ new/radvd-2.18/redhat/radvd.spec.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-
-%define initdir %{_sysconfdir}/rc.d/init.d
-
-%define RADVD_UID 75
-
-Summary: A Router Advertisement daemon
-Name: radvd
-Version: @VERSION@
-Release: 1
-# The code includes the advertising clause, so it's GPL-incompatible
-License: BSD with advertising
-Group: System Environment/Daemons
-URL:        http://www.litech.org/radvd/
-Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
-Requires(postun):   chkconfig, initscripts
-Requires(preun):    chkconfig, initscripts
-Requires(post):     chkconfig
-Requires(pre):      /usr/sbin/useradd
-BuildRequires: flex, byacc
-BuildRoot:          %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} 
-n)
-
-%description
-radvd is the router advertisement daemon for IPv6.  It listens to router
-solicitations and sends router advertisements as described in "Neighbor
-Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
-hosts can automatically configure their addresses and some other
-parameters.  They also can choose a default router based on these
-advertisements.
-
-Install radvd if you are setting up IPv6 network and/or Mobile IPv6
-services.
-
-%prep
-%setup -q
-
-%build
-export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIE -fno-strict-aliasing" 
-export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
-%configure --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid
-make
-# make %{?_smp_mflags} 
-# Parallel builds still fail because seds that transform y.tab.x into
-# scanner/gram.x are not executed before compile of scanner/gram.x
-#
-
-%install
-[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-make DESTDIR=$RPM_BUILD_ROOT install
-
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
-mkdir -p $RPM_BUILD_ROOT%{initdir}
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/radvd
-
-install -m 644 redhat/radvd.conf.empty $RPM_BUILD_ROOT%{_sysconfdir}/radvd.conf
-install -m 755 redhat/radvd.init $RPM_BUILD_ROOT%{initdir}/radvd
-install -m 644 redhat/radvd.sysconfig 
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/radvd
-
-install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d
-install -p -m 644 redhat/radvd-tmpfs.conf 
$RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/radvd.conf 
-
-%clean
-[ $RPM_BUILD_ROOT != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-%postun
-if [ "$1" -ge "1" ]; then
-    /sbin/service radvd condrestart >/dev/null 2>&1
-fi
-
-%post
-/sbin/chkconfig --add radvd
-
-%preun
-if [ $1 = 0 ]; then
-   /sbin/service radvd stop >/dev/null 2>&1
-   /sbin/chkconfig --del radvd
-fi
-
-%pre
-getent group radvd >/dev/null || groupadd -g %RADVD_UID -r radvd
-getent passwd radvd >/dev/null || \
-  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
-exit 0
-
-%files
-%defattr(-,root,root,-)
-%doc COPYRIGHT README CHANGES INTRO.html TODO
-%config(noreplace) %{_sysconfdir}/radvd.conf
-%config(noreplace) %{_sysconfdir}/sysconfig/radvd
-%config(noreplace) %{_sysconfdir}/tmpfiles.d/radvd.conf
-%{initdir}/radvd
-%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/
-%doc radvd.conf.example
-%{_mandir}/*/*
-%{_sbindir}/radvd
-%{_sbindir}/radvdump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/radvd.sysconfig 
new/radvd-2.18/redhat/radvd.sysconfig
--- old/radvd-2.17/redhat/radvd.sysconfig       2014-07-31 02:13:24.000000000 
+0200
+++ new/radvd-2.18/redhat/radvd.sysconfig       1970-01-01 01:00:00.000000000 
+0100
@@ -1,6 +0,0 @@
-
-# No chroot; /var/run/radvd must be owned by -u.
-OPTIONS="-u radvd"
-
-# Chroot; directory structure under /var/chroot/radvd has to be populated.
-#OPTIONS="-u radvd -t /var/chroot/radvd"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd-tmpfs.conf 
new/radvd-2.18/redhat/systemd/radvd-tmpfs.conf
--- old/radvd-2.17/redhat/systemd/radvd-tmpfs.conf      1970-01-01 
01:00:00.000000000 +0100
+++ new/radvd-2.18/redhat/systemd/radvd-tmpfs.conf      2019-02-16 
06:30:57.000000000 +0100
@@ -0,0 +1 @@
+d      /var/run/radvd  0755 radvd radvd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.service 
new/radvd-2.18/redhat/systemd/radvd.service
--- old/radvd-2.17/redhat/systemd/radvd.service 1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/systemd/radvd.service 2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,14 @@
+[Unit]
+Description=Router advertisement daemon for IPv6
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+EnvironmentFile=/etc/sysconfig/radvd
+ExecStart=/usr/sbin/radvd $OPTIONS
+Type=forking
+PIDFile=/var/run/radvd/radvd.pid
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.spec 
new/radvd-2.18/redhat/systemd/radvd.spec
--- old/radvd-2.17/redhat/systemd/radvd.spec    1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/systemd/radvd.spec    2019-02-26 05:36:53.000000000 
+0100
@@ -0,0 +1,94 @@
+%define RADVD_UID 75
+
+Summary: A Router Advertisement daemon
+Name: radvd
+Version: 2.18
+Release: 1%{?dist}
+# The code includes the advertising clause, so it's GPL-incompatible
+License: BSD with advertising
+Group: System Environment/Daemons
+URL:        http://www.litech.org/radvd/
+Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
+
+BuildRequires: gcc
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: flex-static
+BuildRequires: pkgconfig
+BuildRequires: check-devel
+BuildRequires: systemd
+%{?systemd_requires}
+Requires(pre): shadow-utils
+
+%description
+radvd is the router advertisement daemon for IPv6.  It listens to router
+solicitations and sends router advertisements as described in "Neighbor
+Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
+hosts can automatically configure their addresses and some other
+parameters.  They also can choose a default router based on these
+advertisements.
+
+Install radvd if you are setting up IPv6 network and/or Mobile IPv6
+services.
+
+%prep
+%setup -q
+
+for F in CHANGES; do
+    iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new"
+    touch -r "$F" "${F}.new"
+    mv "${F}.new" "$F"
+done
+
+%build
+export CFLAGS="$RPM_OPT_FLAGS -fPIE "
+export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
+%configure  --with-pidfile=/run/radvd/radvd.pid
+make %{?_smp_mflags}
+
+%install
+make DESTDIR=%{buildroot} install
+
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
+mkdir -p %{buildroot}/run/radvd
+mkdir -p %{buildroot}%{_unitdir}
+
+install -m 644 redhat/radvd.conf.empty %{buildroot}%{_sysconfdir}/radvd.conf
+install -m 644 redhat/radvd.sysconfig 
%{buildroot}%{_sysconfdir}/sysconfig/radvd
+
+install -d -m 755 %{buildroot}%{_tmpfilesdir}
+install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/radvd.conf
+install -p -m 644 redhat/radvd-tmpfs.conf 
%{buildroot}%{_tmpfilesdir}/radvd.conf
+install -m 644 redhat/radvd.service %{buildroot}%{_unitdir}
+
+%check
+make check
+
+%postun
+%systemd_postun_with_restart radvd.service
+
+%post
+%systemd_post radvd.service
+
+%preun
+%systemd_preun radvd.service
+
+# Static UID and GID defined by /usr/share/doc/setup-*/uidgid
+%pre
+getent group radvd >/dev/null || groupadd -r -g %RADVD_UID  radvd
+getent passwd radvd >/dev/null || \
+  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
+exit 0
+
+%files
+%doc CHANGES COPYRIGHT INTRO.html README TODO
+%{_unitdir}/radvd.service
+%config(noreplace) %{_sysconfdir}/radvd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/radvd
+%{_tmpfilesdir}/radvd.conf
+%dir %attr(755,radvd,radvd) /run/radvd/
+%doc radvd.conf.example
+%{_mandir}/*/*
+%{_sbindir}/radvd
+%{_sbindir}/radvdump
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/redhat/systemd/radvd.spec.in 
new/radvd-2.18/redhat/systemd/radvd.spec.in
--- old/radvd-2.17/redhat/systemd/radvd.spec.in 1970-01-01 01:00:00.000000000 
+0100
+++ new/radvd-2.18/redhat/systemd/radvd.spec.in 2019-02-16 06:30:57.000000000 
+0100
@@ -0,0 +1,94 @@
+%define RADVD_UID 75
+
+Summary: A Router Advertisement daemon
+Name: radvd
+Version: @VERSION@
+Release: 1%{?dist}
+# The code includes the advertising clause, so it's GPL-incompatible
+License: BSD with advertising
+Group: System Environment/Daemons
+URL:        http://www.litech.org/radvd/
+Source:     http://www.litech.org/radvd/dist/%{name}-%{version}.tar.gz
+
+BuildRequires: gcc
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: flex-static
+BuildRequires: pkgconfig
+BuildRequires: check-devel
+BuildRequires: systemd
+%{?systemd_requires}
+Requires(pre): shadow-utils
+
+%description
+radvd is the router advertisement daemon for IPv6.  It listens to router
+solicitations and sends router advertisements as described in "Neighbor
+Discovery for IP Version 6 (IPv6)" (RFC 2461).  With these advertisements
+hosts can automatically configure their addresses and some other
+parameters.  They also can choose a default router based on these
+advertisements.
+
+Install radvd if you are setting up IPv6 network and/or Mobile IPv6
+services.
+
+%prep
+%setup -q
+
+for F in CHANGES; do
+    iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new"
+    touch -r "$F" "${F}.new"
+    mv "${F}.new" "$F"
+done
+
+%build
+export CFLAGS="$RPM_OPT_FLAGS -fPIE "
+export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen'
+%configure  --with-pidfile=/run/radvd/radvd.pid
+make %{?_smp_mflags}
+
+%install
+make DESTDIR=%{buildroot} install
+
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
+mkdir -p %{buildroot}/run/radvd
+mkdir -p %{buildroot}%{_unitdir}
+
+install -m 644 redhat/radvd.conf.empty %{buildroot}%{_sysconfdir}/radvd.conf
+install -m 644 redhat/radvd.sysconfig 
%{buildroot}%{_sysconfdir}/sysconfig/radvd
+
+install -d -m 755 %{buildroot}%{_tmpfilesdir}
+install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/radvd.conf
+install -p -m 644 redhat/radvd-tmpfs.conf 
%{buildroot}%{_tmpfilesdir}/radvd.conf
+install -m 644 redhat/radvd.service %{buildroot}%{_unitdir}
+
+%check
+make check
+
+%postun
+%systemd_postun_with_restart radvd.service
+
+%post
+%systemd_post radvd.service
+
+%preun
+%systemd_preun radvd.service
+
+# Static UID and GID defined by /usr/share/doc/setup-*/uidgid
+%pre
+getent group radvd >/dev/null || groupadd -r -g %RADVD_UID  radvd
+getent passwd radvd >/dev/null || \
+  useradd -r -u %RADVD_UID -g radvd -d / -s /sbin/nologin -c "radvd user" radvd
+exit 0
+
+%files
+%doc CHANGES COPYRIGHT INTRO.html README TODO
+%{_unitdir}/radvd.service
+%config(noreplace) %{_sysconfdir}/radvd.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/radvd
+%{_tmpfilesdir}/radvd.conf
+%dir %attr(755,radvd,radvd) /run/radvd/
+%doc radvd.conf.example
+%{_mandir}/*/*
+%{_sbindir}/radvd
+%{_sbindir}/radvdump
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/scanner.l new/radvd-2.18/scanner.l
--- old/radvd-2.17/scanner.l    2017-07-02 03:59:02.000000000 +0200
+++ new/radvd-2.18/scanner.l    2018-02-18 23:45:02.000000000 +0100
@@ -35,7 +35,7 @@
 addr3          ({hexdigit}{1,4}":"){7}{hexdigit}{1,4}
 addr           ({addr1}|{addr2}|{addr3}|"::")
 whitespace     ([ \t])+
-string         [a-zA-Z0-9`~!@#$%\^&*()_\-+=:\[\]<>,\.?\\]+
+string         [a-zA-Z0-9`~!@#$%\^&*()_\-+=:\[\]<>,\.?\\]+|L?\"(\\.|[^\\"])*\"
 %%
 
 #.*$                   {/* ignore comments */}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/send.c new/radvd-2.18/send.c
--- old/radvd-2.17/send.c       2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/send.c       2018-12-09 00:35:39.000000000 +0100
@@ -527,8 +527,8 @@
 
                dnssl = dnssl->next;
        }
-       return sbl;
        safe_buffer_free(serialized_domains);
+       return sbl;
 }
 
 /*
@@ -619,9 +619,9 @@
        co.nd_opt_6co_type = ND_OPT_6CO;
        co.nd_opt_6co_len = 3;
        co.nd_opt_6co_context_len = lowpanco->ContextLength;
-       co.nd_opt_6co_c = lowpanco->ContextCompressionFlag;
-       co.nd_opt_6co_cid = lowpanco->AdvContextID;
-       co.nd_opt_6co_valid_lifetime = lowpanco->AdvLifeTime;
+       co.nd_opt_6co_res_c_cid = ((lowpanco->ContextCompressionFlag ? 1 : 0) 
<< 4)
+                               | (lowpanco->AdvContextID & 0x0F);
+       co.nd_opt_6co_valid_lifetime = htons(lowpanco->AdvLifeTime);
        co.nd_opt_6co_con_prefix = lowpanco->AdvContextPrefix;
 
        safe_buffer_append(sb, &co, sizeof(co));
@@ -635,9 +635,9 @@
 
        abro.nd_opt_abro_type = ND_OPT_ABRO;
        abro.nd_opt_abro_len = 3;
-       abro.nd_opt_abro_ver_low = abroo->Version[1];
-       abro.nd_opt_abro_ver_high = abroo->Version[0];
-       abro.nd_opt_abro_valid_lifetime = abroo->ValidLifeTime;
+       abro.nd_opt_abro_ver_low = htons(abroo->Version[1]);
+       abro.nd_opt_abro_ver_high = htons(abroo->Version[0]);
+       abro.nd_opt_abro_valid_lifetime = htons(abroo->ValidLifeTime);
        abro.nd_opt_abro_6lbr_address = abroo->LBRaddress;
 
        safe_buffer_append(sb, &abro, sizeof(abro));
@@ -797,7 +797,7 @@
                }
 
                // RA built, now send it.
-               dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options 
(using %lu/%u bytes)", dest_text, iface->props.name,
+               dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options 
(using %zd/%u bytes)", dest_text, iface->props.name,
                     src_text, option_count, sb->used, 
iface->props.max_ra_option_size);
                int err = really_send(sock, dest, &iface->props, sb);
                if (err < 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/radvd-2.17/test/send.c new/radvd-2.18/test/send.c
--- old/radvd-2.17/test/send.c  2017-06-29 06:32:29.000000000 +0200
+++ new/radvd-2.18/test/send.c  2018-02-18 23:45:02.000000000 +0100
@@ -309,10 +309,9 @@
        ck_assert_msg(0, "\n%s", &buf);
 #else
        unsigned char expected[] = {
-           0x22, 0x03, 0x32, 0x48, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x00, 
0x00,
+           0x22, 0x03, 0x32, 0x14, 0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 
0x00,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00,
        };
-
        ck_assert_int_eq(sb.used, sizeof(expected));
        ck_assert_int_eq(0, memcmp(expected, sb.buffer, sizeof(expected)));
 #endif
@@ -334,7 +333,7 @@
        ck_assert_msg(0, "\n%s", &buf);
 #else
        unsigned char expected[] = {
-           0x23, 0x03, 0x0a, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x80, 0x00, 
0x00,
+           0x23, 0x03, 0x00, 0x0a, 0x00, 0x02, 0x00, 0x02, 0xfe, 0x80, 0x00, 
0x00,
            0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x01,
        };
 

++++++ radvd-systemd.patch ++++++
Index: radvd-2.18/redhat/systemd/radvd.service
===================================================================
--- radvd-2.18.orig/redhat/systemd/radvd.service
+++ radvd-2.18/redhat/systemd/radvd.service
@@ -4,10 +4,9 @@ After=network-online.target
 Wants=network-online.target
 
 [Service]
-EnvironmentFile=/etc/sysconfig/radvd
-ExecStart=/usr/sbin/radvd $OPTIONS
-Type=forking
-PIDFile=/var/run/radvd/radvd.pid
+EnvironmentFile=-/etc/sysconfig/radvd
+ExecStart=/usr/sbin/radvd --nodaemon $RADVD_OPTIONS
+PIDFile=/run/radvd/radvd.pid
 ExecReload=/bin/kill -HUP $MAINPID
 
 [Install]
Index: radvd-2.18/redhat/systemd/radvd-tmpfs.conf
===================================================================
--- radvd-2.18.orig/redhat/systemd/radvd-tmpfs.conf
+++ radvd-2.18/redhat/systemd/radvd-tmpfs.conf
@@ -1 +1 @@
-d      /var/run/radvd  0755 radvd radvd
+d      /run/radvd      0755 radvd radvd
++++++ radvd.keyring ++++++
--- /var/tmp/diff_new_pack.uqHdeL/_old  2019-08-19 20:48:05.321089468 +0200
+++ /var/tmp/diff_new_pack.uqHdeL/_new  2019-08-19 20:48:05.333089465 +0200
@@ -1,52 +1,29 @@
 -----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2
 
-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
-hENb
-=0+YC
+mQENBFxpAWYBCADuyG03u8JkQcWrxeCvedWEIjhLbOaKt3IoRRFcU4I+w/SQhuGj
+QUVrmCUvTL1fnkuknmZ8rHPjoOjkzFU+X4SdE2FGl53f2mhLuVtGeGWgI1M3ieqP
+JufAIKQLEqrGi/m67QlWrtaZieL8aAfU48zH9tFiWTmX58c+UZxbo5xZ2XVCeUwo
+VapO5BgvnfdLxu3Uqdxm1hM5GIqsDf13Vpwmc4rIVpY1Vvptpyeo81EsEGHDxXoG
+PBL1mWpjAsHQ2h5tyJ/TdeNvVoJVDsFXSPuoAjTr+cXCcEROf1JpwMkV0eRxipzD
+YNnIxn7C175hgGlR+ygAtb6WGQEw3i24M4tTABEBAAG0JFJldWJlbiBIYXdraW5z
+IDxyZXViZW5od2tAZ21haWwuY29tPokBPgQTAQIAKAUCXGkBZgIbAwUJBaOagAYL
+CQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQb+GfIUUcmisR3Qf/ZUgxSIt87vgW
+hkCGMAe6IgzUkrg0wkD/YlnsUyYVavHjB2lElM7aOTSSmbyJsX9GaJY1pQ5cwmTk
+3KVB69KKotvDd5m9eNBKNvifK+cfPVAsDyBoxt5PcppbvFuVk6UvC15rbwG8tqIf
+NrGtrY0v2Cf2b3c5ESw0kgHLqe9TVO5cHhF79kd2LzuXI1uMc84pddPluGJpva5c
+AhQgsDyRFkxSgMFXlIEQCE0VRn4H3ZM4d6LOY27lANR6kXah6jcnBEsb6GWsPYiv
++1ojoRGfMtAlZhG+VGclagaR38Vx7R/YQ7GxNY/9vohTSvlQlGXpA0R3A8xF85pm
+KluVeBWd9bkBDQRcaQFmAQgAv8qTqUhaO4xaPxFr72ZRkbbXcI2QtPSfk94GHm8Z
+9rRnq1rm+HpB9bC6mihhdCbW5vnTZJWfLyv/YMUR17SgdepLk+UAwcaY9f2Vdh/p
+HGVoba9BKCvRjk6hKXyv+37e7Yj7UEMe8Dxs96ruyN5xqkVhBXMXSHVnSDbcFbrl
+MaWw1JamHlFu2qwsEZ4KFxaoGpzLGU4lQBGqRS8xTxIkwAUBOcjeNgiAYJWcjq1Y
+Uaxw+Kdd+Xt5N5PUIU5LrDmlIc+hMvlI0ohgVR3fUwYgFKBVcaK6BDzGIL2l2lCd
+9Cc6ENc1hU3BfjgtRuDnuS0X5CwPaYPGz/XrpdlWsNBZPQARAQABiQElBBgBAgAP
+BQJcaQFmAhsMBQkFo5qAAAoJEG/hnyFFHJorCswIAJazp09rViFZS9fWsoPdzEou
+VajXuVMtPy1dXR5K7w6yR6SMtgjKrW8qEnyeQ8p+8omjh4W27Wle5kCrk1iUEVaH
+lYB1XM9Pu0Iv97LDiKz9syuSn9SF7xjswxdcN9F+pq7Zg0mp0uLSK2dgelgFjdUG
+t3iLy5YQUDqlMUN89gnM+CXQZgvf5UgfJWhOcl7KwOJ/1+sJqLvDg2jjNMsh1g1H
+xdC8Ljap6FjTq8n8x4If4M/GFaKdhhJb3t4807xXLY8L+jE559o0KUreQw30pQUm
+RrjgF1gm/TUlX5W3jUtB7/Drlz/IMS2+Zes2/u3gOwONRnku7F7Qc22SgKhg6Lk=
+=lXx+
 -----END PGP PUBLIC KEY BLOCK-----

++++++ system-user-radvd.conf ++++++
# Type Name ID GECOS [HOME]
u radvd - "Router ADVertisement Daemon for IPv6" /var/lib/empty
# for compat with pre 15.2
m radvd daemon

Reply via email to