tags 783525 patch
thanks

The attached patch against network-manager 0.9.10.0-7 backports
upstream's commit to switch from user-mode PPPoE client back to kernel
PPPoE.
The 'with-pppoe' configure option can be dropped as well:

--- a/network-manager-0.9.10.0/debian/rules
+++ b/network-manager-0.9.10.0/debian/rules
@@ -18,7 +18,6 @@
         --libexecdir=/usr/lib/NetworkManager \
         --with-pppd-plugin-dir=/usr/lib/pppd/2.4.6 \
         --with-pppd=/usr/sbin/pppd \
-        --with-pppoe=/usr/sbin/pppoe \
         --with-resolvconf=/sbin/resolvconf \
         --with-dhclient=/sbin/dhclient \
         --with-iptables=/sbin/iptables \
Description: Revert "ppp-manager: don't use kernel pppoe"
 Backport upstream's commit to switch from user-mode PPPoE client
 back to kernel PPPoE.
Author: Graham Inggs <gra...@nerve.org.za>
Origin: upstream, http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=474ba5ab0eac
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742939
Bug-Debian: https://bugs.debian.org/783525
Last-Update: 2015-04-27
--- a/configure.ac
+++ b/configure.ac
@@ -556,15 +556,6 @@
 AC_DEFINE_UNQUOTED(PPPD_PATH, "$PPPD_PATH", [Define to path of pppd binary])
 AC_SUBST(PPPD_PATH)
 
-AC_ARG_WITH(pppoe, AS_HELP_STRING([--with-pppoe=/path/to/pppoe], [path to pppoe binary]))
-if test "x${with_pppoe}" = x; then
-  AC_PATH_PROG(PPPOE_PATH, pppoe, [], $PATH:/sbin:/usr/sbin)
-else
-  PPPOE_PATH="$with_pppoe"
-fi
-AC_DEFINE_UNQUOTED(PPPOE_PATH, "$PPPOE_PATH", [Define to path of pppoe binary])
-AC_SUBST(PPPOE_PATH)
-
 # ModemManager1 with libmm-glib
 AC_ARG_WITH(modem-manager-1, AS_HELP_STRING([--with-modem-manager-1], [Enable new ModemManager1 interface support]),,[with_modem_manager_1=auto])
 if (test "${with_modem_manager_1}" != "no"); then
--- a/src/ppp-manager/nm-ppp-manager.c
+++ b/src/ppp-manager/nm-ppp-manager.c
@@ -655,14 +655,6 @@
 	NULL
 };
 
-static const char *pppoe_binary_paths[] = {
-	PPPOE_PATH,
-	"/usr/local/sbin/pppoe",
-	"/usr/sbin/pppoe",
-	"/sbin/pppoe",
-	NULL
-};
-
 static inline const char *
 nm_find_binary (const char *paths[])
 {
@@ -796,7 +788,7 @@
                       GError **err)
 {
 	NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self);
-	const char *pppd_binary, *pppoe_binary = NULL;
+	const char *pppd_binary = NULL;
 	NMCmdLine *cmd;
 	gboolean ppp_debug;
 
@@ -809,16 +801,6 @@
 		return NULL;
 	}
 
-	if (   pppoe
-	    || (adsl && strcmp (nm_setting_adsl_get_protocol (adsl), NM_SETTING_ADSL_PROTOCOL_PPPOE))) {
-		pppoe_binary = nm_find_binary (pppoe_binary_paths);
-		if (!pppoe_binary) {
-			g_set_error (err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR,
-			             "Could not find pppoe binary.");
-			return NULL;
-		}
-	}
-
 	/* Create pppd command line */
 	cmd = nm_cmd_line_new ();
 	nm_cmd_line_add_string (cmd, pppd_binary);
@@ -846,30 +828,22 @@
 	}
 
 	if (pppoe) {
-		GString *pppoe_arg;
+		char *dev_str;
 		const char *pppoe_service;
-		char *quoted;
 
-		g_assert (pppoe_binary != NULL);
-		pppoe_arg = g_string_new (pppoe_binary);
+		nm_cmd_line_add_string (cmd, "plugin");
+		nm_cmd_line_add_string (cmd, "rp-pppoe.so");
 
-		g_string_append (pppoe_arg, " -I ");
-		quoted = g_shell_quote (priv->parent_iface);
-		g_string_append (pppoe_arg, quoted);
-		g_free (quoted);
+		dev_str = g_strdup_printf ("nic-%s", priv->parent_iface);
+		nm_cmd_line_add_string (cmd, dev_str);
+		g_free (dev_str);
 
 		pppoe_service = nm_setting_pppoe_get_service (pppoe);
 		if (pppoe_service) {
-			g_string_append (pppoe_arg, " -S ");
-			quoted = g_shell_quote (pppoe_service);
-			g_string_append (pppoe_arg, quoted);
-			g_free (quoted);
+			nm_cmd_line_add_string (cmd, "rp_pppoe_service");
+			nm_cmd_line_add_string (cmd, pppoe_service);
 		}
 
-		nm_cmd_line_add_string (cmd, "pty");
-		nm_cmd_line_add_string (cmd, pppoe_arg->str);
-
-		g_string_free (pppoe_arg, TRUE);
 	} else if (adsl) {
 		const gchar *protocol = nm_setting_adsl_get_protocol (adsl);
 
@@ -892,14 +866,9 @@
 				nm_cmd_line_add_string (cmd, "vc-encaps");
 
 		} else if (!strcmp (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) {
-			char *pppoe_arg;
-
-			g_assert (pppoe_binary != NULL);
-
-			pppoe_arg = g_strdup_printf ("%s -I %s", pppoe_binary, priv->parent_iface);
-			nm_cmd_line_add_string (cmd, "pty");
-			nm_cmd_line_add_string (cmd, pppoe_arg);
-			g_free (pppoe_arg);
+			nm_cmd_line_add_string (cmd, "plugin");
+			nm_cmd_line_add_string (cmd, "rp-pppoe.so");
+			nm_cmd_line_add_string (cmd, priv->parent_iface);
 		}
 
 		nm_cmd_line_add_string (cmd, "noipdefault");

Reply via email to