Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package NetworkManager-l2tp for openSUSE:Factory checked in at 2023-01-07 17:16:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/NetworkManager-l2tp (Old) and /work/SRC/openSUSE:Factory/.NetworkManager-l2tp.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "NetworkManager-l2tp" Sat Jan 7 17:16:01 2023 rev:13 rq:1056305 version:1.20.8 Changes: -------- --- /work/SRC/openSUSE:Factory/NetworkManager-l2tp/NetworkManager-l2tp.changes 2022-11-15 13:21:02.984684380 +0100 +++ /work/SRC/openSUSE:Factory/.NetworkManager-l2tp.new.1563/NetworkManager-l2tp.changes 2023-01-07 17:16:17.552931116 +0100 @@ -1,0 +2,14 @@ +Wed Jan 4 11:16:10 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- Update to version 1.20.8: + + Fix padding of PPP Options dialog. + + Undo PTP peer & ext GW routing prevention workaround first + introduced with NetworkManager-l2tp 1.8.4 as workaround no + longer works with NetworkManager 1.36. The actual fix should + be done in NetworkManager. + + Add support for Manual IPv4 configuration options: Address, + Netmask and Gateway. + + Remove deprecated OpenSSL 3 related code. + + Load L2TP kernel modules if NM_L2TP_MODPROBE env variable set. + +------------------------------------------------------------------- @@ -5,3 +19,3 @@ - * Fix for Libreswan 4.9 and later detection. - * Fix for ipsec-psk-flags setting not being saved. - * Add getenv NM_L2TP_XL2TPD_MAX_RETRIES to allow setting the + + Fix for Libreswan 4.9 and later detection. + + Fix for ipsec-psk-flags setting not being saved. + + Add getenv NM_L2TP_XL2TPD_MAX_RETRIES to allow setting the @@ -9 +23 @@ - * Increase IPsec and L2TP daemon wait timeouts for potentially + + Increase IPsec and L2TP daemon wait timeouts for potentially @@ -11 +25 @@ - * Updated translations. + + Updated translations. @@ -13 +27 @@ - * Security fix - properly detect that strongswan CHILD_SA + + Security fix - properly detect that strongswan CHILD_SA @@ -15 +29 @@ - * Fix for libreswan "cannot route template policy" error. + + Fix for libreswan "cannot route template policy" error. @@ -21,2 +35 @@ -- Changes from version 1.20.0: - * Gtk4 version of the editor plugin is now available (for use + + Gtk4 version of the editor plugin is now available (for use @@ -24 +37 @@ - * Updated translations. + + Updated translations. @@ -35,8 +48,7 @@ -- Changes from version 1.8.6: - * Support for kl2tpd from Katalix's go-l2tp project added. - * Support for Multilink PPP added. - * L2TP ephemeral source port checkbox added. - * Honors $CHARONDEBUG and $PLUTODEBUG even without --debug - * intltool for i18n builds no longer required. - * deprecated libnm-glib/libnm-util code removed. - * Updated translations. + + Support for kl2tpd from Katalix's go-l2tp project added. + + Support for Multilink PPP added. + + L2TP ephemeral source port checkbox added. + + Honors $CHARONDEBUG and $PLUTODEBUG even without --debug + + intltool for i18n builds no longer required. + + deprecated libnm-glib/libnm-util code removed. + + Updated translations. @@ -51,2 +63 @@ -- Changes from version 1.8.4: - * Fix for make check warning that prevented RPMs from being + + Fix for make check warning that prevented RPMs from being @@ -55,2 +66 @@ - * Updated translations. - * Update strings for new dialog design in gnome-shell. + + Update strings for new dialog design in gnome-shell. @@ -58,3 +68,3 @@ - * Use /usr/share/metainfo for AppData files. - * Move D-Bus policy file to /usr/share/dbus-1/system.d/. - * Add --with-nm-ipsec-nss-dir configure switch for Libreswan NSS + + Use /usr/share/metainfo for AppData files. + + Move D-Bus policy file to /usr/share/dbus-1/system.d/. + + Add --with-nm-ipsec-nss-dir configure switch for Libreswan NSS @@ -62,7 +72,5 @@ - * Do not add broken route to VPN gateway IP address. - * Add back import/export capability. - * update default PPPD_PLUGIN_DIR to ${libdir}/pppd/2.4.8. - * Fix for user certificate password flags for connection editor. - - Changes from version 1.8.0: - * Fixes for user certificate support. - * Provide --enable-libreswan-dh2 configure switch for older + + Do not add broken route to VPN gateway IP address. + + Add back import/export capability. + + Fix for user certificate password flags for connection editor. + + Fixes for user certificate support. + + Provide --enable-libreswan-dh2 configure switch for older @@ -70 +78,3 @@ - * KDE plasma-nm compatibility for "Gateway ID". + + KDE plasma-nm compatibility for "Gateway ID". + + Updated translations. +- Update default PPPD_PLUGIN_DIR to %{_libdir}/pppd/2.4.8. @@ -90,4 +100,4 @@ - * User and machine TLS certificate support. - * New dependency on OpenSSL's libcrypto (>= 1.1.0). - * New dependency on Network Security Services (NSS) libraries. - * Routines to auto detect the TLS certificate and private key + + User and machine TLS certificate support. + + New dependency on OpenSSL's libcrypto (>= 1.1.0). + + New dependency on Network Security Services (NSS) libraries. + + Routines to auto detect the TLS certificate and private key @@ -98 +108 @@ - * Routines to import certificates and privates keys into a + + Routines to import certificates and privates keys into a @@ -100 +110 @@ - * Grey out the auth type selection for user authentication if + + Grey out the auth type selection for user authentication if @@ -103,7 +113 @@ - * Updated translations. -- Changes from version 1.2.10: - * Updated translations. - * Remove "Prevalent Algorithms" button, override default - algorithms. The phase 1 & 2 proposals previously provided by - the Prevalent Algorithms button are now the new defaults for - the IKEv1 proposals. + + Updated translations. @@ -116,2 +120,2 @@ - * Changed Legacy Proposal button to Prevalent Algorithms button. - * Prevalent Algorithms button populates Phase 1 and 2 Algorithm + + Changed Legacy Proposal button to Prevalent Algorithms button. + + Prevalent Algorithms button populates Phase 1 and 2 Algorithm @@ -120,2 +124,2 @@ - * Added use IKEv2 key exchange option. - * Improved debugging output for Libreswan and strongSwan. + + Added use IKEv2 key exchange option. + + Improved debugging output for Libreswan and strongSwan. @@ -126 +130 @@ - * Gray out "IPsec Settings..." button if neither Libreswan nor + + Gray out "IPsec Settings..." button if neither Libreswan nor @@ -128 +132 @@ - * Updated translations. + + Updated translations. @@ -134,5 +138,4 @@ - * Updated translations. - * Added Legacy Proposal button. - * Added extra IPsec configuration options. - * renamed Gateway ID to Remote ID. - * Use /etc/ipsec.d/ipsec.nm-l2tp.secrets instead of + + Added Legacy Proposal button. + + Added extra IPsec configuration options. + + renamed Gateway ID to Remote ID. + + Use /etc/ipsec.d/ipsec.nm-l2tp.secrets instead of @@ -140,3 +143,3 @@ - * PSK is now Base64 encoded. - * Legacy KDE Plasma-nm user certificate support. - * libnm-glib compatibility (NetworkManager < 1.0) is disabled by + + PSK is now Base64 encoded. + + Legacy KDE Plasma-nm user certificate support. + + libnm-glib compatibility (NetworkManager < 1.0) is disabled by @@ -143,0 +147 @@ + + Updated translations. @@ -145 +149 @@ - * Point version 1.2.10 appdata image URIs to nm-1-2 github + + Point version 1.2.10 appdata image URIs to nm-1-2 github @@ -147 +151 @@ - * Corrected force UDP encapsulation toggle button behavior. + + Corrected force UDP encapsulation toggle button behavior. @@ -149 +153 @@ - project being renamed from network-manaager-l2tp to + project being renamed from network-manager-l2tp to @@ -155,2 +159,2 @@ -- Delete any transient nm-l2rp-ipsec-*.secrets files previously - generated by versions <= 1.2.10 in %%pre section. +- Delete any transient nm-l2rp-ipsec-+.secrets files previously + generated by versions <= 1.2.10 in %pre section. @@ -186,2 +190,2 @@ - * Updated translations. - * Stops strongSwan service when a connection cannot be + + Updated translations. + + Stops strongSwan service when a connection cannot be @@ -190,2 +194,2 @@ - * Prefer building against stable libsecret API. - * If L2TP port 1701 is already in use, no longer writes + + Prefer building against stable libsecret API. + + If L2TP port 1701 is already in use, no longer writes @@ -196 +200 @@ - * Split libnm-vpn-plugin-pptp.so into a GTK-free core plugin + + Split libnm-vpn-plugin-pptp.so into a GTK-free core plugin @@ -200 +204 @@ - * runtime test for strongwan or libreswan no longer performed if + + runtime test for strongwan or libreswan no longer performed if @@ -203 +207 @@ - * NetworkManager 1.1.x and 1.2.0 support + + NetworkManager 1.1.x and 1.2.0 support @@ -212,2 +216,2 @@ - * Updated translations. - * Stops strongSwan service when a connection cannot be + + Updated translations. + + Stops strongSwan service when a connection cannot be @@ -215 +219 @@ - * sets phase 1 (ike) and phase 2 (esp) ciphers for strongswan to + + sets phase 1 (ike) and phase 2 (esp) ciphers for strongswan to @@ -218 +222 @@ - * If L2TP port 1701 is already in use, no longer writes + + If L2TP port 1701 is already in use, no longer writes @@ -222,3 +226,3 @@ - * Uses UUID instead of PID for run-time generated filenames - * No longer temporarily replaces system /etc/ipsec.secrets file - * IPsec rekeying is now possible because the following file + + Uses UUID instead of PID for run-time generated filenames ++++ 63 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/NetworkManager-l2tp/NetworkManager-l2tp.changes ++++ and /work/SRC/openSUSE:Factory/.NetworkManager-l2tp.new.1563/NetworkManager-l2tp.changes Old: ---- NetworkManager-l2tp-1.20.6.tar.xz New: ---- NetworkManager-l2tp-1.20.8.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ NetworkManager-l2tp.spec ++++++ --- /var/tmp/diff_new_pack.YjFpmU/_old 2023-01-07 17:16:17.960933549 +0100 +++ /var/tmp/diff_new_pack.YjFpmU/_new 2023-01-07 17:16:17.968933597 +0100 @@ -1,7 +1,7 @@ # # spec file for package NetworkManager-l2tp # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define pppd_plugin_dir %(rpm -ql ppp | grep -m1 pppd/[0-9]*) Name: NetworkManager-l2tp -Version: 1.20.6 +Version: 1.20.8 Release: 0 Summary: NetworkManager VPN support for L2TP and L2TP/IPsec License: GPL-2.0-or-later ++++++ NetworkManager-l2tp-1.20.6.tar.xz -> NetworkManager-l2tp-1.20.8.tar.xz ++++++ ++++ 2268 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/NetworkManager-l2tp-1.20.6/NEWS new/NetworkManager-l2tp-1.20.8/NEWS --- old/NetworkManager-l2tp-1.20.6/NEWS 2022-10-29 03:58:47.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/NEWS 2022-12-29 06:39:48.000000000 +0100 @@ -1,4 +1,19 @@ ========================================================== +NetworkManager-l2tp-1.20.8 +Overview of changes since NetworkManager-l2tp-1.20.6 +========================================================== + +Changes: +* Fix padding of PPP Options dialog. +* Undo PTP peer & ext GW routing prevention workaround first introduced + with NetworkManager-l2tp 1.8.4 as workaround no longer works with + NetworkManager 1.36. The actial fix should be done in NetworkManager. +* Add support for Manual IPv4 configuration options: + Address, Netmask and Gateway. +* Remove deprecated OpenSSL 3 related code +* Load L2TP kernel modules if NM_L2TP_MODPROBE env variable set. + +========================================================== NetworkManager-l2tp-1.20.6 Overview of changes since NetworkManager-l2tp-1.20.4 ========================================================== 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/NetworkManager-l2tp-1.20.6/appdata/network-manager-l2tp.metainfo.xml new/NetworkManager-l2tp-1.20.8/appdata/network-manager-l2tp.metainfo.xml --- old/NetworkManager-l2tp-1.20.6/appdata/network-manager-l2tp.metainfo.xml 2022-10-29 04:32:16.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/appdata/network-manager-l2tp.metainfo.xml 2022-12-29 10:18:50.000000000 +0100 @@ -27,17 +27,17 @@ </description> <screenshots> <screenshot type="default"> - <image width="800" height="608">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp.png</image> + <image width="800" height="608">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp.png</image> </screenshot> <screenshot type="default"> <caption>The IPsec options dialog</caption> <caption xml:lang="ru">Ðиалоговое окно наÑÑÑойки паÑамеÑÑов IPsec</caption> - <image width="800" height="595">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp-ipsec.png</image> + <image width="800" height="595">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp-ipsec.png</image> </screenshot> <screenshot type="default"> <caption>The PPP options dialog</caption> <caption xml:lang="ru">Ðиалоговое окно наÑÑÑойки паÑамеÑÑов PPP</caption> - <image width="800" height="738">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp-ppp.png</image> + <image width="800" height="738">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp-ppp.png</image> </screenshot> </screenshots> <url type="homepage">https://github.com/nm-l2tp/NetworkManager-l2tp</url> 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/NetworkManager-l2tp-1.20.6/appdata/network-manager-l2tp.metainfo.xml.in new/NetworkManager-l2tp-1.20.8/appdata/network-manager-l2tp.metainfo.xml.in --- old/NetworkManager-l2tp-1.20.6/appdata/network-manager-l2tp.metainfo.xml.in 2022-10-29 03:28:58.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/appdata/network-manager-l2tp.metainfo.xml.in 2022-12-29 06:39:11.000000000 +0100 @@ -26,17 +26,17 @@ <screenshots> <screenshot type="default"> - <image width="800" height="608">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp.png</image> + <image width="800" height="608">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp.png</image> </screenshot> <screenshot type="default"> <caption>The IPsec options dialog</caption> - <image width="800" height="595">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp-ipsec.png</image> + <image width="800" height="595">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp-ipsec.png</image> </screenshot> <screenshot type="default"> <caption>The PPP options dialog</caption> - <image width="800" height="738">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.6/appdata/l2tp-ppp.png</image> + <image width="800" height="738">https://raw.githubusercontent.com/nm-l2tp/NetworkManager-l2tp/1.20.8/appdata/l2tp-ppp.png</image> </screenshot> </screenshots> 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/NetworkManager-l2tp-1.20.6/configure.ac new/NetworkManager-l2tp-1.20.8/configure.ac --- old/NetworkManager-l2tp-1.20.6/configure.ac 2022-10-29 04:04:38.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/configure.ac 2022-12-29 06:43:55.000000000 +0100 @@ -1,7 +1,7 @@ AC_PREREQ([2.69]) AC_INIT([NetworkManager-l2tp], - [1.20.6], + [1.20.8], [https://github.com/nm-l2tp/NetworkManager-l2tp/issues], [NetworkManager-l2tp]) AM_INIT_AUTOMAKE([1.9 foreign no-dist-gzip dist-xz -Wno-portability]) @@ -183,13 +183,15 @@ GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40" GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40" +if test x"$with_gnome" != xno || test x"$with_gtk4" != xno; then + PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= 0.18) +fi + if test x"$with_gnome" != xno; then PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.16) GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_16" GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_16" - PKG_CHECK_MODULES(LIBNMA, libnma >= 1.8.0) - PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= 0.18) fi if test x"$with_gtk4" != xno; then Binary files old/NetworkManager-l2tp-1.20.6/po/ar.gmo and new/NetworkManager-l2tp-1.20.8/po/ar.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/as.gmo and new/NetworkManager-l2tp-1.20.8/po/as.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/be.gmo and new/NetworkManager-l2tp-1.20.8/po/be.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/b...@latin.gmo and new/NetworkManager-l2tp-1.20.8/po/b...@latin.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/bg.gmo and new/NetworkManager-l2tp-1.20.8/po/bg.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/bn_IN.gmo and new/NetworkManager-l2tp-1.20.8/po/bn_IN.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/bs.gmo and new/NetworkManager-l2tp-1.20.8/po/bs.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ca.gmo and new/NetworkManager-l2tp-1.20.8/po/ca.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/c...@valencia.gmo and new/NetworkManager-l2tp-1.20.8/po/c...@valencia.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/cs.gmo and new/NetworkManager-l2tp-1.20.8/po/cs.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/da.gmo and new/NetworkManager-l2tp-1.20.8/po/da.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/de.gmo and new/NetworkManager-l2tp-1.20.8/po/de.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/dz.gmo and new/NetworkManager-l2tp-1.20.8/po/dz.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/el.gmo and new/NetworkManager-l2tp-1.20.8/po/el.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/en_GB.gmo and new/NetworkManager-l2tp-1.20.8/po/en_GB.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/eo.gmo and new/NetworkManager-l2tp-1.20.8/po/eo.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/es.gmo and new/NetworkManager-l2tp-1.20.8/po/es.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/et.gmo and new/NetworkManager-l2tp-1.20.8/po/et.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/eu.gmo and new/NetworkManager-l2tp-1.20.8/po/eu.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/fa.gmo and new/NetworkManager-l2tp-1.20.8/po/fa.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/fi.gmo and new/NetworkManager-l2tp-1.20.8/po/fi.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/fr.gmo and new/NetworkManager-l2tp-1.20.8/po/fr.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/fur.gmo and new/NetworkManager-l2tp-1.20.8/po/fur.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/gl.gmo and new/NetworkManager-l2tp-1.20.8/po/gl.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/gu.gmo and new/NetworkManager-l2tp-1.20.8/po/gu.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/he.gmo and new/NetworkManager-l2tp-1.20.8/po/he.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/hr.gmo and new/NetworkManager-l2tp-1.20.8/po/hr.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/hu.gmo and new/NetworkManager-l2tp-1.20.8/po/hu.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/id.gmo and new/NetworkManager-l2tp-1.20.8/po/id.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/it.gmo and new/NetworkManager-l2tp-1.20.8/po/it.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ja.gmo and new/NetworkManager-l2tp-1.20.8/po/ja.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ka.gmo and new/NetworkManager-l2tp-1.20.8/po/ka.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/kn.gmo and new/NetworkManager-l2tp-1.20.8/po/kn.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ko.gmo and new/NetworkManager-l2tp-1.20.8/po/ko.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/lt.gmo and new/NetworkManager-l2tp-1.20.8/po/lt.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/lv.gmo and new/NetworkManager-l2tp-1.20.8/po/lv.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/mk.gmo and new/NetworkManager-l2tp-1.20.8/po/mk.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/mr.gmo and new/NetworkManager-l2tp-1.20.8/po/mr.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/nb.gmo and new/NetworkManager-l2tp-1.20.8/po/nb.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/nl.gmo and new/NetworkManager-l2tp-1.20.8/po/nl.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/oc.gmo and new/NetworkManager-l2tp-1.20.8/po/oc.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/or.gmo and new/NetworkManager-l2tp-1.20.8/po/or.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/pa.gmo and new/NetworkManager-l2tp-1.20.8/po/pa.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/pl.gmo and new/NetworkManager-l2tp-1.20.8/po/pl.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ps.gmo and new/NetworkManager-l2tp-1.20.8/po/ps.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/pt.gmo and new/NetworkManager-l2tp-1.20.8/po/pt.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/pt_BR.gmo and new/NetworkManager-l2tp-1.20.8/po/pt_BR.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ro.gmo and new/NetworkManager-l2tp-1.20.8/po/ro.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ru.gmo and new/NetworkManager-l2tp-1.20.8/po/ru.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/sk.gmo and new/NetworkManager-l2tp-1.20.8/po/sk.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/sl.gmo and new/NetworkManager-l2tp-1.20.8/po/sl.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/sr.gmo and new/NetworkManager-l2tp-1.20.8/po/sr.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/s...@latin.gmo and new/NetworkManager-l2tp-1.20.8/po/s...@latin.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/sv.gmo and new/NetworkManager-l2tp-1.20.8/po/sv.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ta.gmo and new/NetworkManager-l2tp-1.20.8/po/ta.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/te.gmo and new/NetworkManager-l2tp-1.20.8/po/te.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/th.gmo and new/NetworkManager-l2tp-1.20.8/po/th.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/tr.gmo and new/NetworkManager-l2tp-1.20.8/po/tr.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/ug.gmo and new/NetworkManager-l2tp-1.20.8/po/ug.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/uk.gmo and new/NetworkManager-l2tp-1.20.8/po/uk.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/vi.gmo and new/NetworkManager-l2tp-1.20.8/po/vi.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/zh_CN.gmo and new/NetworkManager-l2tp-1.20.8/po/zh_CN.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/zh_HK.gmo and new/NetworkManager-l2tp-1.20.8/po/zh_HK.gmo differ Binary files old/NetworkManager-l2tp-1.20.6/po/zh_TW.gmo and new/NetworkManager-l2tp-1.20.8/po/zh_TW.gmo differ 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/NetworkManager-l2tp-1.20.6/properties/ipsec-dialog.c new/NetworkManager-l2tp-1.20.8/properties/ipsec-dialog.c --- old/NetworkManager-l2tp-1.20.6/properties/ipsec-dialog.c 2022-05-30 14:02:02.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/properties/ipsec-dialog.c 2022-12-25 06:40:10.000000000 +0100 @@ -180,8 +180,6 @@ * connection (CA cert, cert, private key). **/ - crypto_init_openssl(); - fname = nma_cert_chooser_get_cert(this, NULL); if (fname) dirname = g_path_get_dirname(fname); @@ -241,7 +239,6 @@ g_free(ca_cert_fname); g_free(cert_fname); g_free(key_fname); - crypto_deinit_openssl(); } static 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/NetworkManager-l2tp-1.20.6/properties/nm-l2tp-dialog.ui new/NetworkManager-l2tp-1.20.8/properties/nm-l2tp-dialog.ui --- old/NetworkManager-l2tp-1.20.6/properties/nm-l2tp-dialog.ui 2022-04-15 11:22:04.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/properties/nm-l2tp-dialog.ui 2022-11-19 02:11:56.000000000 +0100 @@ -1195,6 +1195,10 @@ <object class="GtkBox" id="dialog-vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="margin_start">10</property> + <property name="margin_end">10</property> + <property name="margin_top">10</property> + <property name="margin_bottom">10</property> <property name="orientation">vertical</property> <property name="spacing">2</property> <child internal-child="action_area"> 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/NetworkManager-l2tp-1.20.6/properties/nm-l2tp-editor.c new/NetworkManager-l2tp-1.20.8/properties/nm-l2tp-editor.c --- old/NetworkManager-l2tp-1.20.6/properties/nm-l2tp-editor.c 2022-03-09 10:04:26.000000000 +0100 +++ new/NetworkManager-l2tp-1.20.8/properties/nm-l2tp-editor.c 2022-12-25 06:40:10.000000000 +0100 @@ -102,8 +102,6 @@ * connection (CA cert, cert, private key). **/ - crypto_init_openssl(); - fname = nma_cert_chooser_get_cert(this, NULL); if (fname) dirname = g_path_get_dirname(fname); @@ -164,7 +162,6 @@ g_free(ca_cert_fname); g_free(cert_fname); g_free(key_fname); - crypto_deinit_openssl(); } static 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/NetworkManager-l2tp-1.20.6/shared/nm-l2tp-crypto-openssl.c new/NetworkManager-l2tp-1.20.8/shared/nm-l2tp-crypto-openssl.c --- old/NetworkManager-l2tp-1.20.6/shared/nm-l2tp-crypto-openssl.c 2021-10-10 13:17:52.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/shared/nm-l2tp-crypto-openssl.c 2022-12-25 06:40:10.000000000 +0100 @@ -22,30 +22,6 @@ #define PEM_ECDSA_KEY_BEGIN "-----BEGIN EC PRIVATE KEY-----" #define PEM_ENCRYPTED "Proc-Type: 4,ENCRYPTED" -static gboolean initialized = FALSE; - -gboolean -crypto_init_openssl(void) -{ - if (initialized) - return TRUE; - - OpenSSL_add_all_algorithms(); - ERR_load_crypto_strings(); - - initialized = TRUE; - return TRUE; -} - -void -crypto_deinit_openssl(void) -{ - if (initialized) { - EVP_cleanup(); - initialized = FALSE; - } -} - static GByteArray * file_to_g_byte_array(const char *filename, GError **error) { @@ -69,10 +45,6 @@ X509_SIG * p8; PKCS8_PRIV_KEY_INFO * p8inf; PKCS12 * p12; - RSA * rsa; - DSA * dsa; - EC_KEY * ecdsa; - gsize taglen = 0; if (out_need_password != NULL) { *out_need_password = FALSE; @@ -159,93 +131,6 @@ goto out; } - /* try unencrypted traditional OpenSSL RSA PrivateKey PEM */ - BIO_reset(in); - rsa = PEM_read_bio_RSAPrivateKey(in, NULL, NULL, ""); - if (rsa) { - RSA_free(rsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_PEM; - goto out; - } - -#ifndef OPENSSL_NO_DSA - /* try unencrypted traditional OpenSSL DSA PrivateKey PEM */ - BIO_reset(in); - dsa = PEM_read_bio_DSAPrivateKey(in, NULL, NULL, ""); - if (dsa) { - DSA_free(dsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_PEM; - goto out; - } -#endif - -#ifndef OPENSSL_NO_EC - /* try unencrypted traditional OpenSSL ECDSA PrivateKey PEM */ - BIO_reset(in); - ecdsa = PEM_read_bio_ECPrivateKey(in, NULL, NULL, ""); - if (ecdsa) { - EC_KEY_free(ecdsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_PEM; - goto out; - } -#endif - - /* try encrypted traditional OpenSSL RSA, DSA and ECDA PrivateKeys PEM */ - if (array->len > 80) { - if (memcmp(array->data, PEM_RSA_KEY_BEGIN, taglen = strlen(PEM_RSA_KEY_BEGIN)) == 0) - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_PEM; - else if (memcmp(array->data, PEM_DSA_KEY_BEGIN, taglen = strlen(PEM_DSA_KEY_BEGIN)) == 0) - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_PEM; - else if (memcmp(array->data, PEM_ECDSA_KEY_BEGIN, taglen = strlen(PEM_ECDSA_KEY_BEGIN)) - == 0) - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_PEM; - - if (file_format != NM_L2TP_CRYPTO_FILE_FORMAT_UNKNOWN) { - if (memcmp(array->data + taglen + 1, PEM_ENCRYPTED, strlen(PEM_ENCRYPTED)) == 0 - || memcmp(array->data + taglen + 2, PEM_ENCRYPTED, strlen(PEM_ENCRYPTED)) == 0) { - if (out_need_password != NULL) - *out_need_password = TRUE; - } - } - } - - /** - * Note: There is no such thing as encrypted traditional OpenSSL - * DER PrivateKeys, as OpenSSL never provided functions in the API. - * For DER there is only unencrypted traditional OpenSSL PrivateKeys. - **/ - - /* try traditional OpenSSL RSA PrivateKey DER */ - BIO_reset(in); - rsa = d2i_RSAPrivateKey_bio(in, NULL); - if (rsa) { - RSA_free(rsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_DER; - goto out; - } - -#ifndef OPENSSL_NO_DSA - /* try traditional OpenSSL DSA PrivateKey DER */ - BIO_reset(in); - dsa = d2i_DSAPrivateKey_bio(in, NULL); - if (dsa) { - DSA_free(dsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_DER; - goto out; - } -#endif - -#ifndef OPENSSL_NO_EC - /* try DER ECDSA */ - BIO_reset(in); - ecdsa = d2i_ECPrivateKey_bio(in, NULL); - if (ecdsa) { - EC_KEY_free(ecdsa); - file_format = NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_DER; - goto out; - } -#endif - out: BIO_free(in); g_byte_array_free(array, TRUE); @@ -313,6 +198,15 @@ sk_X509_pop_free(ca, X509_free); EVP_PKEY_free(pkey); + if (cert == NULL) { + g_set_error(error, + NM_CRYPTO_ERROR, + NM_CRYPTO_ERROR_DECRYPTION_FAILED, + _("Error obtaining certificate from PKCS#12 file '%s'."), + p12_filename); + return; + } + name = X509_get_subject_name(cert); if (name == NULL) { g_set_error(error, @@ -634,16 +528,17 @@ } PKCS12_free(p12); - if (pkey) { - if ((fp = g_fopen(pkey_out_filename, "w")) == NULL) { - g_set_error(error, - G_FILE_ERROR, - g_file_error_from_errno(errno), - _("Could not write '%s' : %s"), - pkey_out_filename, - g_strerror(errno)); - return FALSE; - } + if ((fp = g_fopen(pkey_out_filename, "w")) == NULL) { + g_set_error(error, + G_FILE_ERROR, + g_file_error_from_errno(errno), + _("Could not write '%s' : %s"), + pkey_out_filename, + g_strerror(errno)); + return FALSE; + } + + if (fp && pkey) { if (password && strlen(password) == 0) password = NULL; if (password) @@ -658,7 +553,7 @@ PEM_write_PKCS8PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL); } - if (cert) { + if (fp && cert) { if ((fp = g_freopen(cert_out_filename, "w", fp)) == NULL) { g_set_error(error, G_FILE_ERROR, @@ -671,7 +566,7 @@ PEM_write_X509(fp, cert); } - if (ca && sk_X509_num(ca)) { + if (fp && ca && sk_X509_num(ca)) { if ((fp = g_freopen(ca_out_filename, "w", fp)) == NULL) { g_set_error(error, G_FILE_ERROR, 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/NetworkManager-l2tp-1.20.6/shared/nm-l2tp-crypto-openssl.h new/NetworkManager-l2tp-1.20.8/shared/nm-l2tp-crypto-openssl.h --- old/NetworkManager-l2tp-1.20.6/shared/nm-l2tp-crypto-openssl.h 2021-10-07 13:50:33.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/shared/nm-l2tp-crypto-openssl.h 2022-12-25 06:40:10.000000000 +0100 @@ -13,17 +13,8 @@ NM_L2TP_CRYPTO_FILE_FORMAT_X509_PEM, NM_L2TP_CRYPTO_FILE_FORMAT_PKCS8_DER, NM_L2TP_CRYPTO_FILE_FORMAT_PKCS8_PEM, - NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_DER, - NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_PEM, - NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_DER, - NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_PEM, - NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_DER, - NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_PEM, } NML2tpCryptoFileFormat; -gboolean crypto_init_openssl(void); -void crypto_deinit_openssl(void); - NML2tpCryptoFileFormat crypto_file_format(const char *filename, gboolean *out_need_password, GError **error); 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/NetworkManager-l2tp-1.20.6/src/nm-l2tp-pppd-plugin.c new/NetworkManager-l2tp-1.20.8/src/nm-l2tp-pppd-plugin.c --- old/NetworkManager-l2tp-1.20.6/src/nm-l2tp-pppd-plugin.c 2022-05-01 09:26:47.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/src/nm-l2tp-pppd-plugin.c 2022-12-03 00:42:47.000000000 +0100 @@ -146,13 +146,10 @@ static void nm_ip_up(void *data, int arg) { + guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit); ipcp_options opts = ipcp_gotoptions[0]; ipcp_options peer_opts = ipcp_hisoptions[0]; - ipcp_options want_opts = ipcp_wantoptions[0]; GVariantBuilder builder; - guint32 pppd_made_up_address = htonl(0x0a404040 + ifunit); - guint32 ext_gw_address = want_opts.hisaddr; - guint32 ptp_address = 0; g_return_if_fail(G_IS_DBUS_PROXY(gl.proxy)); @@ -181,22 +178,21 @@ * and if that's not right, use the made-up address as a last resort. */ if (peer_opts.hisaddr && (peer_opts.hisaddr != pppd_made_up_address)) { - ptp_address = peer_opts.hisaddr; - } else if (opts.hisaddr) { - ptp_address = opts.hisaddr; + g_variant_builder_add(&builder, + "{sv}", + NM_VPN_PLUGIN_IP4_CONFIG_PTP, + g_variant_new_uint32 (peer_opts.hisaddr)); + } else if (opts.hisaddr){ + g_variant_builder_add(&builder, + "{sv}", + NM_VPN_PLUGIN_IP4_CONFIG_PTP, + g_variant_new_uint32 (opts.hisaddr)); } else if (peer_opts.hisaddr == pppd_made_up_address) { /* As a last resort, use the made-up address */ - ptp_address = peer_opts.ouraddr; - } - - /* Prevent NetworkManager < 1.36 adding route to PTP peer address if it - * is also the VPN external gateway address. - */ - if (ptp_address && ptp_address != ext_gw_address) { g_variant_builder_add(&builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PTP, - g_variant_new_uint32(ptp_address)); + g_variant_new_uint32(peer_opts.ouraddr)); } g_variant_builder_add(&builder, 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/NetworkManager-l2tp-1.20.6/src/nm-l2tp-service.c new/NetworkManager-l2tp-1.20.8/src/nm-l2tp-service.c --- old/NetworkManager-l2tp-1.20.6/src/nm-l2tp-service.c 2022-10-28 12:47:58.000000000 +0200 +++ new/NetworkManager-l2tp-1.20.8/src/nm-l2tp-service.c 2022-12-26 03:39:07.000000000 +0100 @@ -600,6 +600,7 @@ gboolean use_ephemeral_port; gboolean use_ikev2; gboolean tls_need_password; + gboolean is_local_set = FALSE; g_autofree char * pwd_base64 = NULL; const char * tls_key_filename = NULL; const char * tls_cert_filename = NULL; @@ -665,7 +666,6 @@ value = nm_setting_vpn_get_data_item(s_vpn, NM_L2TP_KEY_USER_AUTH_TYPE); if (nm_streq0(value, NM_L2TP_AUTHTYPE_TLS)) { priv->user_authtype = TLS_AUTH; - crypto_init_openssl(); } /** @@ -680,7 +680,6 @@ tls_key_filename = nm_setting_vpn_get_data_item(s_vpn, NM_L2TP_KEY_MACHINE_KEY); tls_cert_filename = nm_setting_vpn_get_data_item(s_vpn, NM_L2TP_KEY_MACHINE_CERT); tls_ca_filename = nm_setting_vpn_get_data_item(s_vpn, NM_L2TP_KEY_MACHINE_CA); - crypto_init_openssl(); } if (priv->ipsec_daemon == NM_L2TP_IPSEC_DAEMON_STRONGSWAN @@ -702,7 +701,6 @@ if (!has_include_ipsec_secrets(ipsec_secrets_file)) { fd = open(ipsec_secrets_file, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR); if (fd == -1) { - crypto_deinit_openssl(); errsv = errno; snprintf(errorbuf, sizeof(errorbuf), @@ -713,7 +711,6 @@ } fp = fdopen(fd, "a"); if (fp == NULL) { - crypto_deinit_openssl(); snprintf(errorbuf, sizeof(errorbuf), _("Could not append \"include ipsec.d/ipsec.nm-l2tp.secrets\" " @@ -736,7 +733,6 @@ sizeof(errorbuf), _("Could not write %s/ipsec.nm-l2tp.secrets"), ipsec_conf_dir); - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, errorbuf); } @@ -771,14 +767,12 @@ } else { /* TLS_AUTH */ if (!tls_key_filename) { close(fd); - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Machine private key file not supplied")); } tls_key_fileformat = crypto_file_format(tls_key_filename, &tls_need_password, &config_error); if (config_error) { close(fd); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -793,23 +787,6 @@ write_config_option(fd, ": PKCS8"); break; - case NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_PEM: - write_config_option(fd, ": RSA"); - break; - - case NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_PEM: - /* strongSwan no longer supports DSA, - we let strongSwan produce an error message */ - write_config_option(fd, ": DSA"); - break; - - case NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_PEM: - write_config_option(fd, ": ECDSA"); - break; - default: write_config_option(fd, ": RSA"); } @@ -836,7 +813,6 @@ crypto_init_nss(NM_IPSEC_NSS_DIR, &config_error); if (config_error) { close(fd); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -844,7 +820,6 @@ if (config_error) { close(fd); crypto_deinit_nss(NULL); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -866,7 +841,6 @@ } if (config_error) { crypto_deinit_nss(NULL); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -874,7 +848,6 @@ g_byte_array_free(p12_array, TRUE); if (config_error) { crypto_deinit_nss(NULL); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -888,7 +861,6 @@ fd = open(filename, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); g_free(filename); if (fd == -1) { - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Could not write ipsec config")); } @@ -916,7 +888,6 @@ tls_ca_fileformat = crypto_file_format(tls_ca_filename, NULL, &config_error); if (config_error) { close(fd); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -965,7 +936,6 @@ &config_error); if (config_error) { close(fd); - crypto_deinit_openssl(); g_propagate_error(error, config_error); return FALSE; } @@ -979,7 +949,6 @@ } else { if (!tls_key_filename) { close(fd); - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Machine certificate file not supplied")); } write_config_option(fd, " leftcert=\"%s\"\n", tls_cert_filename); @@ -1093,7 +1062,6 @@ g_free(filename); if (fd == -1) { - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Could not write kl2tpd config.")); } @@ -1113,7 +1081,6 @@ g_free(filename); if (fd == -1) { - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Could not write xl2tpd config.")); } @@ -1155,7 +1122,6 @@ g_free(filename); if (fd == -1) { - crypto_deinit_openssl(); return nm_l2tp_ipsec_error(error, _("Could not write ppp options.")); } @@ -1164,19 +1130,59 @@ write_config_option(fd, "ipparam nm-l2tp-service-%s\n", priv->uuid); - /* pass gateway IP address to nm-l2tp-pppd-plugin via ipcp_wantoptions[0].hisaddr, - but let pppd use the remote IP address being offered by the peer using IPCP */ - write_config_option(fd, ":%s\n", priv->saddr); - write_config_option(fd, "ipcp-accept-remote\n"); - write_config_option(fd, "nodetach\n"); + /* Any IPv4 configuration options */ s_ip4 = nm_connection_get_setting_ip4_config(priv->connection); - if (!nm_setting_ip_config_get_ignore_auto_dns(s_ip4)) { - write_config_option(fd, "usepeerdns\n"); + if (s_ip4) { + + value = nm_setting_ip_config_get_method (s_ip4); + if (nm_streq0(value, NM_SETTING_IP4_CONFIG_METHOD_MANUAL)) { + const char *ipv4_str = NULL; + const char *gway_str = NULL; + const char *mask_str = NULL; + char buf[NM_UTILS_INET_ADDRSTRLEN]; + NMIPAddress *ipv4 = NULL; + + /* If <local:remote> is specified, the IPCP negotiation will fail unless + * - ipcp-accept-local, and/or + * - ipcp-accept-remote + * is specified. That depends on the server, but in any case allow it. + * + * The "manual" option is really just a suggestion. "auto" is the default. + */ + ipv4 = nm_setting_ip_config_get_address(s_ip4, 0); + if (ipv4) { + int prefix = nm_ip_address_get_prefix(ipv4); + ipv4_str = nm_ip_address_get_address(ipv4); + mask_str = nm_utils_inet4_ntop(nm_utils_ip4_prefix_to_netmask(prefix), buf); + + gway_str = nm_setting_ip_config_get_gateway(s_ip4); + if (ipv4_str && gway_str) { + write_config_option(fd, "%s:%s\n", ipv4_str, gway_str); + if (mask_str) { + write_config_option(fd, "netmask %s\n", mask_str); + } + write_config_option(fd, "ipcp-accept-local\n"); + write_config_option(fd, "ipcp-accept-remote\n"); + is_local_set = TRUE; + } + } + } + if (nm_streq (value, NM_SETTING_IP4_CONFIG_METHOD_DISABLED)) { + write_config_option(fd, "noip\n"); + } else { + if (!nm_setting_ip_config_get_ignore_auto_dns(s_ip4)) { + write_config_option(fd, "usepeerdns\n"); + } + } + } + + if (!is_local_set) { + write_config_option(fd, "noipdefault\n"); } + is_local_set = FALSE; - write_config_option(fd, "noipdefault\n"); write_config_option(fd, "nodefaultroute\n"); /* Don't need to auth the L2TP server */ @@ -1202,7 +1208,6 @@ tls_key_fileformat = crypto_file_format(tls_key_filename, &tls_need_password, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } if (tls_need_password) @@ -1225,19 +1230,14 @@ error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } } else { switch (tls_key_fileformat) { case NM_L2TP_CRYPTO_FILE_FORMAT_PKCS8_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_DER: crypto_pkey_der_to_pem_file(tls_key_filename, value, tls_key_out_filename, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } break; @@ -1250,14 +1250,12 @@ tls_cert_fileformat = crypto_file_format(tls_cert_filename, NULL, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } if (tls_cert_fileformat == NM_L2TP_CRYPTO_FILE_FORMAT_X509_DER) { crypto_x509_der_to_pem_file(tls_cert_filename, tls_cert_out_filename, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } } else { @@ -1269,14 +1267,12 @@ tls_ca_fileformat = crypto_file_format(tls_ca_filename, NULL, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } if (tls_ca_fileformat == NM_L2TP_CRYPTO_FILE_FORMAT_X509_DER) { crypto_x509_der_to_pem_file(tls_ca_filename, tls_ca_out_filename, error); if (*error) { close(fd); - crypto_deinit_openssl(); return FALSE; } } else { @@ -1379,7 +1375,6 @@ } close(fd); - crypto_deinit_openssl(); return TRUE; } @@ -1701,9 +1696,6 @@ switch (tls_key_fileformat) { case NM_L2TP_CRYPTO_FILE_FORMAT_PKCS12: case NM_L2TP_CRYPTO_FILE_FORMAT_PKCS8_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_RSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_DSA_PKEY_DER: - case NM_L2TP_CRYPTO_FILE_FORMAT_ECDSA_PKEY_DER: key_filename = g_strdup_printf(RUNSTATEDIR "/nm-l2tp-%s/key.pem", priv->uuid); break; @@ -2300,12 +2292,14 @@ { NML2tpPlugin * plugin; GMainLoop * main_loop; - gboolean persist = FALSE; - GOptionContext * opt_ctx = NULL; - GError * error = NULL; - g_autofree char *bus_name_free = NULL; + gboolean persist = FALSE; + GOptionContext * opt_ctx = NULL; + GError * error = NULL; + g_autofree char *bus_name_free = NULL; const char * bus_name; char sbuf[30]; + char * l2tp_ppp_module[] = { "/sbin/modprobe", "l2tp_ppp", NULL }; + char * l2tp_netlink_module[] = { "/sbin/modprobe", "l2tp_netlink", NULL }; GOptionEntry options[] = {{"persist", 0, @@ -2383,6 +2377,24 @@ if (!persist) g_signal_connect(plugin, "quit", G_CALLBACK(quit_mainloop), main_loop); + if (getenv("NM_L2TP_MODPROBE")) { + /* Fedora and RHEL have moved the L2TP kernel modules to the + * 'kernel-modules-extra' package and blacklisted all modules from + * the 'kernel-modules-extra' package by default. + * Load the L2TP modules now. Ignore errors. + * https://access.redhat.com/articles/3760101 + */ + if (!g_spawn_sync(NULL, l2tp_ppp_module, NULL, 0, NULL, NULL, NULL, NULL, NULL, &error)) { + _LOGW("modprobing l2tp_ppp failed: %s", error->message); + g_error_free(error); + } + + if (!g_spawn_sync(NULL, l2tp_netlink_module, NULL, 0, NULL, NULL, NULL, NULL, NULL, &error)) { + _LOGW("modprobing l2tp_netlink failed: %s", error->message); + g_error_free(error); + } + } + g_main_loop_run(main_loop); g_main_loop_unref(main_loop);