Hello community, here is the log from the commit of package wicked for openSUSE:Factory checked in at 2019-04-08 20:51:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wicked (Old) and /work/SRC/openSUSE:Factory/.wicked.new.3908 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wicked" Mon Apr 8 20:51:05 2019 rev:75 rq:691820 version:0.6.54 Changes: -------- --- /work/SRC/openSUSE:Factory/wicked/wicked.changes 2019-01-26 22:21:22.350906327 +0100 +++ /work/SRC/openSUSE:Factory/.wicked.new.3908/wicked.changes 2019-04-08 20:51:06.722461716 +0200 @@ -1,0 +2,11 @@ +Fri Apr 5 13:17:07 UTC 2019 - m...@suse.de + +- version 0.6.54 +- switch to use systemd notify and prevent event backlog at start + by calling udevadm settle before starting wickedd (bsc#1118206) +- dhcp6: don't discard confirm reply without status (bsc#1127340) +- ethtool: set lro legacy flag and not txvlan (bsc#1123555) +- init memory before use in ioctl +- fsm: fix find pending worker loop segfault (boo#1106809) + +------------------------------------------------------------------- Old: ---- wicked-0.6.53.tar.bz2 New: ---- wicked-0.6.54.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wicked.spec ++++++ --- /var/tmp/diff_new_pack.duuThA/_old 2019-04-08 20:51:07.386462202 +0200 +++ /var/tmp/diff_new_pack.duuThA/_new 2019-04-08 20:51:07.390462205 +0200 @@ -18,10 +18,10 @@ %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.53 +Version: 0.6.54 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure -License: GPL-2.0 +License: GPL-2.0-only Group: System/Management Url: https://github.com/openSUSE/wicked Source0: %{name}-%{version}.tar.bz2 @@ -83,6 +83,8 @@ %endif %if %{with systemd} +BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros %{?systemd_requires} %if 0%{?suse_version:1} Requires(pre): %fillup_prereq ++++++ wicked-0.6.53.tar.bz2 -> wicked-0.6.54.tar.bz2 ++++++ ++++ 25743 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/ChangeLog new/wicked-0.6.54/ChangeLog --- old/wicked-0.6.53/ChangeLog 2019-01-24 18:56:13.000000000 +0100 +++ new/wicked-0.6.54/ChangeLog 2019-04-05 15:26:43.000000000 +0200 @@ -1,3 +1,107 @@ +commit d4465ef03ab1d70e2e7fb292807e9152443ab5ca +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Apr 5 15:10:50 2019 +0200 + + version 0.6.54 + +commit d0c5848efed70bb34cb2c70bca0cf095c0711fc7 +Merge: 526989d1 6b1f8ed1 +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Apr 5 15:08:01 2019 +0200 + + Merge pull request #791 from mtomaschewski/bug-1118206-1 + + use systemd notify and prevent backlog at start by calling udevadm settle (bsc#1118206) + +commit 6b1f8ed18f254b3ba237ab0d9135c9a7b4892852 +Author: Rubén Torrero Marijnissen <rtorreromarijnis...@suse.com> +Date: Wed Mar 13 18:26:21 2019 +0000 + + systemd: ask udev to settle before wickedd runs + +commit 996051cab7ca9e27548b66cd94bfe27cb5045667 +Author: Marius Tomaschewski <m...@suse.de> +Date: Thu Mar 7 12:03:46 2019 +0100 + + systemd: remove bus-name from type=notify services + +commit 8a125d47a4e066e77cd560c8d814ac1495b2a0bb +Author: Marius Tomaschewski <m...@suse.de> +Date: Mon Mar 4 12:52:29 2019 +0100 + + daemons: change services to use systemd notify + +commit 33ea8d283584988e039d7f4ca3ba87b7c78828dd +Author: Marius Tomaschewski <m...@suse.de> +Date: Tue Mar 5 17:17:59 2019 +0100 + + rpm: add systemd-devel build requires to spec file + +commit d92f62fae954b8e33ae004c1eb22c9d832aa399b +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Feb 1 12:05:01 2019 +0100 + + fsm: do not process events while refreshing state + +commit c4fb741b6304beb8508f719bf7598a97978314ac +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Feb 1 12:15:26 2019 +0100 + + nanny: block event processing while init and start + +commit 19e388bd76c1c0e6ae442ab17e49d0a1277bb514 +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Feb 1 12:14:46 2019 +0100 + + fsm: expose methods to block and process events + +commit 46d43b9e8517b2f9427022de6c5cabf7e0be55d0 +Author: Marius Tomaschewski <m...@suse.de> +Date: Fri Feb 1 12:13:22 2019 +0100 + + nanny: background first, then init and start + +commit 33270b565c0caf27e2b377ed6dd31613343cdd53 +Author: Marius Tomaschewski <m...@suse.de> +Date: Tue Apr 2 14:44:10 2019 +0200 + + dhcp6: don't discard confirm reply without status (bsc#1127340) + +commit 0ad333f513982cbb05098db633bfe0fca81c958d +Author: Marius Tomaschewski <m...@suse.de> +Date: Mon Feb 18 14:39:03 2019 +0100 + + ethtool: set lro legacy flag and not txvlan + +commit a03519320080f3dcaaddf8abf170186bbddbdcd9 +Author: Paul Zirnik <paul.zir...@suse.com> +Date: Mon Feb 18 14:35:25 2019 +0100 + + ethtool: log correct legacy flag name on error + +commit 784dac00dab0155f23675a8f2c2d2fdcd4264e4a +Author: Clemens Famulla-Conrad <cfamullacon...@suse.de> +Date: Thu Feb 14 11:23:17 2019 +0100 + + Init memory before use in ioctl + + Pointed by valgrind. + +commit 2e3416835f0fe2d90682ce1186d755d3a19741c5 +Merge: b14f7753 9062a11c +Author: Rubén Torrero Marijnissen <rtorreromarijnis...@suse.com> +Date: Wed Jan 30 11:36:07 2019 +0000 + + Merge pull request #786 from mtomaschewski/rename-segfault + + fsm: fix find pending worker loop segfault (boo#1106809) + +commit 9062a11cd20d3e09d5525cb3db29f6aad0131afa +Author: Marius Tomaschewski <m...@suse.de> +Date: Wed Jan 30 12:25:05 2019 +0100 + + fsm: fix find pending worker loop segfault (boo#1106809) + commit b14f77532d7b83a37731eb1826779519bbf7b228 Author: Rubén Torrero Marijnissen <rtorreromarijnis...@suse.com> Date: Thu Jan 24 16:36:11 2019 +0000 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/VERSION new/wicked-0.6.54/VERSION --- old/wicked-0.6.53/VERSION 2019-01-24 17:50:43.000000000 +0100 +++ new/wicked-0.6.54/VERSION 2019-04-05 15:24:23.000000000 +0200 @@ -1 +1 @@ -0.6.53 +0.6.54 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/autoip4/Makefile.am new/wicked-0.6.54/autoip4/Makefile.am --- old/wicked-0.6.53/autoip4/Makefile.am 2015-10-05 19:14:29.000000000 +0200 +++ new/wicked-0.6.54/autoip4/Makefile.am 2019-04-05 15:22:33.000000000 +0200 @@ -10,17 +10,19 @@ wickedd_auto4_CFLAGS = $(LIBNL_CFLAGS) \ $(LIBDBUS_CFLAGS) \ - $(LIBGCRYPT_CFLAGS) + $(LIBGCRYPT_CFLAGS) \ + $(LIBSYSTEMD_CFLAGS) -wickedd_auto4_LDFLAGS = -rdynamic -wickedd_auto4_LDADD = $(top_builddir)/src/libwicked.la -wickedd_auto4_SOURCES = \ - dbus-api.c \ - device.c \ - fsm.c \ +wickedd_auto4_LDFLAGS = -rdynamic \ + $(LIBSYSTEMD_LIBS) +wickedd_auto4_LDADD = $(top_builddir)/src/libwicked.la +wickedd_auto4_SOURCES = \ + dbus-api.c \ + device.c \ + fsm.c \ main.c -noinst_HEADERS = \ +noinst_HEADERS = \ autoip.h # vim: ai diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/autoip4/main.c new/wicked-0.6.54/autoip4/main.c --- old/wicked-0.6.53/autoip4/main.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/autoip4/main.c 2019-04-05 15:22:33.000000000 +0200 @@ -17,6 +17,9 @@ #include <getopt.h> #include <errno.h> #include <net/if_arp.h> +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +#include <systemd/sd-daemon.h> +#endif #include <wicked/netinfo.h> #include <wicked/addrconf.h> @@ -429,6 +432,12 @@ ni_fatal("unable to background server"); } +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (opt_systemd) { + sd_notify(0, "READY=1"); + } +#endif + while (!ni_caught_terminal_signal()) { long timeout; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/compile new/wicked-0.6.54/compile --- old/wicked-0.6.53/compile 1970-01-01 01:00:00.000000000 +0100 +++ new/wicked-0.6.54/compile 2019-04-05 15:26:36.000000000 +0200 @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Written by Tom Tromey <tro...@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-autom...@gnu.org> or send patches to +# <automake-patc...@gnu.org>. + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to <bug-autom...@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/config.h.in new/wicked-0.6.54/config.h.in --- old/wicked-0.6.53/config.h.in 2019-01-24 18:55:11.000000000 +0100 +++ new/wicked-0.6.54/config.h.in 2019-04-05 15:26:35.000000000 +0200 @@ -149,6 +149,9 @@ /* Define to 1 if you have the <syslog.h> header file. */ #undef HAVE_SYSLOG_H +/* Define to 1 if you have the <systemd/sd-daemon.h> header file. */ +#undef HAVE_SYSTEMD_SD_DAEMON_H + /* Define to 1 if you have the <sys/ioctl.h> header file. */ #undef HAVE_SYS_IOCTL_H @@ -182,8 +185,7 @@ /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Enable to use rfc4361 DHCPv4 client-id by default */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/configure.ac new/wicked-0.6.54/configure.ac --- old/wicked-0.6.53/configure.ac 2019-01-24 17:32:33.000000000 +0100 +++ new/wicked-0.6.54/configure.ac 2019-04-05 15:22:33.000000000 +0200 @@ -261,6 +261,12 @@ PKG_CHECK_MODULES(LIBNL, [libnl-3.0 libnl-route-3.0]) PKG_CHECK_MODULES(LIBDBUS, [dbus-1]) +# Check for systemd modules. +if test "X$enable_systemd" = Xyes; then + PKG_CHECK_MODULES(LIBSYSTEMD, [libsystemd]) + AC_CHECK_HEADERS([systemd/sd-daemon.h],[],[AC_MSG_ERROR([Cannot find sd-daemon.h header file])]) +fi + # Checks for header files. AC_CHECK_HEADER([iwlib.h],[],[AC_MSG_ERROR([Please install libiw-devel to get wireless.h])]) AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h netinet/in.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/dhcp4/Makefile.am new/wicked-0.6.54/dhcp4/Makefile.am --- old/wicked-0.6.53/dhcp4/Makefile.am 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/dhcp4/Makefile.am 2019-04-05 15:22:33.000000000 +0200 @@ -10,12 +10,14 @@ wickedd_dhcp4_CFLAGS = $(LIBNL_CFLAGS) \ $(LIBDBUS_CFLAGS) \ - $(LIBGCRYPT_CFLAGS) + $(LIBGCRYPT_CFLAGS) \ + $(LIBSYSTEMD_CFLAGS) -wickedd_dhcp4_LDFLAGS = -rdynamic -wickedd_dhcp4_LDADD = $(top_builddir)/src/libwicked.la -wickedd_dhcp4_SOURCES = \ - dbus-api.c \ +wickedd_dhcp4_LDFLAGS = -rdynamic \ + $(LIBSYSTEMD_LIBS) +wickedd_dhcp4_LDADD = $(top_builddir)/src/libwicked.la +wickedd_dhcp4_SOURCES = \ + dbus-api.c \ main.c # vim: ai diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/dhcp4/main.c new/wicked-0.6.54/dhcp4/main.c --- old/wicked-0.6.53/dhcp4/main.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/dhcp4/main.c 2019-04-05 15:22:33.000000000 +0200 @@ -16,6 +16,9 @@ #include <limits.h> #include <errno.h> #include <net/if_arp.h> +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +#include <systemd/sd-daemon.h> +#endif #include <wicked/types.h> #include <wicked/logging.h> @@ -482,6 +485,12 @@ if (opt_recover_state) dhcp4_recover_state(opt_state_file); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (opt_systemd) { + sd_notify(0, "READY=1"); + } +#endif + while (!ni_caught_terminal_signal()) { long timeout; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/dhcp6/Makefile.am new/wicked-0.6.54/dhcp6/Makefile.am --- old/wicked-0.6.53/dhcp6/Makefile.am 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/dhcp6/Makefile.am 2019-04-05 15:22:33.000000000 +0200 @@ -10,15 +10,17 @@ wickedd_dhcp6_CFLAGS = $(LIBNL_CFLAGS) \ $(LIBDBUS_CFLAGS) \ - $(LIBGCRYPT_CFLAGS) + $(LIBGCRYPT_CFLAGS) \ + $(LIBSYSTEMD_CFLAGS) -wickedd_dhcp6_LDFLAGS = -rdynamic -wickedd_dhcp6_LDADD = $(top_builddir)/src/libwicked.la -wickedd_dhcp6_SOURCES = \ - dbus-api.c \ +wickedd_dhcp6_LDFLAGS = -rdynamic \ + $(LIBSYSTEMD_LIBS) +wickedd_dhcp6_LDADD = $(top_builddir)/src/libwicked.la +wickedd_dhcp6_SOURCES = \ + dbus-api.c \ main.c -noinst_HEADERS = \ +noinst_HEADERS = \ dbus-api.h # vim: ai diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/dhcp6/main.c new/wicked-0.6.54/dhcp6/main.c --- old/wicked-0.6.53/dhcp6/main.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/dhcp6/main.c 2019-04-05 15:22:33.000000000 +0200 @@ -33,6 +33,9 @@ #include <limits.h> #include <errno.h> #include <net/if_arp.h> +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +#include <systemd/sd-daemon.h> +#endif #include <wicked/types.h> #include <wicked/logging.h> @@ -458,6 +461,12 @@ if (opt_recover_state) dhcp6_recover_state(opt_state_file); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (opt_systemd) { + sd_notify(0, "READY=1"); + } +#endif + while (!ni_caught_terminal_signal()) { long timeout; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/etc/systemd/wickedd-auto4.service.in new/wicked-0.6.54/etc/systemd/wickedd-auto4.service.in --- old/wicked-0.6.53/etc/systemd/wickedd-auto4.service.in 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/etc/systemd/wickedd-auto4.service.in 2019-04-05 15:22:33.000000000 +0200 @@ -6,8 +6,7 @@ PartOf=wickedd.service [Service] -Type=dbus -BusName=org.opensuse.Network.AUTO4 +Type=notify LimitCORE=infinity EnvironmentFile=-/etc/sysconfig/network/config ExecStart=@wicked_supplicantdir@/wickedd-auto4 --systemd --foreground diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/etc/systemd/wickedd-dhcp4.service.in new/wicked-0.6.54/etc/systemd/wickedd-dhcp4.service.in --- old/wicked-0.6.53/etc/systemd/wickedd-dhcp4.service.in 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/etc/systemd/wickedd-dhcp4.service.in 2019-04-05 15:22:33.000000000 +0200 @@ -6,8 +6,7 @@ PartOf=wickedd.service [Service] -Type=dbus -BusName=org.opensuse.Network.DHCP4 +Type=notify LimitCORE=infinity EnvironmentFile=-/etc/sysconfig/network/config ExecStart=@wicked_supplicantdir@/wickedd-dhcp4 --systemd --foreground diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/etc/systemd/wickedd-dhcp6.service.in new/wicked-0.6.54/etc/systemd/wickedd-dhcp6.service.in --- old/wicked-0.6.53/etc/systemd/wickedd-dhcp6.service.in 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/etc/systemd/wickedd-dhcp6.service.in 2019-04-05 15:22:33.000000000 +0200 @@ -6,8 +6,7 @@ PartOf=wickedd.service [Service] -Type=dbus -BusName=org.opensuse.Network.DHCP6 +Type=notify LimitCORE=infinity EnvironmentFile=-/etc/sysconfig/network/config ExecStart=@wicked_supplicantdir@/wickedd-dhcp6 --systemd --foreground diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/etc/systemd/wickedd-nanny.service.in new/wicked-0.6.54/etc/systemd/wickedd-nanny.service.in --- old/wicked-0.6.53/etc/systemd/wickedd-nanny.service.in 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/etc/systemd/wickedd-nanny.service.in 2019-04-05 15:22:33.000000000 +0200 @@ -6,8 +6,7 @@ PartOf=wickedd.service [Service] -Type=dbus -BusName=org.opensuse.Network.Nanny +Type=notify LimitCORE=infinity EnvironmentFile=-/etc/sysconfig/network/config ExecStart=@wicked_sbindir@/wickedd-nanny --systemd --foreground diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/etc/systemd/wickedd.service.in new/wicked-0.6.54/etc/systemd/wickedd.service.in --- old/wicked-0.6.53/etc/systemd/wickedd.service.in 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/etc/systemd/wickedd.service.in 2019-04-05 15:22:33.000000000 +0200 @@ -6,10 +6,10 @@ Before=wickedd-nanny.service wicked.service network.target [Service] -Type=dbus -BusName=org.opensuse.Network +Type=notify LimitCORE=infinity EnvironmentFile=-/etc/sysconfig/network/config +ExecStartPre=-/usr/bin/udevadm settle ExecStart=@wicked_sbindir@/wickedd --systemd --foreground StandardError=null Restart=on-abort diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/include/wicked/fsm.h new/wicked-0.6.54/include/wicked/fsm.h --- old/wicked-0.6.53/include/wicked/fsm.h 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/include/wicked/fsm.h 2019-04-05 15:22:33.000000000 +0200 @@ -280,6 +280,10 @@ extern ni_fsm_t * ni_fsm_new(void); extern void ni_fsm_free(ni_fsm_t *); +extern void ni_fsm_events_block(ni_fsm_t *); +extern void ni_fsm_process_events(ni_fsm_t *); +extern void ni_fsm_events_unblock(ni_fsm_t *); + extern ni_fsm_policy_t * ni_fsm_policy_new(ni_fsm_t *, const char *, xml_node_t *); extern ni_fsm_policy_t * ni_fsm_policy_ref(ni_fsm_policy_t *); extern void ni_fsm_policy_free(ni_fsm_policy_t *); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/missing new/wicked-0.6.54/missing --- old/wicked-0.6.53/missing 2019-01-24 18:55:12.000000000 +0100 +++ new/wicked-0.6.54/missing 2019-04-05 15:26:36.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-06-26.16; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -160,7 +160,7 @@ ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." + echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) @@ -210,6 +210,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/nanny/Makefile.am new/wicked-0.6.54/nanny/Makefile.am --- old/wicked-0.6.53/nanny/Makefile.am 2015-10-05 19:14:29.000000000 +0200 +++ new/wicked-0.6.54/nanny/Makefile.am 2019-04-05 15:22:33.000000000 +0200 @@ -10,19 +10,21 @@ wickedd_nanny_CFLAGS = $(LIBNL_CFLAGS) \ $(LIBDBUS_CFLAGS) \ - $(LIBGCRYPT_CFLAGS) + $(LIBGCRYPT_CFLAGS) \ + $(LIBSYSTEMD_CFLAGS) -wickedd_nanny_LDFLAGS = -rdynamic +wickedd_nanny_LDFLAGS = -rdynamic \ + $(LIBSYSTEMD_LIBS) wickedd_nanny_LDADD = $(top_builddir)/src/libwicked.la wickedd_nanny_SOURCES = \ - device.c \ - interface.c \ - main.c \ - modem.c \ - nanny.c \ + device.c \ + interface.c \ + main.c \ + modem.c \ + nanny.c \ policy.c -noinst_HEADERS = \ +noinst_HEADERS = \ nanny.h # vim: ai diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/nanny/main.c new/wicked-0.6.54/nanny/main.c --- old/wicked-0.6.53/nanny/main.c 2016-02-15 12:47:42.000000000 +0100 +++ new/wicked-0.6.54/nanny/main.c 2019-04-05 15:22:33.000000000 +0200 @@ -17,6 +17,9 @@ #include <getopt.h> #include <limits.h> #include <errno.h> +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +#include <systemd/sd-daemon.h> +#endif #include <wicked/netinfo.h> #include <wicked/addrconf.h> @@ -259,8 +262,6 @@ if (ni_init_ex("nanny", ni_nanny_config_callback, mgr) < 0) ni_fatal("error in configuration file"); - ni_nanny_start(mgr); - if (!opt_foreground) { ni_daemon_close_t close_flags = NI_DAEMON_CLOSE_STD; @@ -271,6 +272,8 @@ ni_fatal("unable to background server"); } + ni_nanny_start(mgr); + if (ni_config_use_nanny()) { ni_rfkill_open(handle_rfkill_event, mgr); ni_nanny_discover_state(mgr); @@ -279,6 +282,12 @@ else ni_file_remove_recursively(ni_nanny_statedir()); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (opt_systemd) { + sd_notify(0, "READY=1"); + } +#endif + while (!ni_caught_terminal_signal()) { long timeout = NI_IFWORKER_INFINITE_TIMEOUT; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/nanny/nanny.c new/wicked-0.6.54/nanny/nanny.c --- old/wicked-0.6.53/nanny/nanny.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/nanny/nanny.c 2019-04-05 15:22:33.000000000 +0200 @@ -93,6 +93,7 @@ mgr->fsm = ni_fsm_new(); mgr->fsm->worker_timeout = NI_IFWORKER_INFINITE_TIMEOUT; + ni_fsm_events_block(mgr->fsm); ni_fsm_set_user_prompt_fn(mgr->fsm, ni_nanny_prompt, mgr); ni_fsm_set_process_event_callback(mgr->fsm, ni_nanny_process_fsm_event, mgr); @@ -117,6 +118,7 @@ if (!ni_fsm_create_client(mgr->fsm)) ni_fatal("Unable to create FSM client"); } + ni_fsm_events_unblock(mgr->fsm); } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/server/Makefile.am new/wicked-0.6.54/server/Makefile.am --- old/wicked-0.6.53/server/Makefile.am 2015-10-05 19:14:29.000000000 +0200 +++ new/wicked-0.6.54/server/Makefile.am 2019-04-05 15:22:33.000000000 +0200 @@ -10,9 +10,11 @@ wickedd_CFLAGS = $(LIBNL_CFLAGS) \ $(LIBDBUS_CFLAGS) \ - $(LIBGCRYPT_CFLAGS) + $(LIBGCRYPT_CFLAGS) \ + $(LIBSYSTEMD_CFLAGS) -wickedd_LDFLAGS = -rdynamic +wickedd_LDFLAGS = -rdynamic \ + $(LIBSYSTEMD_LIBS) wickedd_LDADD = $(top_builddir)/src/libwicked.la wickedd_SOURCES = \ main.c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/server/main.c new/wicked-0.6.54/server/main.c --- old/wicked-0.6.53/server/main.c 2018-11-16 13:26:34.000000000 +0100 +++ new/wicked-0.6.54/server/main.c 2019-04-05 15:22:33.000000000 +0200 @@ -19,6 +19,9 @@ #include <getopt.h> #include <limits.h> #include <errno.h> +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +#include <systemd/sd-daemon.h> +#endif #include <wicked/netinfo.h> #include <wicked/addrconf.h> @@ -279,6 +282,12 @@ if (opt_recover_state) recover_state(opt_state_file); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (opt_systemd) { + sd_notify(0, "READY=1"); + } +#endif + while (!ni_caught_terminal_signal()) { long timeout; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/src/dhcp6/fsm.c new/wicked-0.6.54/src/dhcp6/fsm.c --- old/wicked-0.6.53/src/dhcp6/fsm.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/src/dhcp6/fsm.c 2019-04-05 15:22:33.000000000 +0200 @@ -768,6 +768,98 @@ return rv; } +static const ni_dhcp6_ia_addr_t * +ni_fsm_confirm_process_find_ia_addrs_status(const ni_dhcp6_ia_addr_t *addrs, unsigned int status) +{ + const ni_dhcp6_ia_addr_t *iaddr; + + for (iaddr = addrs; iaddr; iaddr = iaddr->next) { + if (ni_dhcp6_status_code(&iaddr->status) == status) + return iaddr; + } + return NULL; +} + +static const ni_dhcp6_ia_t * +ni_fsm_confirm_process_find_ia_status(const ni_dhcp6_ia_t *ia_list, unsigned int status, + const ni_dhcp6_ia_addr_t **iaddr) +{ + const ni_dhcp6_ia_t *ia; + + for (ia = ia_list; ia; ia = ia->next) { + if ((*iaddr = ni_fsm_confirm_process_find_ia_addrs_status(ia->addrs, status))) + return ia; + else if (ni_dhcp6_status_code(&ia->status) == status) + return ia; + } + return NULL; +} + +static int +ni_fsm_confirm_process_reply_status(ni_dhcp6_device_t *dev, const ni_addrconf_lease_t *lease, char **hint) +{ + const ni_dhcp6_ia_addr_t *iaddr = NULL; + const ni_dhcp6_status_t *status; + const ni_dhcp6_ia_t *ia; + const char *message; + + if ((ia = ni_fsm_confirm_process_find_ia_status(lease->dhcp6.ia_list, NI_DHCP6_STATUS_NOTONLINK, &iaddr))) { + status = iaddr ? &iaddr->status : &ia->status; + message = ni_dhcp6_status_message(status); + + ni_note("%s: link change confirmation in reply with status %s", dev->ifname, + message ? message : ni_dhcp6_status_name(status->code)); + + return NI_DHCP6_STATUS_NOTONLINK; + } else if (ni_dhcp6_status_code(lease->dhcp6.status) == NI_DHCP6_STATUS_NOTONLINK) { + status = lease->dhcp6.status; + message = ni_dhcp6_status_message(status); + + ni_note("%s: link change confirmation in reply with status %s", dev->ifname, + message ? message : ni_dhcp6_status_name(status->code)); + return NI_DHCP6_STATUS_NOTONLINK; + } + + if (ni_fsm_confirm_process_find_ia_status(lease->dhcp6.ia_list, NI_DHCP6_STATUS_FAILURE, &iaddr)) { + status = iaddr ? &iaddr->status : &ia->status; + message = ni_dhcp6_status_message(status); + + ni_string_printf(hint, "link confirmation failure from server with status %s", + message ? message : ni_dhcp6_status_name(status->code)); + return NI_DHCP6_STATUS_FAILURE; + } else if (ni_dhcp6_status_code(lease->dhcp6.status) == NI_DHCP6_STATUS_FAILURE) { + status = lease->dhcp6.status; + message = ni_dhcp6_status_message(status); + + ni_string_printf(hint, "link confirmation failure from server with status %s", + message ? message : ni_dhcp6_status_name(status->code)); + return NI_DHCP6_STATUS_FAILURE; + } + + if (ni_fsm_confirm_process_find_ia_status(lease->dhcp6.ia_list, NI_DHCP6_STATUS_SUCCESS, &iaddr)) { + status = iaddr ? &iaddr->status : &ia->status; + message = ni_dhcp6_status_message(status); + + ni_note("%s: link confirmation in reply with status %s", dev->ifname, + message ? message : ni_dhcp6_status_name(status->code)); + } else if (ni_dhcp6_status_code(lease->dhcp6.status) == NI_DHCP6_STATUS_SUCCESS) { + status = lease->dhcp6.status; + message = ni_dhcp6_status_message(status); + + ni_note("%s: link confirmation in reply with status %s", dev->ifname, + message ? message : ni_dhcp6_status_name(status->code)); + } else { + status = lease->dhcp6.status; + message = ni_dhcp6_status_message(status); + if (!message) + message = ni_dhcp6_status_name(ni_dhcp6_status_code(status)); + + ni_note("%s: link confirmation reply without link change indication from server%s%s", + dev->ifname, message ? " with status " : "", message ? message : ""); + } + return NI_DHCP6_STATUS_SUCCESS; +} + static int __fsm_confirm_process_msg(ni_dhcp6_device_t *dev, struct ni_dhcp6_message *msg, ni_buffer_t *opts, char **hint) { @@ -780,58 +872,53 @@ /* * http://tools.ietf.org/html/rfc3315#section-18.1.8 * "[...] + * If the client receives a Reply message with a Status Code containing + * UnspecFail, the server is indicating that it was unable to process + * the message due to an unspecified failure condition. If the client + * retransmits [...] client MUST limit the rate [..] and [..] duration + * [...] * When the client receives a NotOnLink status from the server in * response to a Confirm message, the client performs DHCP server * solicitation, as described in section 17, and client-initiated * configuration as described in section 18. If the client receives * any Reply messages that do not indicate a NotOnLink status, the * client can use the addresses in the IA and ignore any messages - * that indicate a NotOnLink status.[...]" + * that indicate a NotOnLink status. + * [...]" */ if (!dev->lease) { ni_string_printf(hint, "confirm reply without a lease?!"); goto cleanup; } - - if (msg->lease->dhcp6.status == NULL) { - ni_string_printf(hint, "confirm reply without status"); - goto cleanup; - } else - if (msg->lease->dhcp6.status->code == NI_DHCP6_STATUS_NOTONLINK) { - ni_note("%s: link change confirmation in reply with status %s - %s", - dev->ifname, - ni_dhcp6_status_name(msg->lease->dhcp6.status->code), - msg->lease->dhcp6.status->message); - + switch (ni_fsm_confirm_process_reply_status(dev, msg->lease, hint)) { + case NI_DHCP6_STATUS_NOTONLINK: + /* NotOnLink: confirmation that link changed ==>> re-solicit */ ni_dhcp6_fsm_reset(dev); ni_dhcp6_device_drop_lease(dev); ni_dhcp6_fsm_solicit(dev); rv = 0; goto cleanup; - } else - if (msg->lease->dhcp6.status->code != NI_DHCP6_STATUS_SUCCESS) { - ni_debug_dhcp("%s: no link change indication in reply with status %s - %s", - dev->ifname, - ni_dhcp6_status_name(msg->lease->dhcp6.status->code), - msg->lease->dhcp6.status->message); - } else { - ni_note("%s: link confirmed in reply with status %s - %s", - dev->ifname, - ni_dhcp6_status_name(msg->lease->dhcp6.status->code), - msg->lease->dhcp6.status->message); - } - ni_dhcp6_fsm_reset(dev); - ni_address_list_destroy(&dev->lease->addrs); - if (ni_dhcp6_ia_copy_to_lease_addrs(dev, dev->lease)) { - ni_dhcp6_fsm_commit_lease(dev, dev->lease); - } else { - /* expired in the meantime */ - ni_dhcp6_fsm_solicit(dev); - } + case NI_DHCP6_STATUS_FAILURE: + /* UnspecFail: rate/duration already limitted, ignore & go on */ + goto cleanup; - rv = 0; + case NI_DHCP6_STATUS_SUCCESS: + /* Success: explicit confirmation that link did not changed */ + default: + /* Any another failures do not signal link change (NotOnLink) */ + ni_dhcp6_fsm_reset(dev); + ni_address_list_destroy(&dev->lease->addrs); + if (ni_dhcp6_ia_copy_to_lease_addrs(dev, dev->lease)) { + ni_dhcp6_fsm_commit_lease(dev, dev->lease); + } else { + /* expired in the meantime */ + ni_dhcp6_fsm_solicit(dev); + } + rv = 0; + goto cleanup; + } break; default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/src/ethtool.c new/wicked-0.6.54/src/ethtool.c --- old/wicked-0.6.53/src/ethtool.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/src/ethtool.c 2019-04-05 15:22:33.000000000 +0200 @@ -2618,7 +2618,7 @@ ret = ni_ethtool_set_value(ref, ethtool, NI_ETHTOOL_SUPP_SET_LEGACY_FLAGS, - &NI_ETHTOOL_CMD_SFLAGS, "lro", value); + &NI_ETHTOOL_CMD_SFLAGS, name, value); } return ret; } @@ -2727,7 +2727,7 @@ "%s: ethtool request to set feature '%s' to %s", ref->name, feature->map.name, value ? "on" : "off"); ni_ethtool_set_legacy_flag_bit(ref, ethtool, "lro", - ETH_FLAG_TXVLAN, value); + ETH_FLAG_LRO, value); break; case NI_ETHTOOL_FEATURE_F_LEGACY_HW_VLAN_CTAG_TX: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/src/fsm.c new/wicked-0.6.54/src/fsm.c --- old/wicked-0.6.53/src/fsm.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/src/fsm.c 2019-04-05 15:22:33.000000000 +0200 @@ -68,10 +68,7 @@ static inline void ni_ifworker_update_client_state_config(ni_ifworker_t *w); static void ni_ifworker_update_client_state_scripts(ni_ifworker_t *w); static void ni_fsm_events_destroy(ni_fsm_event_t **); -static inline void ni_fsm_events_block(ni_fsm_t *); -static inline void ni_fsm_events_unblock(ni_fsm_t *); static void ni_fsm_process_event(ni_fsm_t *, ni_fsm_event_t *); -static void ni_fsm_process_events(ni_fsm_t *); ni_fsm_t * @@ -161,7 +158,7 @@ } } -static inline void +void ni_fsm_events_block(ni_fsm_t *fsm) { ni_debug_verbose(NI_LOG_DEBUG3, NI_TRACE_EVENTS, "block fsm events %u -> %u", @@ -169,7 +166,7 @@ fsm->block_events++; } -static inline void +void ni_fsm_events_unblock(ni_fsm_t *fsm) { ni_debug_verbose(NI_LOG_DEBUG3, NI_TRACE_EVENTS, "unblock fsm events %u -> %u", @@ -178,7 +175,7 @@ fsm->block_events--; } -static void +void ni_fsm_process_events(ni_fsm_t *fsm) { ni_fsm_event_t *ev; @@ -3918,6 +3915,7 @@ ni_ifworker_t *w; unsigned int i; + ni_fsm_events_block(fsm); for (i = 0; i < fsm->workers.count; ++i) { w = fsm->workers.data[i]; @@ -3952,6 +3950,7 @@ if (w->object != NULL) ni_ifworker_update_state(w, NI_FSM_STATE_DEVICE_EXISTS, __NI_FSM_STATE_MAX); } + ni_fsm_events_unblock(fsm); return TRUE; } @@ -5571,7 +5570,7 @@ ni_ifworker_t *c; unsigned int i; - for (i = 0; fsm->workers.count; ++i) { + for (i = 0; i < fsm->workers.count; ++i) { c = fsm->workers.data[i]; if (!c || c == w || c->type != w->type || c->device) continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/src/kernel.c new/wicked-0.6.54/src/kernel.c --- old/wicked-0.6.53/src/kernel.c 2018-11-16 13:26:09.000000000 +0100 +++ new/wicked-0.6.54/src/kernel.c 2019-04-05 15:22:33.000000000 +0200 @@ -98,6 +98,7 @@ { struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, ifname, IFNAMSIZ); ((struct ethtool_cmd *) data)->cmd = cmd; ifr.ifr_data = data; @@ -116,6 +117,7 @@ { struct iwreq iwr; + memset(&iwr, 0, sizeof(iwr)); strncpy(iwr.ifr_name, dev->name, IFNAMSIZ); iwr.u.data.pointer = data; iwr.u.data.length = data_len; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/wicked.spec new/wicked-0.6.54/wicked.spec --- old/wicked-0.6.53/wicked.spec 2019-01-24 18:55:18.000000000 +0100 +++ new/wicked-0.6.54/wicked.spec 2019-04-05 15:26:41.000000000 +0200 @@ -18,7 +18,7 @@ %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.53 +Version: 0.6.54 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure License: GPL-2.0 @@ -83,6 +83,8 @@ %endif %if %{with systemd} +BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros %{?systemd_requires} %if 0%{?suse_version:1} Requires(pre): %fillup_prereq diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/wicked-0.6.53/wicked.spec.in new/wicked-0.6.54/wicked.spec.in --- old/wicked-0.6.53/wicked.spec.in 2018-11-16 13:43:16.000000000 +0100 +++ new/wicked-0.6.54/wicked.spec.in 2019-04-05 15:22:33.000000000 +0200 @@ -83,6 +83,8 @@ %endif %if %{with systemd} +BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros %{?systemd_requires} %if 0%{?suse_version:1} Requires(pre): %fillup_prereq