summaryrefslogtreecommitdiffstats
path: root/tdecore
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore')
-rw-r--r--tdecore/tdehw/networkbackends/network-manager/network-manager.cpp59
-rw-r--r--tdecore/tdehw/networkbackends/network-manager/network-manager.h3
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
//====================================================================================================
//====================================================================================================