diff --git a/src/core/ppp/nm-ppp-manager.c b/src/core/ppp/nm-ppp-manager.c index bb043a7e41..58364c384d 100644 --- a/src/core/ppp/nm-ppp-manager.c +++ b/src/core/ppp/nm-ppp-manager.c @@ -38,6 +38,7 @@ #include "nm-pppd-plugin.h" #include "nm-ppp-plugin-api.h" #include "nm-ppp-status.h" +#include "nm-pppd-compat.h" #define NM_PPPD_PLUGIN PPPD_PLUGIN_DIR "/nm-pppd-plugin.so" @@ -843,7 +844,7 @@ create_pppd_cmd_line(NMPPPManager *self, const char *pppoe_service; nm_strv_ptrarray_add_string_dup(cmd, "plugin"); - nm_strv_ptrarray_add_string_dup(cmd, "rp-pppoe.so"); + nm_strv_ptrarray_add_string_dup(cmd, nm_pppd_compat_get_pppoe_plugin_name()); nm_strv_ptrarray_add_string_concat(cmd, "nic-", priv->parent_iface); @@ -872,7 +873,7 @@ create_pppd_cmd_line(NMPPPManager *self, } else if (!strcmp(protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) { nm_strv_ptrarray_add_string_dup(cmd, "plugin"); - nm_strv_ptrarray_add_string_dup(cmd, "rp-pppoe.so"); + nm_strv_ptrarray_add_string_dup(cmd, nm_pppd_compat_get_pppoe_plugin_name()); nm_strv_ptrarray_add_string_dup(cmd, priv->parent_iface); } diff --git a/src/core/ppp/nm-pppd-compat.c b/src/core/ppp/nm-pppd-compat.c index fd67eb3493..81b69f4663 100644 --- a/src/core/ppp/nm-pppd-compat.c +++ b/src/core/ppp/nm-pppd-compat.c @@ -94,6 +94,14 @@ G_STATIC_ASSERT(NM_PPPD_COMPAT_MAXSECRETLEN == MAXSECRETLEN); /*****************************************************************************/ +_nm_const const char * +nm_pppd_compat_get_pppoe_plugin_name(void) +{ + return PPP_VERSION_2_5_OR_NEWER ? "pppoe.so" : "rp-pppoe.so"; +} + +/*****************************************************************************/ + int nm_pppd_compat_get_ifunit(void) { diff --git a/src/core/ppp/nm-pppd-compat.h b/src/core/ppp/nm-pppd-compat.h index 11376e360e..1edffdfa98 100644 --- a/src/core/ppp/nm-pppd-compat.h +++ b/src/core/ppp/nm-pppd-compat.h @@ -11,6 +11,8 @@ int nm_pppd_compat_get_ifunit(void); +const char *nm_pppd_compat_get_pppoe_plugin_name(void) _nm_const; + const char *nm_pppd_compat_get_ifname(void); void nm_pppd_compat_set_ifname(const char *ifname);