diff options
Diffstat (limited to 'tdecore')
-rw-r--r-- | tdecore/tdehw/networkbackends/network-manager/network-manager.cpp | 59 | ||||
-rw-r--r-- | tdecore/tdehw/networkbackends/network-manager/network-manager.h | 3 |
2 files changed, 34 insertions, 28 deletions
diff --git a/tdecore/tdehw/networkbackends/network-manager/network-manager.cpp b/tdecore/tdehw/networkbackends/network-manager/network-manager.cpp index 754fd31b8..f41f5cbc8 100644 --- a/tdecore/tdehw/networkbackends/network-manager/network-manager.cpp +++ b/tdecore/tdehw/networkbackends/network-manager/network-manager.cpp @@ -1922,7 +1922,7 @@ void TDENetworkConnectionManager_BackendNM::loadConnectionInformation() { } #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS - printf("[network-manager comm debug] %s\n", (*it).data()); fflush(stdout); + printf("[network-manager comm debug] %s\n", (*it).local8Bit().data()); fflush(stdout); #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS // Obtain connection settings from the path specified @@ -4941,34 +4941,39 @@ TDENetworkVPNTypeList TDENetworkConnectionManager_BackendNM::availableVPNTypes() TDENetworkVPNTypeList ret; // Query NetworkManager to verify plugin availability before claiming support for a VPN type - TQDir serviceDir(NM_PLUGIN_SERVICE_DIR, TQString(), TQDir::Name|TQDir::IgnoreCase, TQDir::Files); - TQStringList services = serviceDir.entryList ().grep (".name", true); - - if (services.count () > 0) { - // read in all available Services - for (TQStringList::Iterator i = services.begin (); i != services.end (); ++i) { - TQString service = NM_PLUGIN_SERVICE_DIR + TQString ("/") + *i; - TDEConfig* tdeconfig = new TDEConfig (service, true, true, "config"); - tdeconfig->setGroup ("VPN Connection"); - - TQString serviceName = tdeconfig->readEntry("name", TQString()); - serviceName = serviceName.lower(); - - if (serviceName == "openvpn") { - ret.append(TDENetworkVPNType::OpenVPN); - } - if (serviceName == "pptp") { - ret.append(TDENetworkVPNType::PPTP); - } - if (serviceName == "strongswan") { - ret.append(TDENetworkVPNType::StrongSwan); - } - if (serviceName == "vpnc") { - ret.append(TDENetworkVPNType::VPNC); - } + // Look in the LIB directory first, since that seems to be where plugins are stored nowadays. + TQDir libServiceDir(NM_PLUGIN_SERVICE_DIR_LIB, "*.name", TQDir::Name | TQDir::IgnoreCase, TQDir::Files); + TQDir etcServiceDir(NM_PLUGIN_SERVICE_DIR_ETC, "*.name", TQDir::Name | TQDir::IgnoreCase, TQDir::Files); + TQStringList services = libServiceDir.entryList() + etcServiceDir.entryList(); + size_t libEntryCount = libServiceDir.count(); + + // Read in all services. + for (size_t i = 0; i < services.count(); ++i) + { + TQString fileName = TQString("%1/").arg(i < libEntryCount ? NM_PLUGIN_SERVICE_DIR_LIB : NM_PLUGIN_SERVICE_DIR_ETC) + services[i]; + TDEConfig *config = new TDEConfig(fileName, true, true, "config"); + config->setGroup("VPN Connection"); - delete tdeconfig; + TQString serviceName = config->readEntry("name", TQString("")); + serviceName = serviceName.lower(); + if (serviceName == "openvpn") + { + ret.append(TDENetworkVPNType::OpenVPN); + } + if (serviceName == "pptp") + { + ret.append(TDENetworkVPNType::PPTP); + } + if (serviceName == "strongswan") + { + ret.append(TDENetworkVPNType::StrongSwan); + } + if (serviceName == "vpnc") + { + ret.append(TDENetworkVPNType::VPNC); } + + delete config; } return ret; diff --git a/tdecore/tdehw/networkbackends/network-manager/network-manager.h b/tdecore/tdehw/networkbackends/network-manager/network-manager.h index 8af99e846..e21e2837d 100644 --- a/tdecore/tdehw/networkbackends/network-manager/network-manager.h +++ b/tdecore/tdehw/networkbackends/network-manager/network-manager.h @@ -142,7 +142,8 @@ #define NM_802_11_DEVICE_CAP_WPA 0x10 #define NM_802_11_DEVICE_CAP_RSN 0x20 //==================================================================================================== -#define NM_PLUGIN_SERVICE_DIR "/etc/NetworkManager/VPN" +#define NM_PLUGIN_SERVICE_DIR_ETC "/etc/NetworkManager/VPN" // old plugin location +#define NM_PLUGIN_SERVICE_DIR_LIB "/usr/lib/NetworkManager/VPN" // new plugin location //==================================================================================================== //==================================================================================================== |