diff --git a/ChangeLog b/ChangeLog index e76f584a8e..f5948af20a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-30 Dan Williams + + * src/ppp-manager/nm-ppp-manager.c + - (nm_ppp_manager_start): if /dev/ppp doesn't exist, load the + ppp_generic module to create it (bgo #533064) + 2008-10-30 Dan Williams Patch from Alexander Sack diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index afef4e47ba..90b8b63fda 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #ifndef aligned_u64 @@ -873,10 +874,15 @@ nm_ppp_manager_start (NMPPPManager *manager, NMSettingPPPOE *pppoe_setting; NMCmdLine *ppp_cmd; char *cmd_str; + struct stat st; g_return_val_if_fail (NM_IS_PPP_MANAGER (manager), FALSE); g_return_val_if_fail (NM_IS_ACT_REQUEST (req), FALSE); + /* Make sure /dev/ppp exists (bgo #533064) */ + if (stat ("/dev/ppp", &st) || !S_ISCHR (st.st_mode)) + system ("/sbin/modprobe ppp_generic"); + connection = nm_act_request_get_connection (req); ppp_setting = NM_SETTING_PPP (nm_connection_get_setting (connection, NM_TYPE_SETTING_PPP)); g_return_val_if_fail (ppp_setting != NULL, FALSE);