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);

Reply via email to