ppp: fix plugin name for "rp-pppoe.so" with ppp 2.5

Between ppp 2.4.8 and 2.4.9, "rp-pppoe.so" was renamed to "pppoe.so" (and a
symlink created). Between 2.4.9 and 2.5.0, the symlink was dropped.

See-also: b2c36e6c0e

I guess, NetworkManager always meant to use ppp's "(rp-)pppoe.so"
plugin, and never the library from the rp-pppoe project.
If a user actually wants to use the plugin from rp-pppoe project, then
this is going to break.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1312

Fixes: afe80171b2 ('ppp: move ppp code to "nm-pppd-compat.c"')
(cherry picked from commit 84e21d8bbc)
(cherry picked from commit 1c736a44b4)
This commit is contained in:
Thomas Haller 2023-06-07 08:51:54 +02:00
parent de39f67d72
commit 21f96f7357
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
2 changed files with 8 additions and 2 deletions

View file

@ -842,7 +842,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_PPPOE_PLUGIN_NAME);
nm_strv_ptrarray_add_string_concat(cmd, "nic-", priv->parent_iface);
@ -871,7 +871,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_PPPOE_PLUGIN_NAME);
nm_strv_ptrarray_add_string_dup(cmd, priv->parent_iface);
}

View file

@ -29,4 +29,10 @@ typedef enum {
NM_PPP_STATUS_INTERN_DEAD,
} NMPPPStatus;
/*****************************************************************************/
/* The plugin name "(rp-)pppoe.so" depends on the ppp version. */
#define NM_PPPOE_PLUGIN_NAME (NM_PPP_VERSION_2_5_OR_NEWER ? "pppoe.so" : "rp-pppoe.so")
#endif /* __NM_PPP_STATUS_H__ */