21 #include <tqdbusmessage.h>
23 #include "tdeconfig.h"
24 #include "tdehardwaredevices.h"
25 #include "tdenetworkdevice.h"
27 #include "network-manager.h"
28 #include "network-manager_p.h"
32 #define PRINT_ERROR(x) printf("[TDE NM Backend ERROR] [%s:%d] %s\n", __FILE__, __LINE__, x.ascii());
34 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
35 #define PRINT_WARNING(x) printf("[TDE NM Backend WARNING] [%s:%d] %s\n", __FILE__, __LINE__, x.ascii());
37 #define PRINT_WARNING(x)
40 #define UPDATE_STRING_SETTING_IF_VALID(string, key, settingsMap) if (!string.isNull()) settingsMap[key] = convertDBUSDataToVariantData(TQT_DBusData::fromString(string)); \
41 else settingsMap.remove(key);
43 #define NM_ASYNC_TIMEOUT_MS 1000
45 #define NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS (5*60*1000)
48 #define USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 1
51 TQT_DBusData convertDBUSDataToVariantData(TQT_DBusData);
53 TQ_UINT32 reverseIPV4ByteOrder(TQ_UINT32 address) {
55 unsigned char valuearray[4];
56 valuearray[0] = (address & 0xff000000) >> 24;
57 valuearray[1] = (address & 0x00ff0000) >> 16;
58 valuearray[2] = (address & 0x0000ff00) >> 8;
59 valuearray[3] = (address & 0x000000ff) >> 0;
61 ret = ret | (valuearray[0] << 0);
62 ret = ret | (valuearray[1] << 8);
63 ret = ret | (valuearray[2] << 16);
64 ret = ret | (valuearray[3] << 24);
68 void printDBUSObjectStructure(TQT_DBusData
object,
int level=0, TQString mapKey=TQString::null) {
70 TQString levelIndent =
"";
71 for (i=0; i<level; i++) {
72 levelIndent = levelIndent +
" ";
74 TQCString signature =
object.buildDBusSignature();
76 if (
object.type() == TQT_DBusData::String) {
77 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toString().ascii()); fflush(stdout);
79 else if (
object.type() == TQT_DBusData::Bool) {
80 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ", (
object.toBool())?
"true":
"false"); fflush(stdout);
82 else if (
object.type() == TQT_DBusData::Byte) {
83 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toByte()); fflush(stdout);
85 else if (
object.type() == TQT_DBusData::Int16) {
86 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt16()); fflush(stdout);
88 else if (
object.type() == TQT_DBusData::UInt16) {
89 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt16()); fflush(stdout);
91 else if (
object.type() == TQT_DBusData::Int32) {
92 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt32()); fflush(stdout);
94 else if (
object.type() == TQT_DBusData::UInt32) {
95 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt32()); fflush(stdout);
97 else if (
object.type() == TQT_DBusData::Int64) {
98 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt64()); fflush(stdout);
100 else if (
object.type() == TQT_DBusData::UInt64) {
101 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt64()); fflush(stdout);
104 printf(
"%s%s\n", levelIndent.ascii(), signature.data()); fflush(stdout);
107 if (
object.type() == TQT_DBusData::Map) {
110 TQMap<TQString, TQT_DBusData> outerMap =
object.toStringKeyMap().toTQMap();
111 TQMap<TQString, TQT_DBusData>::const_iterator it;
112 for (it = outerMap.begin(); it != outerMap.end(); ++it) {
113 printDBUSObjectStructure(*it, level+1, it.key());
116 else if (
object.type() == TQT_DBusData::List) {
117 TQT_DBusDataValueList valueList =
object.toTQValueList();
118 TQT_DBusDataValueList::const_iterator it;
119 for (it = valueList.begin(); it != valueList.end(); ++it) {
120 printDBUSObjectStructure(*it, level+1);
123 else if (
object.type() == TQT_DBusData::Variant) {
124 TQT_DBusVariant dataValueVariant =
object.toVariant();
125 TQT_DBusData dataValue = dataValueVariant.value;
126 printDBUSObjectStructure(dataValue, level+1, mapKey);
130 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmGlobalStateToTDEGlobalState(TQ_UINT32 nmType) {
131 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
133 if (nmType == NM_STATE_UNKNOWN) {
134 ret |= TDENetworkGlobalManagerFlags::Unknown;
136 else if (nmType == NM_STATE_ASLEEP) {
137 ret |= TDENetworkGlobalManagerFlags::Disconnected;
138 ret |= TDENetworkGlobalManagerFlags::Sleeping;
140 else if (nmType == NM_STATE_DISCONNECTED) {
141 ret |= TDENetworkGlobalManagerFlags::Disconnected;
143 else if (nmType == NM_STATE_DISCONNECTING) {
144 ret |= TDENetworkGlobalManagerFlags::Connected;
145 ret |= TDENetworkGlobalManagerFlags::DeactivatingLink;
147 else if (nmType == NM_STATE_CONNECTING) {
148 ret |= TDENetworkGlobalManagerFlags::Disconnected;
149 ret |= TDENetworkGlobalManagerFlags::EstablishingLink;
151 else if (nmType == NM_STATE_CONNECTED_LOCAL) {
152 ret |= TDENetworkGlobalManagerFlags::Connected;
153 ret |= TDENetworkGlobalManagerFlags::LinkLocalAccess;
155 else if (nmType == NM_STATE_CONNECTED_SITE) {
156 ret |= TDENetworkGlobalManagerFlags::Connected;
157 ret |= TDENetworkGlobalManagerFlags::SiteLocalAccess;
159 else if (nmType == NM_STATE_CONNECTED_GLOBAL) {
160 ret |= TDENetworkGlobalManagerFlags::Connected;
161 ret |= TDENetworkGlobalManagerFlags::GlobalAccess;
167 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmVPNStateToTDEGlobalState(TQ_UINT32 nmType) {
168 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
170 if (nmType == NM_VPN_STATE_UNKNOWN) {
171 ret |= TDENetworkGlobalManagerFlags::VPNUnknown;
173 else if (nmType == NM_VPN_STATE_PREPARE) {
174 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
175 ret |= TDENetworkGlobalManagerFlags::VPNEstablishingLink;
177 else if (nmType == NM_VPN_STATE_NEED_AUTH) {
178 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
179 ret |= TDENetworkGlobalManagerFlags::VPNNeedAuthorization;
181 else if (nmType == NM_VPN_STATE_CONNECT) {
182 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
183 ret |= TDENetworkGlobalManagerFlags::VPNConfiguringProtocols;
185 else if (nmType == NM_VPN_STATE_IP_CONFIG_GET) {
186 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
187 ret |= TDENetworkGlobalManagerFlags::VPNVerifyingProtocols;
189 else if (nmType == NM_VPN_STATE_ACTIVATED) {
190 ret |= TDENetworkGlobalManagerFlags::VPNConnected;
192 else if (nmType == NM_VPN_STATE_FAILED) {
193 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
194 ret |= TDENetworkGlobalManagerFlags::VPNFailed;
196 else if (nmType == NM_VPN_STATE_DISCONNECTED) {
197 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
203 TDENetworkConnectionStatus::TDENetworkConnectionStatus nmDeviceStateToTDEDeviceState(TQ_UINT32 nmType) {
204 TDENetworkConnectionStatus::TDENetworkConnectionStatus ret = TDENetworkConnectionStatus::None;
206 if (nmType == NM_DEVICE_STATE_UNKNOWN) {
207 ret |= TDENetworkConnectionStatus::Invalid;
209 else if (nmType == NM_DEVICE_STATE_UNMANAGED) {
210 ret |= TDENetworkConnectionStatus::UnManaged;
212 else if (nmType == NM_DEVICE_STATE_UNAVAILABLE) {
213 ret |= TDENetworkConnectionStatus::Disconnected;
214 ret |= TDENetworkConnectionStatus::LinkUnavailable;
216 else if (nmType == NM_DEVICE_STATE_DISCONNECTED) {
217 ret |= TDENetworkConnectionStatus::Disconnected;
219 else if (nmType == NM_DEVICE_STATE_PREPARE) {
220 ret |= TDENetworkConnectionStatus::Disconnected;
221 ret |= TDENetworkConnectionStatus::EstablishingLink;
223 else if (nmType == NM_DEVICE_STATE_CONFIG) {
224 ret |= TDENetworkConnectionStatus::Disconnected;
225 ret |= TDENetworkConnectionStatus::EstablishingLink;
227 else if (nmType == NM_DEVICE_STATE_NEED_AUTH) {
228 ret |= TDENetworkConnectionStatus::Disconnected;
229 ret |= TDENetworkConnectionStatus::NeedAuthorization;
231 else if (nmType == NM_DEVICE_STATE_IP_CONFIG) {
232 ret |= TDENetworkConnectionStatus::Disconnected;
233 ret |= TDENetworkConnectionStatus::ConfiguringProtocols;
235 else if (nmType == NM_DEVICE_STATE_IP_CHECK) {
236 ret |= TDENetworkConnectionStatus::Disconnected;
237 ret |= TDENetworkConnectionStatus::VerifyingProtocols;
239 else if (nmType == NM_DEVICE_STATE_SECONDARIES) {
240 ret |= TDENetworkConnectionStatus::Disconnected;
241 ret |= TDENetworkConnectionStatus::DependencyWait;
243 else if (nmType == NM_DEVICE_STATE_ACTIVATED) {
244 ret |= TDENetworkConnectionStatus::Connected;
246 else if (nmType == NM_DEVICE_STATE_DEACTIVATING) {
247 ret |= TDENetworkConnectionStatus::Connected;
248 ret |= TDENetworkConnectionStatus::DeactivatingLink;
250 else if (nmType == NM_DEVICE_STATE_FAILED) {
251 ret |= TDENetworkConnectionStatus::Disconnected;
252 ret |= TDENetworkConnectionStatus::Failed;
258 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::nmDeviceTypeToTDEDeviceType(TQ_UINT32 nmType) {
259 TDENetworkDeviceType::TDENetworkDeviceType ret = TDENetworkDeviceType::Other;
261 if (nmType == NM_DEVICE_TYPE_UNKNOWN) {
262 ret = TDENetworkDeviceType::Other;
264 else if (nmType == NM_DEVICE_TYPE_ETHERNET) {
265 ret = TDENetworkDeviceType::WiredEthernet;
267 else if (nmType == NM_DEVICE_TYPE_WIFI) {
268 ret = TDENetworkDeviceType::WiFi;
270 else if (nmType == NM_DEVICE_TYPE_UNUSED1) {
272 else if (nmType == NM_DEVICE_TYPE_UNUSED2) {
274 else if (nmType == NM_DEVICE_TYPE_BT) {
275 ret = TDENetworkDeviceType::Bluetooth;
277 else if (nmType == NM_DEVICE_TYPE_OLPC_MESH) {
278 ret = TDENetworkDeviceType::OLPCMesh;
280 else if (nmType == NM_DEVICE_TYPE_WIMAX) {
281 ret = TDENetworkDeviceType::WiMax;
283 else if (nmType == NM_DEVICE_TYPE_MODEM) {
284 ret = TDENetworkDeviceType::Modem;
286 else if (nmType == NM_DEVICE_TYPE_INFINIBAND) {
287 ret = TDENetworkDeviceType::Infiniband;
289 else if (nmType == NM_DEVICE_TYPE_BOND) {
290 ret = TDENetworkDeviceType::Bond;
292 else if (nmType == NM_DEVICE_TYPE_VLAN) {
293 ret = TDENetworkDeviceType::VLAN;
295 else if (nmType == NM_DEVICE_TYPE_ADSL) {
296 ret = TDENetworkDeviceType::ADSL;
302 TDENetworkConnectionType::TDENetworkConnectionType nmConnectionTypeToTDEConnectionType(TQString nm) {
303 TDENetworkConnectionType::TDENetworkConnectionType ret = TDENetworkConnectionType::Other;
305 if (nm.lower() ==
"802-3-ethernet") {
306 ret = TDENetworkConnectionType::WiredEthernet;
308 else if (nm.lower() ==
"infiniband") {
309 ret = TDENetworkConnectionType::Infiniband;
311 else if (nm.lower() ==
"802-11-wireless") {
312 ret = TDENetworkConnectionType::WiFi;
314 else if (nm.lower() ==
"vpn") {
315 ret = TDENetworkConnectionType::VPN;
317 else if (nm.lower() ==
"wimax") {
318 ret = TDENetworkConnectionType::WiMax;
320 else if (nm.lower() ==
"vlan") {
321 ret = TDENetworkConnectionType::VLAN;
323 else if (nm.lower() ==
"802-11-olpc-mesh") {
324 ret = TDENetworkConnectionType::OLPCMesh;
326 else if (nm.lower() ==
"bluetooth") {
327 ret = TDENetworkConnectionType::Bluetooth;
329 else if (nm.lower() ==
"cdma") {
330 ret = TDENetworkConnectionType::Modem;
332 else if (nm.lower() ==
"gsm") {
333 ret = TDENetworkConnectionType::Modem;
339 TQString tdeConnectionTypeToNMConnectionType(TDENetworkConnectionType::TDENetworkConnectionType type, TDEModemConnectionType::TDEModemConnectionType modemType=TDEModemConnectionType::Other) {
342 if (type == TDENetworkConnectionType::WiredEthernet) {
343 ret =
"802-3-ethernet";
345 else if (type == TDENetworkConnectionType::Infiniband) {
348 else if (type == TDENetworkConnectionType::WiFi) {
349 ret =
"802-11-wireless";
351 else if (type == TDENetworkConnectionType::VPN) {
354 else if (type == TDENetworkConnectionType::WiMax) {
357 else if (type == TDENetworkConnectionType::VLAN) {
360 else if (type == TDENetworkConnectionType::OLPCMesh) {
361 ret =
"802-11-olpc-mesh";
363 else if (type == TDENetworkConnectionType::Bluetooth) {
366 else if (type == TDENetworkConnectionType::Modem) {
367 if (modemType == TDEModemConnectionType::CDMA) {
370 else if (modemType == TDEModemConnectionType::GSM) {
378 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType nmEAPTypeToTDEEAPType(TQString nm) {
379 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType ret = TDENetworkIEEE8021xType::None;
381 if (nm.lower() ==
"") {
382 ret = TDENetworkIEEE8021xType::None;
384 else if (nm.lower() ==
"leap") {
385 ret = TDENetworkIEEE8021xType::LEAP;
387 else if (nm.lower() ==
"md5") {
388 ret = TDENetworkIEEE8021xType::MD5;
390 else if (nm.lower() ==
"pap") {
391 ret = TDENetworkIEEE8021xType::PAP;
393 else if (nm.lower() ==
"chap") {
394 ret = TDENetworkIEEE8021xType::CHAP;
396 else if (nm.lower() ==
"mschap") {
397 ret = TDENetworkIEEE8021xType::MSCHAP;
399 else if (nm.lower() ==
"mschapv2") {
400 ret = TDENetworkIEEE8021xType::MSCHAPV2;
402 else if (nm.lower() ==
"fast") {
403 ret = TDENetworkIEEE8021xType::Fast;
405 else if (nm.lower() ==
"psk") {
406 ret = TDENetworkIEEE8021xType::PSK;
408 else if (nm.lower() ==
"pax") {
409 ret = TDENetworkIEEE8021xType::PAX;
411 else if (nm.lower() ==
"sake") {
412 ret = TDENetworkIEEE8021xType::SAKE;
414 else if (nm.lower() ==
"gpsk") {
415 ret = TDENetworkIEEE8021xType::GPSK;
417 else if (nm.lower() ==
"tls") {
418 ret = TDENetworkIEEE8021xType::TLS;
420 else if (nm.lower() ==
"peap") {
421 ret = TDENetworkIEEE8021xType::PEAP;
423 else if (nm.lower() ==
"ttls") {
424 ret = TDENetworkIEEE8021xType::TTLS;
426 else if (nm.lower() ==
"sim") {
427 ret = TDENetworkIEEE8021xType::SIM;
429 else if (nm.lower() ==
"gtc") {
430 ret = TDENetworkIEEE8021xType::GTC;
432 else if (nm.lower() ==
"otp") {
433 ret = TDENetworkIEEE8021xType::OTP;
436 PRINT_ERROR(TQString(
"unknown EAP type %s requested in existing connection").arg(nm.lower()))
442 TQString tdeEAPTypeToNMEAPType(TDENetworkIEEE8021xType::TDENetworkIEEE8021xType eaptype) {
445 if (eaptype == TDENetworkIEEE8021xType::None) {
448 else if (eaptype == TDENetworkIEEE8021xType::LEAP) {
451 else if (eaptype == TDENetworkIEEE8021xType::MD5) {
454 else if (eaptype == TDENetworkIEEE8021xType::PAP) {
457 else if (eaptype == TDENetworkIEEE8021xType::CHAP) {
460 else if (eaptype == TDENetworkIEEE8021xType::MSCHAP) {
463 else if (eaptype == TDENetworkIEEE8021xType::MSCHAPV2) {
466 else if (eaptype == TDENetworkIEEE8021xType::Fast) {
469 else if (eaptype == TDENetworkIEEE8021xType::PSK) {
472 else if (eaptype == TDENetworkIEEE8021xType::PAX) {
475 else if (eaptype == TDENetworkIEEE8021xType::SAKE) {
478 else if (eaptype == TDENetworkIEEE8021xType::GPSK) {
481 else if (eaptype == TDENetworkIEEE8021xType::TLS) {
484 else if (eaptype == TDENetworkIEEE8021xType::PEAP) {
487 else if (eaptype == TDENetworkIEEE8021xType::TTLS) {
490 else if (eaptype == TDENetworkIEEE8021xType::SIM) {
493 else if (eaptype == TDENetworkIEEE8021xType::GTC) {
496 else if (eaptype == TDENetworkIEEE8021xType::OTP) {
500 PRINT_ERROR(TQString(
"unknown TDE EAP type %d requested in new or updated connection").arg(eaptype))
506 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags nmEAPFastFlagsToTDEEAPFastFlags(TQString nm) {
507 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
509 unsigned int nm_int = nm.toUInt();
510 if (nm_int == NM_EAP_FAST_PROVISIONING_DISABLED) {
511 ret = TDENetworkIEEE8021xFastFlags::None;
513 else if (nm_int == NM_EAP_FAST_PROVISIONING_UNAUTHONLY) {
514 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated;
516 else if (nm_int == NM_EAP_FAST_PROVISIONING_AUTHONLY) {
517 ret = TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
519 else if (nm_int == NM_EAP_FAST_PROVISIONING_BOTH) {
520 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
523 PRINT_ERROR(TQString(
"unknown EAP fast flag %s requested in existing connection").arg(nm.lower()))
529 TQString tdeEAPFastFlagsToNMEAPFastFlags(TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags eaptype) {
532 if ((eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) && (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated)) {
533 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_BOTH);
535 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated) {
536 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_AUTHONLY);
538 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) {
539 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_UNAUTHONLY);
542 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_DISABLED);
548 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQString nm) {
549 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
551 if (nm.lower() ==
"infrastructure") {
552 ret = TDEWiFiMode::Infrastructure;
554 else if (nm.lower() ==
"adhoc") {
555 ret = TDEWiFiMode::AdHoc;
561 TQString tdeWiFiModeToNMWiFiMode(TDEWiFiMode::TDEWiFiMode mode) {
564 if (mode == TDEWiFiMode::Infrastructure) {
565 ret =
"infrastructure";
567 else if (mode == TDEWiFiMode::AdHoc) {
574 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQ_UINT32 nm) {
575 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
577 if (nm == NM_802_11_MODE_INFRASTRUCTURE) {
578 ret = TDEWiFiMode::Infrastructure;
580 else if (nm == NM_802_11_MODE_ADHOC) {
581 ret = TDEWiFiMode::AdHoc;
587 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags tdeWiFiFlagsToNMWiFiFlags(TQ_UINT32 nm) {
588 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags ret = TDENetworkWiFiClientFlags::None;
590 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP40) {
591 ret | TDENetworkWiFiClientFlags::CipherWEP40;
593 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP104) {
594 ret | TDENetworkWiFiClientFlags::CipherWEP104;
596 if (nm & NM_802_11_DEVICE_CAP_CIPHER_TKIP) {
597 ret | TDENetworkWiFiClientFlags::CipherTKIP;
599 if (nm & NM_802_11_DEVICE_CAP_CIPHER_CCMP) {
600 ret | TDENetworkWiFiClientFlags::CipherCCMP;
602 if (nm & NM_802_11_DEVICE_CAP_WPA) {
603 ret | TDENetworkWiFiClientFlags::CipherWPA;
605 if (nm & NM_802_11_DEVICE_CAP_RSN) {
606 ret | TDENetworkWiFiClientFlags::CipherRSN;
612 TDEBluetoothConnectionType::TDEBluetoothConnectionType nmBluetoothModeToTDEBluetoothMode(TQString nm) {
613 TDEBluetoothConnectionType::TDEBluetoothConnectionType ret = TDEBluetoothConnectionType::PAN;
615 if (nm.lower() ==
"dun") {
616 ret = TDEBluetoothConnectionType::DUN;
618 else if (nm.lower() ==
"panu") {
619 ret = TDEBluetoothConnectionType::PAN;
625 TQString tdeBluetoothModeToNMBluetoothMode(TDEBluetoothConnectionType::TDEBluetoothConnectionType type) {
628 if (type == TDEBluetoothConnectionType::DUN) {
631 else if (type == TDEBluetoothConnectionType::PAN) {
638 TDEGSMNetworkType::TDEGSMNetworkType nmGSMModeToTDEGSMMode(TQ_INT32 nm) {
639 TDEGSMNetworkType::TDEGSMNetworkType ret = TDEGSMNetworkType::Any;
641 if (nm == NM_GSM_3G_ONLY) {
642 ret = TDEGSMNetworkType::Only3G;
644 else if (nm == NM_GSM_GPRS_EDGE_ONLY) {
645 ret = TDEGSMNetworkType::GPRSEdge;
647 else if (nm == NM_GSM_PREFER_3G) {
648 ret = TDEGSMNetworkType::Prefer3G;
650 else if (nm == NM_GSM_PREFER_2G) {
651 ret = TDEGSMNetworkType::Prefer2G;
657 TQ_INT32 tdeGSMModeToNMGSMMode(TDEGSMNetworkType::TDEGSMNetworkType type) {
660 if (type == TDEGSMNetworkType::Only3G) {
661 ret = NM_GSM_3G_ONLY;
663 else if (type == TDEGSMNetworkType::GPRSEdge) {
664 ret = NM_GSM_GPRS_EDGE_ONLY;
666 else if (type == TDEGSMNetworkType::Prefer3G) {
667 ret = NM_GSM_PREFER_3G;
669 else if (type == TDEGSMNetworkType::Prefer2G) {
670 ret = NM_GSM_PREFER_2G;
676 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand nmWiFiFrequencyBandToTDEWiFiFrequencyBand(TQString nm) {
677 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand ret = TDEWiFiFrequencyBand::Other;
679 if (nm.lower() ==
"") {
680 ret = TDEWiFiFrequencyBand::None;
682 else if (nm.lower() ==
"bg") {
683 ret = TDEWiFiFrequencyBand::Band2_4GHz;
685 else if (nm.lower() ==
"a") {
686 ret = TDEWiFiFrequencyBand::Band5GHz;
692 TQString tdeWiFiFrequencyBandToNMWiFiFrequencyBand(TDEWiFiFrequencyBand::TDEWiFiFrequencyBand mode) {
695 if (mode == TDEWiFiFrequencyBand::None) {
696 ret = TQString::null;
698 else if (mode == TDEWiFiFrequencyBand::Band2_4GHz) {
701 else if (mode == TDEWiFiFrequencyBand::Band5GHz) {
708 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType nmWiFiKeyTypeToTDEWiFiKeyType(TQString nm) {
709 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType ret = TDENetworkWiFiKeyType::Other;
711 if (nm.lower() ==
"none") {
712 ret = TDENetworkWiFiKeyType::WEP;
714 else if (nm.lower() ==
"ieee8021x") {
715 ret = TDENetworkWiFiKeyType::DynamicWEP;
717 else if (nm.lower() ==
"wpa-none") {
718 ret = TDENetworkWiFiKeyType::WPAAdHoc;
720 else if (nm.lower() ==
"wpa-psk") {
721 ret = TDENetworkWiFiKeyType::WPAInfrastructure;
723 else if (nm.lower() ==
"wpa-eap") {
724 ret = TDENetworkWiFiKeyType::WPAEnterprise;
730 TQString tdeWiFiKeyTypeToNMWiFiKeyType(TDENetworkWiFiKeyType::TDENetworkWiFiKeyType type) {
733 if (type == TDENetworkWiFiKeyType::WEP) {
736 else if (type == TDENetworkWiFiKeyType::DynamicWEP) {
739 else if (type == TDENetworkWiFiKeyType::WPAAdHoc) {
742 else if (type == TDENetworkWiFiKeyType::WPAInfrastructure) {
745 else if (type == TDENetworkWiFiKeyType::WPAEnterprise) {
752 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType nmWiFiAuthTypeToTDEWiFiAuthType(TQString nm) {
753 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType ret = TDENetworkWiFiAuthType::Other;
755 if (nm.lower() ==
"open") {
756 ret = TDENetworkWiFiAuthType::Open;
758 else if (nm.lower() ==
"shared") {
759 ret = TDENetworkWiFiAuthType::Shared;
761 else if (nm.lower() ==
"leap") {
762 ret = TDENetworkWiFiAuthType::LEAP;
768 TQString tdeWiFiAuthTypeToNMWiFiAuthType(TDENetworkWiFiAuthType::TDENetworkWiFiAuthType type) {
771 if (type == TDENetworkWiFiAuthType::Open) {
774 else if (type == TDENetworkWiFiAuthType::Shared) {
777 else if (type == TDENetworkWiFiAuthType::LEAP) {
784 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags nmWiFiWPAVersionToTDEWiFiWPAVersion(TQStringList nm) {
785 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags ret = TDENetworkWiFiWPAVersionFlags::None;
787 if ((nm.contains(
"wpa") && nm.contains(
"rsn")) || (nm.count() < 1)) {
788 ret |= TDENetworkWiFiWPAVersionFlags::Any;
790 else if (nm.contains(
"wpa")) {
791 ret |= TDENetworkWiFiWPAVersionFlags::WPA;
793 else if (nm.contains(
"rsn")) {
794 ret |= TDENetworkWiFiWPAVersionFlags::RSN;
800 TQStringList tdeWiFiWPAVersionToNMWiFiWPAVersion(TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags type) {
803 if (type & TDENetworkWiFiWPAVersionFlags::WPA) {
806 if (type & TDENetworkWiFiWPAVersionFlags::RSN) {
813 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher nmWiFiCipherToTDEWiFiCipher(TQString nm) {
814 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher ret = TDENetworkWiFiConnectionCipher::None;
816 if (nm.lower() ==
"wep40") {
817 ret = TDENetworkWiFiConnectionCipher::CipherWEP40;
819 else if (nm.lower() ==
"wep104") {
820 ret = TDENetworkWiFiConnectionCipher::CipherWEP104;
822 else if (nm.lower() ==
"tkip") {
823 ret = TDENetworkWiFiConnectionCipher::CipherTKIP;
825 else if (nm.lower() ==
"ccmp") {
826 ret = TDENetworkWiFiConnectionCipher::CipherCCMP;
832 TQString tdeWiFiCipherToNMWiFiCipher(TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher) {
835 if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP40) {
838 else if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP104) {
841 else if (cipher == TDENetworkWiFiConnectionCipher::CipherTKIP) {
844 else if (cipher == TDENetworkWiFiConnectionCipher::CipherCCMP) {
851 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType nmSlaveTypeToTDESlaveType(TQString nm) {
852 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType ret = TDENetworkSlaveDeviceType::None;
854 if (nm.lower() ==
"bond") {
855 ret = TDENetworkSlaveDeviceType::Bond;
861 TQString tdeSlaveTypeToNMSlaveType(TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slavetype) {
864 if (slavetype == TDENetworkSlaveDeviceType::Bond) {
871 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags nmPasswordFlagsToTDEPasswordFlags(
unsigned int nm) {
872 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags ret = TDENetworkPasswordHandlingFlags::None;
874 if (nm & NM_PASSWORD_SECRET_AGENTOWNED) {
875 ret |= TDENetworkPasswordHandlingFlags::ExternalStorage;
877 if (nm & NM_PASSWORD_SECRET_NOTSAVED) {
878 ret |= TDENetworkPasswordHandlingFlags::NoSave;
880 if (nm & NM_PASSWORD_SECRET_NOTREQUIRED) {
881 ret |= TDENetworkPasswordHandlingFlags::NoPrompt;
887 unsigned int tdePasswordFlagsToNMPasswordFlags(TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags flags) {
888 unsigned int ret = 0;
890 if (flags & TDENetworkPasswordHandlingFlags::ExternalStorage) {
891 ret |= NM_PASSWORD_SECRET_AGENTOWNED;
893 if (flags & TDENetworkPasswordHandlingFlags::NoSave) {
894 ret |= NM_PASSWORD_SECRET_NOTSAVED;
896 if (flags & TDENetworkPasswordHandlingFlags::NoPrompt) {
897 ret |= NM_PASSWORD_SECRET_NOTREQUIRED;
903 TDENetworkVLANFlags::TDENetworkVLANFlags nmVLANFlagsToTDEVLANFlags(
unsigned int nm) {
904 TDENetworkVLANFlags::TDENetworkVLANFlags ret = TDENetworkVLANFlags::None;
906 if (nm & NM_VLAN_REORDER_PACKET_HEADERS) {
907 ret |= TDENetworkVLANFlags::ReorderPacketHeaders;
909 if (nm & NM_VLAN_USE_GVRP) {
910 ret |= TDENetworkVLANFlags::UseGVRP;
912 if (nm & NM_VLAN_LOOSE_BINDING) {
913 ret |= TDENetworkVLANFlags::LooseBinding;
919 unsigned int tdeVLANFlagsToNMVLANFlags(TDENetworkVLANFlags::TDENetworkVLANFlags flags) {
920 unsigned int ret = 0;
922 if (flags & TDENetworkVLANFlags::ReorderPacketHeaders) {
923 ret |= NM_VLAN_REORDER_PACKET_HEADERS;
925 if (flags & TDENetworkVLANFlags::UseGVRP) {
926 ret |= NM_VLAN_USE_GVRP;
928 if (flags & TDENetworkVLANFlags::LooseBinding) {
929 ret |= NM_VLAN_LOOSE_BINDING;
935 TDENetworkParity::TDENetworkParity nmParityToTDEParity(
char nm) {
936 TDENetworkParity::TDENetworkParity ret = TDENetworkParity::None;
939 ret = TDENetworkParity::Even;
941 else if (nm ==
'o') {
942 ret = TDENetworkParity::Odd;
948 char tdeParityToNMParity(TDENetworkParity::TDENetworkParity parity) {
951 if (parity == TDENetworkParity::Even) {
954 else if (parity == TDENetworkParity::Odd) {
961 TDENetworkWepKeyType::TDENetworkWepKeyType nmWepKeyTypeToTDEWepKeyType(
unsigned int nm, TQString key=TQString::null) {
962 TDENetworkWepKeyType::TDENetworkWepKeyType ret = TDENetworkWepKeyType::Hexadecimal;
964 if (nm == NM_WEP_TYPE_HEXADECIMAL) {
966 ret = TDENetworkWepKeyType::Hexadecimal;
969 if ((
key.length() == 10) || (
key.length() == 26)) {
970 ret = TDENetworkWepKeyType::Hexadecimal;
973 ret = TDENetworkWepKeyType::Ascii;
977 else if (nm == NM_WEP_TYPE_PASSPHRASE) {
978 ret = TDENetworkWepKeyType::Passphrase;
984 unsigned int tdeWepKeyTypeToNMWepKeyType(TDENetworkWepKeyType::TDENetworkWepKeyType type) {
985 unsigned int ret = 0;
987 if (type == TDENetworkWepKeyType::Hexadecimal) {
988 ret = NM_WEP_TYPE_HEXADECIMAL;
990 else if (type == TDENetworkWepKeyType::Ascii) {
991 ret = NM_WEP_TYPE_HEXADECIMAL;
993 else if (type == TDENetworkWepKeyType::Passphrase) {
994 ret = NM_WEP_TYPE_PASSPHRASE;
1000 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags nmCapabilityFlagsToTDECapabilityFlags(
unsigned int nm) {
1001 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags ret = TDENetworkDeviceCapabilityFlags::None;
1003 if (nm & NM_DEVICE_CAP_NM_SUPPORTED) {
1004 ret |= TDENetworkDeviceCapabilityFlags::Supported;
1006 if (nm & NM_DEVICE_CAP_CARRIER_DETECT) {
1007 ret |= TDENetworkDeviceCapabilityFlags::CanDetectLink;
1013 unsigned int tdeCapabilityFlagsToNMCapabilityFlags(TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags flags) {
1014 unsigned int ret = 0;
1016 if (flags & TDENetworkDeviceCapabilityFlags::Supported) {
1017 ret |= NM_DEVICE_CAP_NM_SUPPORTED;
1019 if (flags & TDENetworkDeviceCapabilityFlags::CanDetectLink) {
1020 ret |= NM_DEVICE_CAP_CARRIER_DETECT;
1026 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags nmAPSecFlagsToTDEAPSecFlags(
unsigned int genflags,
unsigned int nm) {
1027 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags ret = TDENetworkWiFiAPFlags::None;
1029 if (genflags & NM_ACCESS_POINT_CAP_PRIVACY) {
1030 ret |= TDENetworkWiFiAPFlags::PrivacySupport;
1033 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP40) {
1034 ret |= TDENetworkWiFiAPFlags::PairWEP40;
1036 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP104) {
1037 ret |= TDENetworkWiFiAPFlags::PairWEP104;
1039 if (nm & NM_ACCESS_POINT_SEC_PAIR_TKIP) {
1040 ret |= TDENetworkWiFiAPFlags::PairTKIP;
1042 if (nm & NM_ACCESS_POINT_SEC_PAIR_CCMP) {
1043 ret |= TDENetworkWiFiAPFlags::PairCCMP;
1045 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP40) {
1046 ret |= TDENetworkWiFiAPFlags::GroupWEP40;
1048 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP104) {
1049 ret |= TDENetworkWiFiAPFlags::GroupWEP104;
1051 if (nm & NM_ACCESS_POINT_SEC_GROUP_TKIP) {
1052 ret |= TDENetworkWiFiAPFlags::GroupTKIP;
1054 if (nm & NM_ACCESS_POINT_SEC_GROUP_CCMP) {
1055 ret |= TDENetworkWiFiAPFlags::GroupCCMP;
1057 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_PSK) {
1058 ret |= TDENetworkWiFiAPFlags::KeyManagementPSK;
1060 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X) {
1061 ret |= TDENetworkWiFiAPFlags::KeyManagement80211;
1067 unsigned int tdeAPSecFlagsToNMAPGenSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1068 unsigned int ret = 0;
1070 if (flags & TDENetworkWiFiAPFlags::PrivacySupport) {
1071 ret |= NM_ACCESS_POINT_CAP_PRIVACY;
1077 unsigned int tdeAPSecFlagsToNMAPSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1078 unsigned int ret = 0;
1080 if (flags & TDENetworkWiFiAPFlags::PairWEP40) {
1081 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP40;
1083 if (flags & TDENetworkWiFiAPFlags::PairWEP104) {
1084 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP104;
1086 if (flags & TDENetworkWiFiAPFlags::PairTKIP) {
1087 ret |= NM_ACCESS_POINT_SEC_PAIR_TKIP;
1089 if (flags & TDENetworkWiFiAPFlags::PairCCMP) {
1090 ret |= NM_ACCESS_POINT_SEC_PAIR_CCMP;
1092 if (flags & TDENetworkWiFiAPFlags::GroupWEP40) {
1093 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP40;
1095 if (flags & TDENetworkWiFiAPFlags::GroupWEP104) {
1096 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP104;
1098 if (flags & TDENetworkWiFiAPFlags::GroupTKIP) {
1099 ret |= NM_ACCESS_POINT_SEC_GROUP_TKIP;
1101 if (flags & TDENetworkWiFiAPFlags::GroupCCMP) {
1102 ret |= NM_ACCESS_POINT_SEC_GROUP_CCMP;
1104 if (flags & TDENetworkWiFiAPFlags::KeyManagementPSK) {
1105 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_PSK;
1107 if (flags & TDENetworkWiFiAPFlags::KeyManagement80211) {
1108 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X;
1114 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode nmIBTransportToTDEIBTransport(TQString nm) {
1115 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode ret = TDENetworkInfinibandTransportMode::Other;
1117 if (nm.lower() ==
"datagram") {
1118 ret = TDENetworkInfinibandTransportMode::Datagram;
1120 else if (nm.lower() ==
"connected") {
1121 ret = TDENetworkInfinibandTransportMode::Connected;
1127 TQString tdeIBTransportToNMIBTransport(TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode mode) {
1130 if (mode == TDENetworkInfinibandTransportMode::Datagram) {
1133 else if (mode == TDENetworkInfinibandTransportMode::Connected) {
1140 TQString TDENetworkConnectionManager_BackendNM::deviceInterfaceString(TQString deviceNode) {
1141 if (d->m_networkManagerProxy) {
1142 TQT_DBusObjectPathList devices;
1143 TQT_DBusError error;
1145 ret = d->m_networkManagerProxy->GetDevices(devices, error);
1147 TQT_DBusObjectPathList::iterator it;
1148 for (it = devices.begin(); it != devices.end(); ++it) {
1149 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, (*it));
1150 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1151 TQString deviceInterface = genericDevice.getInterface(error);
1152 if (error.isValid()) {
1154 PRINT_ERROR((error.name() +
": " + error.message()))
1157 else if (deviceInterface == deviceNode) {
1161 return TQString::null;
1165 PRINT_ERROR((error.name() +
": " + error.message()))
1166 return TQString::null;
1170 return TQString::null;
1174 TQString tdeDeviceUUIDForGenericDevice(TQT_DBusObjectPath path) {
1175 TQT_DBusError error;
1176 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, path);
1177 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1178 TQString deviceInterface = genericDevice.getInterface(error);
1179 if (error.isValid()) {
1180 return TQString::null;
1183 TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
1185 return TQString::null;
1188 TDEGenericHardwareList devices = hwdevices->listByDeviceClass(TDEGenericDeviceType::Network);
1189 for (TDEGenericHardwareList::iterator it = devices.begin(); it != devices.end(); ++it) {
1190 TDENetworkDevice* dev =
dynamic_cast<TDENetworkDevice*
>(*it);
1192 if (deviceInterface == dev->deviceNode()) {
1193 return dev->uniqueID();
1198 return TQString::null;
1201 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(TDENetworkConnectionManager_BackendNMPrivate* parent) : m_parent(parent) {
1205 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::~TDENetworkConnectionManager_BackendNM_DBusSignalReceiver() {
1209 void TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::dbusSignal(
const TQT_DBusMessage& message) {
1210 if (message.type() == TQT_DBusMessage::SignalMessage) {
1211 TQString
interface = message.interface();
1212 TQString sender = message.sender();
1213 TQString member = message.member();
1214 TQString path = message.path();
1218 if (interface == NM_VPN_DBUS_CONNECTION_SERVICE) {
1219 if (member ==
"VpnStateChanged") {
1221 TQ_UINT32 state = message[0].toUInt32();
1222 TQ_UINT32 reason = message[1].toUInt32();
1223 if (state == NM_VPN_STATE_FAILED) {
1224 m_parent->internalProcessVPNFailure(reason);
1228 else if (interface == NM_DBUS_DEVICE_SERVICE) {
1229 if (path == m_parent->m_dbusDeviceString) {
1230 if (member ==
"StateChanged") {
1232 TQ_UINT32 new_state = message[0].toUInt32();
1233 TQ_UINT32 old_state = message[1].toUInt32();
1234 TQ_UINT32 reason = message[2].toUInt32();
1235 m_parent->internalProcessDeviceStateChanged(new_state, old_state, reason);
1242 TDENetworkConnectionManager_BackendNM::TDENetworkConnectionManager_BackendNM(TDENetworkDevice* networkDevice) : TDENetworkConnectionManager(networkDevice) {
1243 d =
new TDENetworkConnectionManager_BackendNMPrivate(
this);
1246 d->m_networkManagerProxy =
new DBus::NetworkManagerProxy(NM_DBUS_SERVICE, NM_DBUS_PATH);
1247 d->m_networkManagerProxy->setConnection(TQT_DBusConnection::systemBus());
1248 d->m_networkManagerSettings =
new DBus::SettingsInterface(NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS);
1249 d->m_networkManagerSettings->setConnection(TQT_DBusConnection::systemBus());
1250 d->m_vpnProxy =
new DBus::VPNPluginProxy(NM_VPN_DBUS_PLUGIN_SERVICE, NM_VPN_DBUS_PLUGIN_PATH);
1251 d->m_vpnProxy->setConnection(TQT_DBusConnection::systemBus());
1253 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
1254 if (!d->m_dbusDeviceString.isEmpty()) {
1255 d->m_networkDeviceProxy =
new DBus::DeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1256 d->m_networkDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1257 if (deviceType() == TDENetworkDeviceType::WiFi) {
1258 d->m_wiFiDeviceProxy =
new DBus::WiFiDeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1259 d->m_wiFiDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1264 connect(d->m_networkManagerProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessGlobalStateChanged(TQ_UINT32)));
1267 if (d->m_vpnProxy) {
1268 connect(d->m_vpnProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessVPNStateChanged(TQ_UINT32)));
1269 connect(d->m_vpnProxy, SIGNAL(LoginBanner(
const TQString&)), d, SLOT(internalProcessVPNLoginBanner(
const TQString&)));
1270 connect(d->m_vpnProxy, SIGNAL(Failure(TQ_UINT32)), d, SLOT(internalProcessVPNFailure(TQ_UINT32)));
1274 if (d->m_networkDeviceProxy) {
1275 connect(d->m_networkDeviceProxy, SIGNAL(StateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)), d, SLOT(internalProcessDeviceStateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)));
1277 if (d->m_wiFiDeviceProxy) {
1278 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointAdded(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath&)));
1279 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointRemoved(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath&)));
1280 connect(d->m_wiFiDeviceProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)), d, SLOT(internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1284 m_connectionList =
new TDENetworkConnectionList;
1285 m_hwNeighborList =
new TDENetworkHWNeighborList;
1291 TDENetworkConnectionManager_BackendNM::~TDENetworkConnectionManager_BackendNM() {
1293 clearTDENetworkConnectionList();
1294 delete m_connectionList;
1295 clearTDENetworkHWNeighborList();
1296 delete m_hwNeighborList;
1299 if (d->m_networkManagerProxy)
delete d->m_networkManagerProxy;
1300 if (d->m_networkManagerSettings)
delete d->m_networkManagerSettings;
1301 if (d->m_networkDeviceProxy)
delete d->m_networkDeviceProxy;
1306 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessGlobalStateChanged(TQ_UINT32 state) {
1307 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1310 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNStateChanged(TQ_UINT32 state) {
1311 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1314 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNLoginBanner(
const TQString& banner) {
1315 m_parent->internalVpnEvent(TDENetworkVPNEventType::LoginBanner, banner);
1318 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNFailure(TQ_UINT32 reason) {
1321 m_parent->internalVpnEvent(TDENetworkVPNEventType::Failure, TQString(
"VPN connection attempt failed!<br>NetworkManager returned error %1.").arg(reason));
1324 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessDeviceStateChanged(TQ_UINT32 newState, TQ_UINT32 oldState, TQ_UINT32 reason) {
1327 if (m_prevDeviceState == newState) return;
1328 m_prevDeviceState = newState;
1330 if (newState == NM_DEVICE_STATE_FAILED) {
1331 TQString errorString;
1332 if (reason == NM_DEVICE_STATE_REASON_NONE) {
1333 errorString = TQString(
"Connection attempt failed!");
1335 else if (reason == NM_DEVICE_STATE_REASON_UNKNOWN) {
1336 errorString = TQString(
"Connection attempt failed!<br>Unknown error detected.");
1338 else if (reason == NM_DEVICE_STATE_REASON_NOW_MANAGED) {
1339 errorString = TQString(
"Connection attempt failed!<br>Network device is now managed.");
1341 else if (reason == NM_DEVICE_STATE_REASON_NOW_UNMANAGED) {
1342 errorString = TQString(
"Connection attempt failed!<br>Network device is now unmanaged.");
1344 else if (reason == NM_DEVICE_STATE_REASON_CONFIG_FAILED) {
1345 errorString = TQString(
"Connection attempt failed!<br>Configuration failed.");
1347 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE) {
1348 errorString = TQString(
"Connection attempt failed!<br>IP configuration unavailable.");
1350 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED) {
1351 errorString = TQString(
"Connection attempt failed!<br>IP configuration expired.");
1353 else if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
1354 errorString =
i18n(
"Connection attempt failed!<br>Secrets were required to establish a connection, but no secrets were available.");
1356 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT) {
1357 errorString = TQString(
"Connection attempt failed!<br>The supplicant was disconnected while attempting to establish a wireless connection.");
1359 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED) {
1360 errorString = TQString(
"Connection attempt failed!<br>Supplicant configuration failed while attempting to establish a wireless connection.");
1362 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED) {
1363 errorString =
i18n(
"Connection attempt failed!<br>The supplicant failed while attempting to establish a wireless connection.");
1365 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT) {
1366 errorString =
i18n(
"Connection attempt failed!<br>The supplicant timed out while attempting to establish a wireless connection.");
1368 else if (reason == NM_DEVICE_STATE_REASON_PPP_START_FAILED) {
1369 errorString =
i18n(
"Connection attempt failed!<br>The PPP client failed to start.");
1371 else if (reason == NM_DEVICE_STATE_REASON_PPP_DISCONNECT) {
1372 errorString =
i18n(
"Connection attempt failed!<br>The PPP client was disconnected.");
1374 else if (reason == NM_DEVICE_STATE_REASON_PPP_FAILED) {
1375 errorString =
i18n(
"Connection attempt failed!<br>Unknown PPP failure.");
1377 else if (reason == NM_DEVICE_STATE_REASON_DHCP_START_FAILED) {
1378 errorString =
i18n(
"Connection attempt failed!<br>The DHCP client failed to start.");
1380 else if (reason == NM_DEVICE_STATE_REASON_DHCP_ERROR) {
1381 errorString =
i18n(
"Connection attempt failed!<br>The DHCP client encountered an error.");
1383 else if (reason == NM_DEVICE_STATE_REASON_DHCP_FAILED) {
1384 errorString =
i18n(
"Connection attempt failed!<br>Uknown DHCP failure.");
1386 else if (reason == NM_DEVICE_STATE_REASON_SHARED_START_FAILED) {
1387 errorString =
i18n(
"Connection attempt failed!<br>The connection sharing service failed to start.");
1389 else if (reason == NM_DEVICE_STATE_REASON_SHARED_FAILED) {
1390 errorString =
i18n(
"Connection attempt failed!<br>The connection sharing service encountered an error.");
1392 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED) {
1393 errorString =
i18n(
"Connection attempt failed!<br>The AutoIP service failed to start.");
1395 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_ERROR) {
1396 errorString =
i18n(
"Connection attempt failed!<br>The AutoIP service encountered an error.");
1398 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_FAILED) {
1399 errorString =
i18n(
"Connection attempt failed!<br>Unknown AutoIP failure.");
1401 else if (reason == NM_DEVICE_STATE_REASON_MODEM_BUSY) {
1402 errorString =
i18n(
"Connection attempt failed!<br>Modem was busy.");
1404 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE) {
1405 errorString =
i18n(
"Connection attempt failed!<br>No dial tone.");
1407 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER) {
1408 errorString =
i18n(
"Connection attempt failed!<br>No carrier detected.");
1410 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT) {
1411 errorString =
i18n(
"Connection attempt failed!<br>Modem timed out while dialing.");
1413 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED) {
1414 errorString =
i18n(
"Connection attempt failed!<br>The modem failed to dial.");
1416 else if (reason == NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED) {
1417 errorString =
i18n(
"Connection attempt failed!<br>Modem initialization failed.");
1419 else if (reason == NM_DEVICE_STATE_REASON_GSM_APN_FAILED) {
1420 errorString =
i18n(
"Connection attempt failed!<br>GSM APN failure.");
1422 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING) {
1423 errorString =
i18n(
"Connection attempt failed!<br>GSM registration failed to search for networks.");
1425 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED) {
1426 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt was rejected.");
1428 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT) {
1429 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt timed out.");
1431 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED) {
1432 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt failed.");
1434 else if (reason == NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED) {
1435 errorString =
i18n(
"Connection attempt failed!<br>GSM PIN check failed.");
1437 else if (reason == NM_DEVICE_STATE_REASON_FIRMWARE_MISSING) {
1438 errorString =
i18n(
"Connection attempt failed!<br>Network device firmware is missing.");
1440 else if (reason == NM_DEVICE_STATE_REASON_REMOVED) {
1441 errorString =
i18n(
"Connection attempt failed!<br>Network device was removed.");
1443 else if (reason == NM_DEVICE_STATE_REASON_SLEEPING) {
1444 errorString =
i18n(
"Connection attempt failed!<br>Network device is sleeping.");
1446 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_REMOVED) {
1447 errorString =
i18n(
"Connection attempt failed!<br>Connection was removed.");
1449 else if (reason == NM_DEVICE_STATE_REASON_USER_REQUESTED) {
1450 errorString =
i18n(
"Connection attempt failed!<br>User requested device disconnection.");
1452 else if (reason == NM_DEVICE_STATE_REASON_CARRIER) {
1453 errorString =
i18n(
"Connection attempt failed!<br>Carrier or link status changed.");
1455 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED) {
1456 errorString =
i18n(
"Connection attempt failed!<br>Device and/or connection already active.");
1458 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE) {
1459 errorString =
i18n(
"Connection attempt failed!<br>The supplicant is now available.");
1461 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND) {
1462 errorString =
i18n(
"Connection attempt failed!<br>Requested modem was not found.");
1464 else if (reason == NM_DEVICE_STATE_REASON_BT_FAILED) {
1465 errorString =
i18n(
"Connection attempt failed!<br>Bluetooth connection timeout.");
1467 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED) {
1468 errorString =
i18n(
"Connection attempt failed!<br>GSM SIM not inserted.");
1470 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED) {
1471 errorString =
i18n(
"Connection attempt failed!<br>GSM PIN required.");
1473 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED) {
1474 errorString =
i18n(
"Connection attempt failed!<br>GSM PUK required.");
1476 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_WRONG) {
1477 errorString =
i18n(
"Connection attempt failed!<br>GSM SIM incorrect.");
1479 else if (reason == NM_DEVICE_STATE_REASON_INFINIBAND_MODE) {
1480 errorString =
i18n(
"Connection attempt failed!<br>Incorrect Infiniband mode.");
1482 else if (reason == NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED) {
1483 errorString =
i18n(
"Connection attempt failed!<br>Dependency failure.");
1485 else if (reason == NM_DEVICE_STATE_REASON_BR2684_FAILED) {
1486 errorString =
i18n(
"Connection attempt failed!<br>Unknown bridge failure.");
1488 else if (reason == NM_DEVICE_STATE_REASON_MODEM_MANAGER_UNAVAILABLE) {
1489 errorString =
i18n(
"Connection attempt failed!<br>ModemManager not available.");
1491 else if (reason == NM_DEVICE_STATE_REASON_SSID_NOT_FOUND) {
1492 errorString =
i18n(
"Connection attempt failed!<br>SSID not found.");
1494 else if (reason == NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED) {
1495 errorString =
i18n(
"Connection attempt failed!<br>Secondary connection failure.");
1500 errorString = TQString(
"Connection attempt failed!<br>NetworkManager returned error %1.").arg(reason);
1502 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::Failure, errorString);
1505 m_parent->internalNetworkDeviceStateChanged(nmDeviceStateToTDEDeviceState(newState), m_parent->deviceNode());
1508 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath& dbuspath) {
1509 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1511 if (!m_accessPointProxyList.contains(dbuspath)) {
1513 DBus::AccessPointProxy* apProxy =
new DBus::AccessPointProxy(NM_DBUS_SERVICE, dbuspath);
1514 apProxy->setConnection(TQT_DBusConnection::systemBus());
1515 connect(apProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)),
this, SLOT(internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1516 m_accessPointProxyList[dbuspath] = (apProxy);
1519 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Discovered);
1525 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath& dbuspath) {
1526 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1529 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Lost);
1533 DBus::AccessPointProxy* apProxy = m_accessPointProxyList[dbuspath];
1534 m_accessPointProxyList.remove(dbuspath);
1541 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1542 if (m_wiFiDeviceProxy) {
1543 if (props.contains(
"ActiveAccessPoint")) {
1544 TQT_DBusError error;
1545 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(m_wiFiDeviceProxy->getActiveAccessPoint(error));
1547 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::AccessPointChanged);
1550 else if (props.contains(
"Bitrate")) {
1551 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::BitRateChanged, TQString::null);
1556 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1557 const DBus::AccessPointProxy* apProxy =
dynamic_cast<const DBus::AccessPointProxy*
>(sender());
1559 TQT_DBusError error;
1560 TDEMACAddress BSSID;
1561 BSSID.fromString(apProxy->getHwAddress(error));
1562 if (props.contains(
"Strength")) {
1563 m_parent->internalAccessPointStatusChanged(BSSID, TDENetworkAPEventType::SignalStrengthChanged);
1568 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::deviceType() {
1569 if (!m_networkDevice) {
1570 return TDENetworkDeviceType::BackendOnly;
1574 TQT_DBusError error;
1575 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
1576 if (!d->m_dbusDeviceString.isEmpty()) {
1577 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1578 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1579 TDENetworkDeviceType::TDENetworkDeviceType ret = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error));
1580 if (error.isValid()) {
1582 PRINT_ERROR((error.name() +
": " + error.message()))
1591 PRINT_ERROR(TQString(
"Invalid empty DBUS device string"))
1597 TDENetworkConnectionType::TDENetworkConnectionType connType = TDENetworkConnectionType::Other;
1599 TQT_DBusError error;
1601 #ifndef USE_ASYNC_DBUS_CALLS
1603 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1604 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1605 TQT_DBusTQStringDataMap connectionSettingsMap;
1606 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
1607 if (ret && error.isValid()) {
1609 PRINT_ERROR((error.name() +
": " + error.message()))
1612 #else // USE_ASYNC_DBUS_CALLS
1614 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1615 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1616 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1618 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1619 if (ret && error.isValid()) {
1621 PRINT_ERROR((error.name() +
": " + error.message()))
1625 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1626 TQTimer nmCallTimeoutTimer;
1627 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
1628 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1629 tqApp->processEvents();
1630 if (!nmCallTimeoutTimer.isActive()) {
1631 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1635 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1636 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1637 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1638 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1640 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1641 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1642 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1644 #endif // USE_ASYNC_DBUS_CALLS
1647 TQT_DBusTQStringDataMap::const_iterator it2;
1648 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1649 TQString outerKeyValue = it2.key();
1650 TQT_DBusData dataValue = it2.data();
1652 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
1653 TQT_DBusTQStringDataMap::const_iterator it3;
1654 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
1655 TQString keyValue = it3.key();
1656 TQT_DBusData dataValue = it3.data();
1657 if (dataValue.type() == TQT_DBusData::Variant) {
1658 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
1659 TQT_DBusData dataValue2 = dataValueVariant.value;
1660 if (dataValue2.type() != TQT_DBusData::Variant) {
1661 if (outerKeyValue.lower() ==
"connection") {
1662 if (keyValue.lower() ==
"type") {
1663 connType = nmConnectionTypeToTDEConnectionType(dataValue2.toString());
1675 TQString TDENetworkConnectionManager_BackendNM::backendName() {
1676 return i18n(
"NetworkManager");
1679 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags TDENetworkConnectionManager_BackendNM::backendStatus() {
1680 if (d->m_networkManagerProxy) {
1682 TQT_DBusError error;
1683 ret = d->m_networkManagerProxy->getState(error);
1684 if (error.isValid()) {
1686 PRINT_ERROR((error.name() +
": " + error.message()))
1690 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags globalFlags = nmGlobalStateToTDEGlobalState(ret);
1691 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags vpnFlags = TDENetworkGlobalManagerFlags::Unknown;
1692 if (d->m_vpnProxy) {
1693 ret = d->m_vpnProxy->getState(error);
1694 if (error.isValid()) {
1696 bool print_error =
true;
1697 if (error.name() ==
"org.freedesktop.DBus.Error.ServiceUnknown") {
1698 if (d->vpn_service_error_notified) {
1699 print_error =
false;
1702 d->vpn_service_error_notified =
true;
1706 PRINT_ERROR(TQString(
"Attempting to access the network-manager VPN service returned: %1").arg(error.name() +
": " + error.message()))
1708 vpnFlags = TDENetworkGlobalManagerFlags::VPNUnknown;
1711 vpnFlags = nmVPNStateToTDEGlobalState(ret);
1714 return globalFlags | vpnFlags;
1718 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1722 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceInformation() {
1723 TQT_DBusError error;
1724 TDENetworkDeviceInformation ret;
1726 if (d->m_networkDeviceProxy) {
1727 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1728 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1729 ret.backendDriver = d->m_networkDeviceProxy->getDriver(error);
1730 ret.backendDriverVersion = d->m_networkDeviceProxy->getDriverVersion(error);
1731 ret.firmwareVersion = d->m_networkDeviceProxy->getFirmwareVersion(error);
1732 ret.capabilityFlags = nmCapabilityFlagsToTDECapabilityFlags(d->m_networkDeviceProxy->getCapabilities(error));
1734 ret.managed = d->m_networkDeviceProxy->getManaged(error);
1735 ret.autoConnect = d->m_networkDeviceProxy->getAutoconnect(error);
1736 ret.firmwareMissing = d->m_networkDeviceProxy->getFirmwareMissing(error);
1737 ret.deviceType = nmDeviceTypeToTDEDeviceType(d->m_networkDeviceProxy->getDeviceType(error));
1738 if (error.isValid()) {
1740 bool print_error =
true;
1741 if (error.name() ==
"org.freedesktop.DBus.Error.AccessDenied") {
1742 if (error.message().contains(
"org.freedesktop.NetworkManager.Device")) {
1745 ret.autoConnect =
true;
1746 if (d->device_autoconnect_error_notified) {
1747 print_error =
false;
1750 d->device_autoconnect_error_notified =
true;
1755 PRINT_ERROR((error.name() +
": " + error.message()))
1759 error = TQT_DBusError();
1763 if ((deviceType() == TDENetworkDeviceType::WiFi) && (d->m_wiFiDeviceProxy)) {
1764 ret.wiFiInfo.valid =
true;
1765 ret.wiFiInfo.hwAddress.fromString(d->m_wiFiDeviceProxy->getHwAddress(error));
1766 ret.wiFiInfo.permanentHWAddress.fromString(d->m_wiFiDeviceProxy->getPermHwAddress(error));
1767 ret.wiFiInfo.operatingMode = nmWiFiModeToTDEWiFiMode(d->m_wiFiDeviceProxy->getMode(error));
1768 ret.wiFiInfo.bitrate = d->m_wiFiDeviceProxy->getBitrate(error);
1769 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(d->m_wiFiDeviceProxy->getActiveAccessPoint(error));
1770 if (error.isValid()) {
1771 PRINT_ERROR((error.name() +
": " + error.message()))
1774 error = TQT_DBusError();
1777 ret.wiFiInfo.activeAccessPointBSSID = apInfo->BSSID;
1778 TDENetworkWiFiAPInfo* neighborListAPInfo = findAccessPointByBSSID(ret.wiFiInfo.activeAccessPointBSSID);
1779 if (neighborListAPInfo) {
1780 *neighborListAPInfo = *apInfo;
1785 ret.wiFiInfo.activeAccessPointBSSID = TDEMACAddress();
1787 ret.wiFiInfo.wirelessFlags = tdeWiFiFlagsToNMWiFiFlags(d->m_wiFiDeviceProxy->getWirelessCapabilities(error));
1790 ret.wiFiInfo.valid =
false;
1794 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1795 if (!error.isValid()) {
1796 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1797 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1798 ret.activeConnectionUUID = activeConnection.getUuid(error);
1799 if (error.isValid()) {
1800 ret.activeConnectionUUID = TQString::null;
1810 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceStatus() {
1811 TQT_DBusError error;
1812 TDENetworkDeviceInformation ret;
1814 if (d->m_networkDeviceProxy) {
1815 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1816 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1819 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1820 if (!error.isValid()) {
1821 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1822 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1823 ret.activeConnectionUUID = activeConnection.getUuid(error);
1824 if (error.isValid()) {
1825 ret.activeConnectionUUID = TQString::null;
1835 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncReply(
int asyncCallId,
const TQT_DBusDataMap<TQString>& settings) {
1836 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1837 nmConnectionSettingsAsyncSettingsResponse[asyncCallId] = settings;
1840 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncReply(
int asyncCallId) {
1841 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1844 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncReply(
int asyncCallId,
const TQT_DBusObjectPath& path) {
1845 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1846 nmAddConnectionAsyncResponse[asyncCallId] = path;
1849 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1850 nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallId] = error;
1853 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1854 nmConnectionSettingsUpdateAsyncSettingsErrorResponse[asyncCallId] = error;
1857 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1858 nmAddConnectionAsyncErrorResponse[asyncCallId] = error;
1861 void TDENetworkConnectionManager_BackendNM::loadConnectionInformation() {
1862 if (d->nonReentrantCallActive)
return;
1864 d->nonReentrantCallActive =
true;
1866 TDEMACAddress deviceMACAddress;
1867 deviceMACAddress.fromString(this->deviceMACAddress());
1869 if (d->m_networkManagerSettings) {
1870 clearTDENetworkConnectionList();
1871 TQT_DBusObjectPathList connections;
1872 TQT_DBusError error;
1875 ret = d->m_networkManagerSettings->ListConnections(connections, error);
1877 TQT_DBusObjectPathList::iterator it;
1878 for (it = connections.begin(); it != connections.end(); ++it) {
1879 TDENetworkConnection* connection;
1880 TDEWiredEthernetConnection* ethernetConnection = NULL;
1881 TDEWiredInfinibandConnection* infinibandConnection = NULL;
1882 TDEWiFiConnection* wiFiConnection = NULL;
1883 TDEVPNConnection* vpnConnection = NULL;
1884 TDEWiMaxConnection* wiMaxConnection = NULL;
1885 TDEVLANConnection* vlanConnection = NULL;
1886 TDEOLPCMeshConnection* olpcMeshConnection = NULL;
1887 TDEBluetoothConnection* bluetoothConnection = NULL;
1888 TDEModemConnection* modemConnection = NULL;
1889 TDENetworkConnectionType::TDENetworkConnectionType connType = connectionType((*it));
1890 if (connType == TDENetworkConnectionType::WiredEthernet) {
1891 connection = ethernetConnection =
new TDEWiredEthernetConnection;
1893 else if (connType == TDENetworkConnectionType::Infiniband) {
1894 connection = infinibandConnection =
new TDEWiredInfinibandConnection;
1896 else if (connType == TDENetworkConnectionType::WiFi) {
1897 connection = wiFiConnection =
new TDEWiFiConnection;
1899 else if (connType == TDENetworkConnectionType::VPN) {
1900 connection = vpnConnection =
new TDEVPNConnection;
1902 else if (connType == TDENetworkConnectionType::WiMax) {
1903 connection = wiMaxConnection =
new TDEWiMaxConnection;
1905 else if (connType == TDENetworkConnectionType::VLAN) {
1906 connection = vlanConnection =
new TDEVLANConnection;
1908 else if (connType == TDENetworkConnectionType::OLPCMesh) {
1909 connection = olpcMeshConnection =
new TDEOLPCMeshConnection;
1911 else if (connType == TDENetworkConnectionType::Bluetooth) {
1912 connection = bluetoothConnection =
new TDEBluetoothConnection;
1914 else if (connType == TDENetworkConnectionType::Modem) {
1915 connection = modemConnection =
new TDEModemConnection;
1918 connection =
new TDENetworkConnection;
1921 connection->ipConfig.connectionFlags = TDENetworkIPConfigurationFlags::IPV4DHCPIP | \
1922 TDENetworkIPConfigurationFlags::IPV4DHCPDNS | \
1923 TDENetworkIPConfigurationFlags::IPV4DHCPRoutes | \
1924 TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute | \
1925 TDENetworkIPConfigurationFlags::IPV6DHCPIP | \
1926 TDENetworkIPConfigurationFlags::IPV6DHCPDNS | \
1927 TDENetworkIPConfigurationFlags::IPV6DHCPRoutes | \
1928 TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
1933 connection->autoConnect =
true;
1935 if (wiFiConnection) {
1936 wiFiConnection->securitySettings.authType = TDENetworkWiFiAuthType::Open;
1939 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1940 printf(
"[network-manager comm debug] %s\n", (*it).data()); fflush(stdout);
1941 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1943 #ifndef USE_ASYNC_DBUS_CALLS
1945 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
1946 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1947 TQT_DBusTQStringDataMap connectionSettingsMap;
1948 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
1949 if (ret && error.isValid()) {
1951 PRINT_ERROR((error.name() +
": " + error.message()))
1954 #else // USE_ASYNC_DBUS_CALLS
1956 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
1957 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1958 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1959 connect(&connectionSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processConnectionSettingsAsyncError(
int,
const TQT_DBusError)));
1961 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1962 if (ret && error.isValid()) {
1964 PRINT_ERROR((error.name() +
": " + error.message()))
1968 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1969 TQTimer nmCallTimeoutTimer;
1970 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
1971 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1972 tqApp->processEvents();
1973 if (!nmCallTimeoutTimer.isActive()) {
1974 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1978 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1979 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1980 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1981 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1983 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1984 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1985 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1987 #endif // USE_ASYNC_DBUS_CALLS
1989 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1990 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
1991 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
1992 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1995 TQT_DBusTQStringDataMap::const_iterator it2;
1996 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1997 TQString outerKeyValue = it2.key();
1998 TQT_DBusData dataValue = it2.data();
1999 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2000 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
2001 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2002 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
2003 TQT_DBusTQStringDataMap::const_iterator it3;
2004 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
2005 TQString keyValue = it3.key();
2006 TQT_DBusData dataValue = it3.data();
2007 if (dataValue.type() != TQT_DBusData::Variant) {
2008 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2009 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
2010 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2014 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
2015 TQT_DBusData dataValue2 = dataValueVariant.value;
2016 if (dataValue2.type() != TQT_DBusData::Variant) {
2017 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2018 printf(
"[network-manager comm debug] %s = %s (type %d(%s), signature %s)\n", keyValue.ascii(), dataValue2.toString().ascii(), dataValue2.type(), dataValue2.typeName(), dataValueVariant.signature.ascii()); fflush(stdout);
2019 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2021 if (outerKeyValue.lower() ==
"connection") {
2022 if (keyValue.lower() ==
"id") {
2023 connection->friendlyName = dataValue2.toString();
2025 else if (keyValue.lower() ==
"uuid") {
2026 connection->UUID = dataValue2.toString().lower();
2028 else if (keyValue.lower() ==
"permissions") {
2029 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2030 TQT_DBusDataValueList::const_iterator it4;
2031 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2032 TQT_DBusData innerDataValue = *it4;
2033 TQString authString = innerDataValue.toString();
2034 TQStringList pieces = TQStringList::split(
":", authString);
2035 if (pieces[0].lower() ==
"user") {
2036 connection->authorizedUsers.append(pieces[1]);
2040 else if (keyValue.lower() ==
"autoconnect") {
2041 connection->autoConnect = dataValue2.toBool();
2043 else if (keyValue.lower() ==
"read-only") {
2044 connection->readOnly = dataValue2.toBool();
2046 else if (keyValue.lower() ==
"master") {
2047 connection->masterConnectionUUID = dataValue2.toString().lower();
2049 else if (keyValue.lower() ==
"slave-type") {
2050 connection->slaveType = nmSlaveTypeToTDESlaveType(dataValue2.toString());
2052 else if (keyValue.lower() ==
"timestamp") {
2053 connection->lastKnownConnection.setTime_t(dataValue2.toUInt64());
2056 else if (outerKeyValue.lower() ==
"802-1x") {
2057 if (keyValue.lower() ==
"eap") {
2058 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2059 TQT_DBusDataValueList::const_iterator it4;
2061 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2062 TQT_DBusData innerDataValue = *it4;
2065 connection->eapConfig.type = nmEAPTypeToTDEEAPType(innerDataValue.toString());
2070 else if (keyValue.lower() ==
"identity") {
2071 connection->eapConfig.userName = dataValue2.toString();
2073 else if (keyValue.lower() ==
"anonymous-identity") {
2074 connection->eapConfig.anonymousUserName = dataValue2.toString();
2076 else if (keyValue.lower() ==
"pac-file") {
2077 connection->eapConfig.pacFileName = dataValue2.toString();
2079 else if (keyValue.lower() ==
"ca-cert") {
2080 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2081 TQT_DBusDataValueList::const_iterator it4;
2083 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2084 TQT_DBusData innerDataValue = *it4;
2086 connection->eapConfig.caCertificate.resize(count+1);
2087 connection->eapConfig.caCertificate[count] = innerDataValue.toByte();
2090 else if (keyValue.lower() ==
"ca-path") {
2091 connection->eapConfig.additionalCAFilesPath = dataValue2.toString();
2093 else if (keyValue.lower() ==
"subject-match") {
2094 connection->eapConfig.authServerCertSubjectMatch = dataValue2.toString();
2096 else if (keyValue.lower() ==
"altsubject-matches") {
2097 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2098 TQT_DBusDataValueList::const_iterator it4;
2099 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2100 TQT_DBusData innerDataValue = *it4;
2101 connection->eapConfig.alternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2104 else if (keyValue.lower() ==
"client-cert") {
2105 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2106 TQT_DBusDataValueList::const_iterator it4;
2108 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2109 TQT_DBusData innerDataValue = *it4;
2111 connection->eapConfig.clientCertificate.resize(count+1);
2112 connection->eapConfig.clientCertificate[count] = innerDataValue.toByte();
2115 else if (keyValue.lower() ==
"phase1-peapver") {
2116 connection->eapConfig.forcePEAPVersion = dataValue2.toString();
2118 else if (keyValue.lower() ==
"phase1-peaplabel") {
2119 connection->eapConfig.forcePEAPLabel = dataValue2.toString();
2121 else if (keyValue.lower() ==
"phase1-fast-provisioning") {
2122 connection->eapConfig.fastProvisioningFlags = nmEAPFastFlagsToTDEEAPFastFlags(dataValue2.toString());
2124 else if (keyValue.lower() ==
"phase2-auth") {
2125 connection->eapConfig.phase2NonEAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2127 else if (keyValue.lower() ==
"phase2-autheap") {
2128 connection->eapConfig.phase2EAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2130 else if (keyValue.lower() ==
"phase2-ca-cert") {
2131 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2132 TQT_DBusDataValueList::const_iterator it4;
2134 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2135 TQT_DBusData innerDataValue = *it4;
2137 connection->eapConfig.phase2CaCertificate.resize(count+1);
2138 connection->eapConfig.phase2CaCertificate[count] = innerDataValue.toByte();
2141 else if (keyValue.lower() ==
"phase2-ca-path") {
2142 connection->eapConfig.phase2CaFilesPath = dataValue2.toString();
2144 else if (keyValue.lower() ==
"phase2-subject-match") {
2145 connection->eapConfig.phase2AuthServerCertSubjectMatch = dataValue2.toString();
2147 else if (keyValue.lower() ==
"phase2-altsubject-matches") {
2148 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2149 TQT_DBusDataValueList::const_iterator it4;
2150 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2151 TQT_DBusData innerDataValue = *it4;
2152 connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2155 else if (keyValue.lower() ==
"phase2-client-cert") {
2156 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2157 TQT_DBusDataValueList::const_iterator it4;
2159 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2160 TQT_DBusData innerDataValue = *it4;
2162 connection->eapConfig.phase2ClientCertificate.resize(count+1);
2163 connection->eapConfig.phase2ClientCertificate[count] = innerDataValue.toByte();
2166 else if (keyValue.lower() ==
"password-flags") {
2167 connection->eapConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2169 else if (keyValue.lower() ==
"password-raw-flags") {
2170 connection->eapConfig.binaryPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2172 else if (keyValue.lower() ==
"private-key") {
2173 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2174 TQT_DBusDataValueList::const_iterator it4;
2176 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2177 TQT_DBusData innerDataValue = *it4;
2179 connection->eapConfig.privateKey.resize(count+1);
2180 connection->eapConfig.privateKey[count] = innerDataValue.toByte();
2183 else if (keyValue.lower() ==
"private-key-password-flags") {
2184 connection->eapConfig.privateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2186 else if (keyValue.lower() ==
"phase2-private-key") {
2187 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2188 TQT_DBusDataValueList::const_iterator it4;
2190 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2191 TQT_DBusData innerDataValue = *it4;
2193 connection->eapConfig.phase2PrivateKey.resize(count+1);
2194 connection->eapConfig.phase2PrivateKey[count] = innerDataValue.toByte();
2197 else if (keyValue.lower() ==
"phase2-private-key-password-flags") {
2198 connection->eapConfig.phase2PrivateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2200 else if (keyValue.lower() ==
"system-ca-certs") {
2201 connection->eapConfig.forceSystemCaCertificates = dataValue2.toBool();
2203 connection->eapConfig.valid =
true;
2205 else if (outerKeyValue.lower() ==
"802-3-ethernet") {
2206 if (keyValue.lower() ==
"duplex") {
2207 connection->fullDuplex = (dataValue2.toString().lower() ==
"full")?
true:
false;
2209 else if (keyValue.lower() ==
"mac-address") {
2210 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2211 TQT_DBusDataValueList::const_iterator it4;
2212 TDENetworkByteList macAddress;
2213 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2214 TQT_DBusData innerDataValue = *it4;
2215 macAddress.append(innerDataValue.toByte());
2217 connection->lockedHWAddress.setAddress(macAddress);
2219 else if (keyValue.lower() ==
"cloned-mac-address") {
2220 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2221 TQT_DBusDataValueList::const_iterator it4;
2222 TDENetworkByteList macAddress;
2223 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2224 TQT_DBusData innerDataValue = *it4;
2225 macAddress.append(innerDataValue.toByte());
2227 connection->manualHWAddress.setAddress(macAddress);
2229 else if (keyValue.lower() ==
"mtu") {
2230 connection->mtu = dataValue2.toUInt32();
2233 else if (outerKeyValue.lower() ==
"infiniband") {
2234 if (keyValue.lower() ==
"mac-address") {
2235 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2236 TQT_DBusDataValueList::const_iterator it4;
2237 TDENetworkByteList macAddress;
2238 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2239 TQT_DBusData innerDataValue = *it4;
2240 macAddress.append(innerDataValue.toByte());
2242 connection->lockedHWAddress.setAddress(macAddress);
2244 else if (keyValue.lower() ==
"mtu") {
2245 connection->mtu = dataValue2.toUInt32();
2247 else if (keyValue.lower() ==
"transport-mode") {
2248 infinibandConnection->transportMode = nmIBTransportToTDEIBTransport(dataValue2.toString());
2251 else if (outerKeyValue.lower() ==
"802-11-wireless") {
2252 if (keyValue.lower() ==
"ssid") {
2253 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2254 TQT_DBusDataValueList::const_iterator it4;
2256 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2257 TQT_DBusData innerDataValue = *it4;
2258 wiFiConnection->SSID.resize(count+1);
2259 wiFiConnection->SSID[count] = innerDataValue.toByte();
2263 else if (keyValue.lower() ==
"mac-address") {
2264 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2265 TQT_DBusDataValueList::const_iterator it4;
2266 TDENetworkByteList macAddress;
2267 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2268 TQT_DBusData innerDataValue = *it4;
2269 macAddress.append(innerDataValue.toByte());
2271 connection->lockedHWAddress.setAddress(macAddress);
2273 else if (keyValue.lower() ==
"cloned-mac-address") {
2274 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2275 TQT_DBusDataValueList::const_iterator it4;
2276 TDENetworkByteList macAddress;
2277 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2278 TQT_DBusData innerDataValue = *it4;
2279 macAddress.append(innerDataValue.toByte());
2281 connection->manualHWAddress.setAddress(macAddress);
2283 else if (keyValue.lower() ==
"mtu") {
2284 connection->mtu = dataValue2.toUInt32();
2286 else if (keyValue.lower() ==
"mode") {
2287 wiFiConnection->operatingMode = nmWiFiModeToTDEWiFiMode(dataValue2.toString());
2289 else if (keyValue.lower() ==
"band") {
2290 wiFiConnection->bandRestriction = nmWiFiFrequencyBandToTDEWiFiFrequencyBand(dataValue2.toString());
2292 else if (keyValue.lower() ==
"channel") {
2293 wiFiConnection->channelRestriction = dataValue2.toUInt32();
2294 if (wiFiConnection->channelRestriction == 0) wiFiConnection->channelRestriction = -1;
2296 else if (keyValue.lower() ==
"rate") {
2297 wiFiConnection->bitRateRestriction = dataValue2.toUInt32()*1000;
2298 if (wiFiConnection->bitRateRestriction == 0) wiFiConnection->bitRateRestriction = -1;
2300 else if (keyValue.lower() ==
"tx-power") {
2301 wiFiConnection->powerRestriction = dataValue2.toUInt32();
2302 if (wiFiConnection->powerRestriction == 0) wiFiConnection->powerRestriction = -1;
2304 else if (keyValue.lower() ==
"bssid") {
2305 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2306 TQT_DBusDataValueList::const_iterator it4;
2307 TDENetworkByteList macAddress;
2308 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2309 TQT_DBusData innerDataValue = *it4;
2310 macAddress.append(innerDataValue.toByte());
2312 wiFiConnection->accessPointRestriction.setAddress(macAddress);
2314 else if (keyValue.lower() ==
"mac-address-blacklist") {
2315 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2316 TQT_DBusDataValueList::const_iterator it4;
2317 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2318 TQT_DBusData innerDataValue = *it4;
2319 TDEMACAddress hwAddress;
2320 hwAddress.fromString(innerDataValue.toString());
2321 wiFiConnection->blacklistedBSSIDs.append(hwAddress);
2324 else if (keyValue.lower() ==
"seen-bssids") {
2325 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2326 TQT_DBusDataValueList::const_iterator it4;
2327 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2328 TQT_DBusData innerDataValue = *it4;
2329 TDEMACAddress hwAddress;
2330 hwAddress.fromString(innerDataValue.toString());
2331 wiFiConnection->heardBSSIDs.append(hwAddress);
2334 else if (keyValue.lower() ==
"security") {
2336 if (setting.lower() ==
"802-11-wireless-security") {
2337 wiFiConnection->securityRequired =
true;
2340 wiFiConnection->securityRequired =
false;
2343 else if (keyValue.lower() ==
"hidden") {
2344 wiFiConnection->isHiddenNetwork = dataValue2.toBool();
2347 else if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
2348 if (keyValue.lower() ==
"key-mgmt") {
2349 wiFiConnection->securitySettings.keyType = nmWiFiKeyTypeToTDEWiFiKeyType(dataValue2.toString());
2351 else if (keyValue.lower() ==
"wep-tx-keyidx") {
2352 wiFiConnection->securitySettings.wepKeyIndex = dataValue2.toUInt32();
2354 else if (keyValue.lower() ==
"auth-alg") {
2355 wiFiConnection->securitySettings.authType = nmWiFiAuthTypeToTDEWiFiAuthType(dataValue2.toString());
2357 else if (keyValue.lower() ==
"proto") {
2358 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2359 TQT_DBusDataValueList::const_iterator it4;
2360 TQStringList strings;
2361 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2362 TQT_DBusData innerDataValue = *it4;
2363 strings.append(innerDataValue.toString());
2365 wiFiConnection->securitySettings.wpaVersion = nmWiFiWPAVersionToTDEWiFiWPAVersion(strings);
2367 else if (keyValue.lower() ==
"pairwise") {
2368 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2369 TQT_DBusDataValueList::const_iterator it4;
2370 TQStringList strings;
2371 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2372 TQT_DBusData innerDataValue = *it4;
2373 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2375 if ((wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2376 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2377 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2378 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2379 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2382 else if (keyValue.lower() ==
"group") {
2383 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2384 TQT_DBusDataValueList::const_iterator it4;
2385 TQStringList strings;
2386 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2387 TQT_DBusData innerDataValue = *it4;
2388 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2390 if ((wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2391 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2392 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2393 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2394 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2397 else if (keyValue.lower() ==
"leap-username") {
2398 wiFiConnection->securitySettings.leapUsername = dataValue2.toString();
2400 else if (keyValue.lower() ==
"wep-key-flags") {
2401 wiFiConnection->securitySettings.wepKeyFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2403 else if (keyValue.lower() ==
"wep-key-type") {
2404 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(dataValue2.toUInt32());
2406 else if (keyValue.lower() ==
"psk-flags") {
2407 wiFiConnection->securitySettings.pskFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2409 else if (keyValue.lower() ==
"leap-password-flags") {
2410 wiFiConnection->securitySettings.leapPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2412 wiFiConnection->securitySettings.valid =
true;
2414 else if (outerKeyValue.lower() ==
"vpn") {
2415 if (keyValue.lower() ==
"service-type") {
2416 TQString plugin = dataValue2.toString();
2417 plugin.replace(
"org.freedesktop.NetworkManager.",
"");
2418 vpnConnection->vpnPluginID = plugin;
2420 else if (keyValue.lower() ==
"user-name") {
2421 vpnConnection->lockedUserName = dataValue2.toString();
2423 else if (keyValue.lower() ==
"data") {
2424 vpnConnection->pluginData.clear();
2425 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
2426 TQT_DBusTQStringDataMap::const_iterator it4;
2427 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
2428 TQString keyValue4 = it4.key();
2429 TQT_DBusData dataValue4 = it4.data();
2430 if (dataValue4.type() == TQT_DBusData::String) {
2431 vpnConnection->pluginData[keyValue4] = dataValue4.toString();
2436 else if (outerKeyValue.lower() ==
"wimax") {
2437 if (keyValue.lower() ==
"mac-address") {
2438 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2439 TQT_DBusDataValueList::const_iterator it4;
2440 TDENetworkByteList macAddress;
2441 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2442 TQT_DBusData innerDataValue = *it4;
2443 macAddress.append(innerDataValue.toByte());
2445 connection->lockedHWAddress.setAddress(macAddress);
2447 else if (keyValue.lower() ==
"network-name") {
2448 wiMaxConnection->networkServiceProvider = dataValue2.toString();
2451 else if (outerKeyValue.lower() ==
"vlan") {
2452 if (keyValue.lower() ==
"interface-name") {
2453 vlanConnection->kernelName = dataValue2.toString();
2455 else if (keyValue.lower() ==
"parent") {
2456 vlanConnection->parentConnectionUUID = dataValue2.toString();
2458 else if (keyValue.lower() ==
"id") {
2459 vlanConnection->vlanID = dataValue2.toUInt32();
2461 else if (keyValue.lower() ==
"flags") {
2462 vlanConnection->vlanFlags = nmVLANFlagsToTDEVLANFlags(dataValue2.toUInt32());
2464 else if (keyValue.lower() ==
"ingress-priority-map") {
2465 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2466 TQT_DBusDataValueList::const_iterator it4;
2467 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2468 TQT_DBusData innerDataValue = *it4;
2469 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2470 vlanConnection->ingressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2473 else if (keyValue.lower() ==
"egress-priority-map") {
2474 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2475 TQT_DBusDataValueList::const_iterator it4;
2476 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2477 TQT_DBusData innerDataValue = *it4;
2478 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2479 vlanConnection->egressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2483 else if (outerKeyValue.lower() ==
"serial") {
2484 if (keyValue.lower() ==
"baud") {
2485 connection->serialConfig.baudRate = dataValue2.toUInt32();
2487 else if (keyValue.lower() ==
"bits") {
2488 connection->serialConfig.byteWidth = dataValue2.toUInt32();
2490 else if (keyValue.lower() ==
"parity") {
2491 connection->serialConfig.parity = nmParityToTDEParity(dataValue2.toByte());
2493 else if (keyValue.lower() ==
"stopbits") {
2494 connection->serialConfig.stopBits = dataValue2.toUInt32();
2496 else if (keyValue.lower() ==
"send-delay") {
2497 connection->serialConfig.txDelay = dataValue2.toUInt64();
2499 connection->serialConfig.valid =
true;
2501 else if (outerKeyValue.lower() ==
"ppp") {
2502 if (keyValue.lower() ==
"noauth") {
2503 connection->pppConfig.requireServerAuthentication = !(dataValue2.toBool());
2505 else if (keyValue.lower() ==
"refuse-eap") {
2506 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableEAP;
2507 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableEAP;
2509 else if (keyValue.lower() ==
"refuse-pap") {
2510 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisablePAP;
2511 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisablePAP;
2513 else if (keyValue.lower() ==
"refuse-chap") {
2514 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableCHAP;
2515 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableCHAP;
2517 else if (keyValue.lower() ==
"refuse-mschap") {
2518 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAP;
2519 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAP;
2521 else if (keyValue.lower() ==
"refuse-mschapv2") {
2522 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAPv2;
2523 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAPv2;
2525 else if (keyValue.lower() ==
"nobsdcomp") {
2526 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowBSDCompression;
2527 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowBSDCompression;
2529 else if (keyValue.lower() ==
"nodeflate") {
2530 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowDeflateCompression;
2531 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowDeflateCompression;
2533 else if (keyValue.lower() ==
"no-vj-comp") {
2534 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowVJCompression;
2535 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowVJCompression;
2537 else if (keyValue.lower() ==
"require-mppe") {
2538 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE;
2539 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE;
2541 else if (keyValue.lower() ==
"require-mppe-128") {
2542 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE128;
2543 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE128;
2545 else if (keyValue.lower() ==
"mppe-stateful") {
2546 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::StatefulMPPE;
2547 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::StatefulMPPE;
2549 else if (keyValue.lower() ==
"crtscts") {
2550 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::UseHardwareFlowControl;
2551 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::UseHardwareFlowControl;
2553 else if (keyValue.lower() ==
"baud") {
2554 connection->pppConfig.baudRate = dataValue2.toUInt32();
2556 else if (keyValue.lower() ==
"mru") {
2557 connection->pppConfig.mru = dataValue2.toUInt32();
2559 else if (keyValue.lower() ==
"mtu") {
2560 connection->pppConfig.mtu = dataValue2.toUInt32();
2562 else if (keyValue.lower() ==
"lcp-echo-interval") {
2563 connection->pppConfig.lcpEchoPingInterval = dataValue2.toUInt32();
2565 else if (keyValue.lower() ==
"lcp-echo-failure") {
2566 connection->pppConfig.lcpEchoFailureThreshold = dataValue2.toUInt32();
2568 connection->pppConfig.valid =
true;
2570 else if (outerKeyValue.lower() ==
"pppoe") {
2571 if (keyValue.lower() ==
"service") {
2572 connection->pppoeConfig.networkServiceProvider = dataValue2.toString();
2574 else if (keyValue.lower() ==
"username") {
2575 connection->pppoeConfig.username = dataValue2.toString();
2577 else if (keyValue.lower() ==
"password-flags") {
2578 connection->pppoeConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2580 connection->pppoeConfig.secretsValid =
true;
2582 else if ((outerKeyValue.lower() ==
"802-11-olpc-mesh") && (olpcMeshConnection)) {
2583 if (keyValue.lower() ==
"ssid") {
2584 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2585 TQT_DBusDataValueList::const_iterator it4;
2587 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2588 TQT_DBusData innerDataValue = *it4;
2589 olpcMeshConnection->SSID.resize(count+1);
2590 olpcMeshConnection->SSID[count] = innerDataValue.toByte();
2594 else if (keyValue.lower() ==
"channel") {
2595 olpcMeshConnection->channel = dataValue2.toUInt32();
2597 else if (keyValue.lower() ==
"dhcp-anycast-address") {
2598 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2599 TQT_DBusDataValueList::const_iterator it4;
2601 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2602 TQT_DBusData innerDataValue = *it4;
2603 olpcMeshConnection->anycastDHCPHWAddress.resize(count+1);
2604 olpcMeshConnection->anycastDHCPHWAddress[count] = innerDataValue.toByte();
2609 else if ((outerKeyValue.lower() ==
"bluetooth") && (bluetoothConnection)) {
2610 if (keyValue.lower() ==
"bdaddr") {
2611 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2612 TQT_DBusDataValueList::const_iterator it4;
2613 TDENetworkByteList macAddress;
2614 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2615 TQT_DBusData innerDataValue = *it4;
2616 macAddress.append(innerDataValue.toByte());
2618 connection->lockedHWAddress.setAddress(macAddress);
2620 else if (keyValue.lower() ==
"type") {
2621 bluetoothConnection->type = nmBluetoothModeToTDEBluetoothMode(dataValue2.toString());
2624 else if ((outerKeyValue.lower() ==
"cdma") && (modemConnection)) {
2625 if (keyValue.lower() ==
"number") {
2626 modemConnection->cdmaConfig.providerDataNumber = dataValue2.toString();
2628 else if (keyValue.lower() ==
"username") {
2629 modemConnection->cdmaConfig.username = dataValue2.toString();
2631 else if (keyValue.lower() ==
"password-flags") {
2632 modemConnection->cdmaConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2634 modemConnection->type = TDEModemConnectionType::CDMA;
2635 modemConnection->cdmaConfig.valid =
true;
2637 else if ((outerKeyValue.lower() ==
"gsm") && (modemConnection)) {
2638 if (keyValue.lower() ==
"number") {
2639 modemConnection->gsmConfig.providerDataNumber = dataValue2.toString();
2641 else if (keyValue.lower() ==
"username") {
2642 modemConnection->gsmConfig.username = dataValue2.toString();
2644 else if (keyValue.lower() ==
"password-flags") {
2645 modemConnection->gsmConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2647 else if (keyValue.lower() ==
"apn") {
2648 modemConnection->gsmConfig.accessPointName = dataValue2.toString();
2650 else if (keyValue.lower() ==
"network-id") {
2651 modemConnection->gsmConfig.networkID = dataValue2.toString();
2653 else if (keyValue.lower() ==
"network-type") {
2654 modemConnection->gsmConfig.networkType = nmGSMModeToTDEGSMMode(dataValue2.toInt32());
2656 else if (keyValue.lower() ==
"pin-flags") {
2657 modemConnection->gsmConfig.pinFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2659 else if (keyValue.lower() ==
"allowed-bands") {
2660 modemConnection->gsmConfig.allowedFrequencyBands = dataValue2.toUInt32();
2662 else if (keyValue.lower() ==
"home-only") {
2663 modemConnection->gsmConfig.allowRoaming = !dataValue2.toBool();
2665 modemConnection->type = TDEModemConnectionType::GSM;
2666 modemConnection->gsmConfig.valid =
true;
2668 else if (outerKeyValue.lower() ==
"ipv4") {
2669 if (keyValue.lower() ==
"addresses") {
2670 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2671 TQT_DBusDataValueList::const_iterator it4;
2672 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2673 TQT_DBusData innerDataValue = *it4;
2674 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2675 TQT_DBusDataValueList::const_iterator it5;
2677 TDENetworkSingleIPConfiguration ipConfig;
2678 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2679 TQT_DBusData innerMostDataValue = *it5;
2682 ipConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2684 else if (state == 1) {
2686 ipConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2688 else if (state == 2) {
2690 ipConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2694 ipConfig.valid =
true;
2695 connection->ipConfig.ipConfigurations.append(ipConfig);
2698 else if (keyValue.lower() ==
"dhcp-client-id") {
2699 connection->ipConfig.dhcpClientIdentifier = dataValue2.toString();
2701 else if (keyValue.lower() ==
"dns") {
2702 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2703 TQT_DBusDataValueList::const_iterator it4;
2704 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2705 TQT_DBusData innerDataValue = *it4;
2706 connection->ipConfig.resolvers.append(TQHostAddress(reverseIPV4ByteOrder(innerDataValue.toUInt32())));
2709 else if (keyValue.lower() ==
"dns-search") {
2710 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2711 TQT_DBusDataValueList::const_iterator it4;
2712 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2713 TQT_DBusData innerDataValue = *it4;
2714 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
false));
2717 else if (keyValue.lower() ==
"ignore-auto-dns") {
2718 bool nm_static_dns = dataValue2.toBool();
2719 if (nm_static_dns) {
2723 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2726 else if (keyValue.lower() ==
"may-fail") {
2727 bool nm_may_fail = dataValue2.toBool();
2728 connection->requireIPV4 = !nm_may_fail;
2730 else if (keyValue.lower() ==
"method") {
2731 TQString nm_method = dataValue2.toString().lower();
2732 if (nm_method ==
"auto") {
2733 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2735 else if (nm_method ==
"manual") {
2738 else if (nm_method ==
"link-local") {
2741 else if (nm_method ==
"shared") {
2744 else if (nm_method ==
"disabled") {
2748 else if (keyValue.lower() ==
"ignore-auto-routes") {
2749 bool nm_static_routes = dataValue2.toBool();
2750 if (nm_static_routes) {
2754 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2757 else if (keyValue.lower() ==
"never-default") {
2758 bool nm_can_default_route = !dataValue2.toBool();
2759 if (nm_can_default_route) {
2760 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2766 else if (keyValue.lower() ==
"routes") {
2767 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2768 TQT_DBusDataValueList::const_iterator it4;
2769 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2770 TQT_DBusData innerDataValue = *it4;
2771 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2772 TQT_DBusDataValueList::const_iterator it5;
2774 TDENetworkSingleRouteConfiguration routeConfig;
2775 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2776 TQT_DBusData innerMostDataValue = *it5;
2779 routeConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2781 else if (state == 1) {
2783 routeConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2785 else if (state == 2) {
2787 routeConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2789 else if (state == 3) {
2791 routeConfig.metric = innerMostDataValue.toUInt32();
2795 routeConfig.valid =
true;
2796 connection->ipConfig.routeConfigurations.append(routeConfig);
2799 connection->ipConfig.valid =
true;
2801 else if (outerKeyValue.lower() ==
"ipv6") {
2802 if (keyValue.lower() ==
"addresses") {
2803 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2804 TQT_DBusDataValueList::const_iterator it4;
2805 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2806 TQT_DBusData innerDataValue = *it4;
2807 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2808 TQT_DBusDataValueList::const_iterator it5;
2809 TDENetworkSingleIPConfiguration ipConfig;
2811 TQT_DBusDataValueList innerMostValueList;
2812 innerMostValueList = innerValueList[0].toTQValueList();
2813 TQ_UINT8 nm_v6address[16];
2814 unsigned char nm_addr_ptr = 0;
2815 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2816 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2817 TQT_DBusData innerMostDataValue = *it5;
2818 if (nm_addr_ptr < 16) {
2819 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2823 ipConfig.ipAddress = TQHostAddress(nm_v6address);
2826 ipConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2829 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2830 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2831 TQT_DBusData innerMostDataValue = *it5;
2832 if (nm_addr_ptr < 16) {
2833 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2837 ipConfig.gateway = TQHostAddress(nm_v6address);
2839 ipConfig.valid =
true;
2840 connection->ipConfig.ipConfigurations.append(ipConfig);
2843 else if (keyValue.lower() ==
"dns") {
2844 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2845 TQT_DBusDataValueList::const_iterator it4;
2846 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2847 TQT_DBusData innerDataValue = *it4;
2848 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2849 TQT_DBusDataValueList::const_iterator it5;
2850 TQ_UINT8 nm_v6address[16];
2851 unsigned char nm_addr_ptr = 0;
2852 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2853 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2854 TQT_DBusData innerMostDataValue = *it5;
2855 if (nm_addr_ptr < 16) {
2856 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2860 connection->ipConfig.resolvers.append(TQHostAddress(nm_v6address));
2863 else if (keyValue.lower() ==
"dns-search") {
2864 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2865 TQT_DBusDataValueList::const_iterator it4;
2866 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2867 TQT_DBusData innerDataValue = *it4;
2868 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2869 TQT_DBusDataValueList::const_iterator it5;
2870 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
true));
2873 else if (keyValue.lower() ==
"ignore-auto-dns") {
2874 bool nm_static_dns = dataValue2.toBool();
2875 if (nm_static_dns) {
2879 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2882 else if (keyValue.lower() ==
"may-fail") {
2883 bool nm_may_fail = dataValue2.toBool();
2884 connection->requireIPV6 = !nm_may_fail;
2886 else if (keyValue.lower() ==
"method") {
2887 TQString nm_method = dataValue2.toString().lower();
2888 if (nm_method ==
"auto") {
2889 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPIP;
2891 else if (nm_method ==
"manual") {
2894 else if (nm_method ==
"link-local") {
2897 else if (nm_method ==
"shared") {
2900 else if (nm_method ==
"ignore") {
2904 else if (keyValue.lower() ==
"ignore-auto-routes") {
2905 bool nm_static_routes = dataValue2.toBool();
2906 if (nm_static_routes) {
2910 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
2913 else if (keyValue.lower() ==
"never-default") {
2914 bool nm_can_default_route = !dataValue2.toBool();
2915 if (nm_can_default_route) {
2916 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2922 else if (keyValue.lower() ==
"routes") {
2923 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2924 TQT_DBusDataValueList::const_iterator it4;
2925 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2926 TQT_DBusData innerDataValue = *it4;
2927 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2928 TQT_DBusDataValueList::const_iterator it5;
2929 TDENetworkSingleRouteConfiguration routeConfig;
2931 TQT_DBusDataValueList innerMostValueList;
2932 innerMostValueList = innerValueList[0].toTQValueList();
2933 TQ_UINT8 nm_v6address[16];
2934 unsigned char nm_addr_ptr = 0;
2935 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2936 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2937 TQT_DBusData innerMostDataValue = *it5;
2938 if (nm_addr_ptr < 16) {
2939 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2943 routeConfig.ipAddress = TQHostAddress(nm_v6address);
2946 routeConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2949 innerMostValueList = innerValueList[2].toTQValueList();
2951 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2952 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2953 TQT_DBusData innerMostDataValue = *it5;
2954 if (nm_addr_ptr < 16) {
2955 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2959 routeConfig.gateway = TQHostAddress(nm_v6address);
2962 routeConfig.metric = innerValueList[3].toUInt32();
2964 routeConfig.valid =
true;
2965 connection->ipConfig.routeConfigurations.append(routeConfig);
2968 connection->ipConfig.valid =
true;
2983 if ((deviceMACAddress == connection->lockedHWAddress) || (!connection->lockedHWAddress.isValid()) || (!deviceMACAddress.isValid())) {
2984 loadConnectionAllowedValues(connection);
2985 m_connectionList->append(connection);
2990 PRINT_ERROR((error.name() +
": " + error.message()))
2996 PRINT_ERROR((error.name() +
": " + error.message()))
2998 internalNetworkManagementEvent(TDENetworkGlobalEventType::ConnectionListChanged);
3001 d->nonReentrantCallActive =
false;
3004 void TDENetworkConnectionManager_BackendNM::loadConnectionAllowedValues(TDENetworkConnection* connection) {
3007 connection->eapConfig.allowedPhase2NonEAPMethods.clear();
3008 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MD5);
3009 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3010 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::OTP);
3011 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::GTC);
3012 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::TLS);
3014 connection->eapConfig.allowedPhase2EAPMethods.clear();
3015 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::PAP);
3016 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::CHAP);
3017 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAP);
3018 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3019 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::OTP);
3020 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::GTC);
3021 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::TLS);
3023 connection->eapConfig.allowedValid =
true;
3030 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecrets(TQString uuid) {
3031 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3033 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3038 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3039 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3044 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3047 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-1x");
3048 if (wiFiConnection) {
3049 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-11-wireless-security");
3051 if (vpnConnection) {
3052 ret = ret && loadConnectionSecretsForGroup(uuid,
"vpn");
3054 ret = ret && loadConnectionSecretsForGroup(uuid,
"pppoe");
3055 if (modemConnection) {
3056 ret = ret && loadConnectionSecretsForGroup(uuid,
"cdma");
3057 ret = ret && loadConnectionSecretsForGroup(uuid,
"gsm");
3062 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecretsForGroup(TQString uuid, TQString group) {
3063 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3065 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3070 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3071 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3076 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3077 TQT_DBusObjectPath existingConnection;
3078 TQT_DBusError error;
3080 TQT_DBusTQStringDataMap connectionSecretsMap(TQT_DBusData::String);
3081 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
3083 #ifndef USE_ASYNC_DBUS_CALLS
3085 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3086 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3087 ret = connectionSettings.GetSecrets(group, connectionSecretsMap, error);
3088 if (ret && error.isValid()) {
3090 PRINT_ERROR((error.name() +
": " + error.message()))
3093 #else // USE_ASYNC_DBUS_CALLS
3095 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3096 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3097 connect(&connectionSettings, SIGNAL(GetSecretsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3099 ret = connectionSettings.GetSecretsAsync(asyncCallID, group, error);
3100 if (ret && error.isValid()) {
3102 PRINT_ERROR((error.name() +
": " + error.message()))
3106 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3107 TQTimer nmCallTimeoutTimer;
3108 nmCallTimeoutTimer.start(NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS, TRUE);
3109 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3110 tqApp->processEvents();
3111 if (!nmCallTimeoutTimer.isActive()) {
3112 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3116 connectionSecretsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3117 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3118 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3119 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3121 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3122 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3123 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3125 #endif // USE_ASYNC_DBUS_CALLS
3127 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3128 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
3129 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSecretsMap));
3130 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3133 TQT_DBusTQStringDataMap::const_iterator it2;
3134 for (it2 = connectionSecretsMap.begin(); it2 != connectionSecretsMap.end(); ++it2) {
3135 TQString outerKeyValue = it2.key();
3136 TQT_DBusData dataValue = it2.data();
3137 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3138 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
3139 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3140 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
3141 TQT_DBusTQStringDataMap::const_iterator it3;
3142 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
3143 TQString keyValue = it3.key();
3144 TQT_DBusData dataValue = it3.data();
3145 if (dataValue.type() != TQT_DBusData::Variant) {
3146 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3147 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
3148 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3152 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
3153 TQT_DBusData dataValue2 = dataValueVariant.value;
3154 if (dataValue2.type() != TQT_DBusData::Variant) {
3155 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3156 printf(
"[network-manager comm debug] %s = %s (type %d(%s), signature %s)\n", keyValue.ascii(), dataValue2.toString().ascii(), dataValue2.type(), dataValue2.typeName(), dataValueVariant.signature.ascii()); fflush(stdout);
3157 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3159 if (outerKeyValue.lower() ==
"802-1x") {
3160 if (keyValue.lower() ==
"password") {
3161 connection->eapConfig.password = dataValue2.toString();
3163 else if (keyValue.lower() ==
"password-raw") {
3164 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
3165 TQT_DBusDataValueList::const_iterator it4;
3167 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
3168 TQT_DBusData innerDataValue = *it4;
3170 connection->eapConfig.binaryPassword.resize(count+1);
3171 connection->eapConfig.binaryPassword[count] = innerDataValue.toByte();
3174 else if (keyValue.lower() ==
"private-key-password") {
3175 connection->eapConfig.privateKeyPassword = dataValue2.toString();
3177 else if (keyValue.lower() ==
"phase2-private-key-password") {
3178 connection->eapConfig.phase2PrivateKeyPassword = dataValue2.toString();
3180 connection->eapConfig.secretsValid =
true;
3182 if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
3183 if (keyValue.lower() ==
"wep-key0") {
3184 wiFiConnection->securitySettings.wepKey0 = dataValue2.toString();
3185 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey0);
3187 else if (keyValue.lower() ==
"wep-key1") {
3188 wiFiConnection->securitySettings.wepKey1 = dataValue2.toString();
3189 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey1);
3191 else if (keyValue.lower() ==
"wep-key2") {
3192 wiFiConnection->securitySettings.wepKey2 = dataValue2.toString();
3193 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey2);
3195 else if (keyValue.lower() ==
"wep-key3") {
3196 wiFiConnection->securitySettings.wepKey3 = dataValue2.toString();
3197 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey3);
3199 else if (keyValue.lower() ==
"psk") {
3200 wiFiConnection->securitySettings.psk = dataValue2.toString();
3202 else if (keyValue.lower() ==
"eap-password") {
3203 wiFiConnection->securitySettings.leapPassword = dataValue2.toString();
3206 if ((outerKeyValue.lower() ==
"vpn") && (vpnConnection)) {
3207 if (keyValue.lower() ==
"secrets") {
3208 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
3209 TQT_DBusTQStringDataMap::const_iterator it4;
3210 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
3211 vpnConnection->pluginSecrets.clear();
3212 TQString keyValue4 = it4.key();
3213 TQT_DBusData dataValue4 = it4.data();
3214 if (dataValue4.type() == TQT_DBusData::String) {
3215 vpnConnection->pluginSecrets[keyValue4] = dataValue4.toString();
3218 vpnConnection->secretsValid =
true;
3221 if (outerKeyValue.lower() ==
"pppoe") {
3222 if (keyValue.lower() ==
"password") {
3223 connection->pppoeConfig.password = dataValue2.toString();
3225 connection->pppoeConfig.secretsValid =
true;
3227 if (outerKeyValue.lower() ==
"cdma") {
3228 if (keyValue.lower() ==
"password") {
3229 modemConnection->cdmaConfig.password = dataValue2.toString();
3231 modemConnection->cdmaConfig.secretsValid =
true;
3233 if (outerKeyValue.lower() ==
"gsm") {
3234 if (keyValue.lower() ==
"password") {
3235 modemConnection->gsmConfig.password = dataValue2.toString();
3237 else if (keyValue.lower() ==
"pin") {
3238 modemConnection->gsmConfig.pin = dataValue2.toString();
3240 modemConnection->gsmConfig.secretsValid =
true;
3249 PRINT_ERROR(TQString(
"Unable to load secrets for connection with uuid '%1'").arg(uuid))
3254 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
3259 bool TDENetworkConnectionManager_BackendNM::saveConnection(TDENetworkConnection* connection) {
3260 bool timed_out = FALSE;
3261 bool command_failed = FALSE;
3264 PRINT_ERROR(TQString(
"connection cannot be NULL!"));
3269 if (connection->UUID ==
"") {
3270 bool unique =
false;
3272 connection->UUID = TQUuid::createUuid().toString();
3273 connection->UUID.replace(
"{",
"");
3274 connection->UUID.replace(
"}",
"");
3275 if (!findConnectionByUUID(connection->UUID)) {
3283 TDEWiredEthernetConnection* ethernetConnection =
dynamic_cast<TDEWiredEthernetConnection*
>(connection);
3284 TDEWiredInfinibandConnection* infinibandConnection =
dynamic_cast<TDEWiredInfinibandConnection*
>(connection);
3285 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3286 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3287 TDEWiMaxConnection* wiMaxConnection =
dynamic_cast<TDEWiMaxConnection*
>(connection);
3288 TDEVLANConnection* vlanConnection =
dynamic_cast<TDEVLANConnection*
>(connection);
3289 TDEOLPCMeshConnection* olpcMeshConnection =
dynamic_cast<TDEOLPCMeshConnection*
>(connection);
3290 TDEBluetoothConnection* bluetoothConnection =
dynamic_cast<TDEBluetoothConnection*
>(connection);
3291 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3292 TQT_DBusObjectPath existingConnection;
3293 TQT_DBusError error;
3296 TQT_DBusTQStringDataMap connectionSettingsMap(TQT_DBusData::String);
3298 ret = d->m_networkManagerSettings->GetConnectionByUuid(connection->UUID, existingConnection, error);
3300 #ifndef USE_ASYNC_DBUS_CALLS
3302 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3303 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3304 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
3305 if (ret && error.isValid()) {
3307 PRINT_ERROR((error.name() +
": " + error.message()))
3310 #else // USE_ASYNC_DBUS_CALLS
3312 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3313 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3314 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3316 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
3317 if (ret && error.isValid()) {
3319 PRINT_ERROR((error.name() +
": " + error.message()))
3323 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3324 TQTimer nmCallTimeoutTimer;
3325 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
3326 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3327 tqApp->processEvents();
3328 if (!nmCallTimeoutTimer.isActive()) {
3329 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3334 connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3335 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3336 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3337 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3339 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3340 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3341 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3343 #endif // USE_ASYNC_DBUS_CALLS
3351 TQT_DBusData dbusData;
3352 TQT_DBusData innerDbusData;
3353 TQMap<TQString, TQT_DBusData> outerMap = connectionSettingsMap.toTQMap();
3356 dbusData = outerMap[
"connection"];
3358 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3360 settingsMap[
"id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->friendlyName));
3363 if (ethernetConnection) type =
"802-3-ethernet";
3364 else if (infinibandConnection) type =
"infiniband";
3365 else if (wiFiConnection) type =
"802-11-wireless";
3366 else if (vpnConnection) type =
"vpn";
3367 else if (wiMaxConnection) type =
"wimax";
3368 else if (vlanConnection) type =
"vlan";
3369 else if (olpcMeshConnection) type =
"802-11-olpc-mesh";
3370 else if (bluetoothConnection) type =
"bluetooth";
3371 else if (modemConnection) {
3372 if (modemConnection->type == TDEModemConnectionType::CDMA) {
3375 else if (modemConnection->type == TDEModemConnectionType::GSM) {
3379 if (!type.isNull()) settingsMap[
"type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(type));
3381 settingsMap[
"uuid"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->UUID));
3383 TQT_DBusDataValueList valueList;
3385 for (TQStringList::Iterator it = connection->authorizedUsers.begin(); it != connection->authorizedUsers.end(); ++it) {
3386 TQString assembledString = TQString(
"user:%1:").arg(*it);
3387 valueList.append(TQT_DBusData::fromString(assembledString));
3390 if (valueList.count() > 0) settingsMap[
"permissions"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3391 else settingsMap.remove(
"permissions");
3393 settingsMap[
"autoconnect"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->autoConnect));
3394 settingsMap[
"read-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->readOnly));
3395 UPDATE_STRING_SETTING_IF_VALID(connection->masterConnectionUUID,
"master", settingsMap)
3397 TQString slaveType = tdeSlaveTypeToNMSlaveType(connection->slaveType);
3398 if (slaveType !=
"") settingsMap[
"slave-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(slaveType));
3399 else settingsMap.remove(
"slave-type");
3403 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3404 groupValid = (settingsMap.count() > 0);
3406 if (groupValid) outerMap.insert(
"connection", dbusData, TRUE);
else outerMap.remove(
"connection");
3409 dbusData = outerMap[
"802-1x"];
3411 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3413 if (connection->eapConfig.valid) {
3414 TQT_DBusDataValueList valueList;
3418 valueList.append(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.type)));
3420 settingsMap[
"eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3423 settingsMap.remove(
"eap");
3425 if (connection->eapConfig.valid) {
3426 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.userName,
"identity", settingsMap)
3427 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.anonymousUserName, "anonymous-identity", settingsMap)
3428 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.pacFileName, "pac-file", settingsMap)
3431 settingsMap.remove(
"identity");
3432 settingsMap.remove(
"anonymous-identity");
3433 settingsMap.remove(
"pac-file");
3435 if (connection->eapConfig.valid) {
3436 TQT_DBusDataValueList valueList;
3439 for (count=0; count<connection->eapConfig.caCertificate.count(); count++) {
3440 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.caCertificate[count]));
3443 if (valueList.count() > 0) settingsMap[
"ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3444 else settingsMap.remove(
"ca-cert");
3447 settingsMap.remove(
"ca-cert");
3449 if (connection->eapConfig.valid) {
3450 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.additionalCAFilesPath,
"ca-path", settingsMap)
3451 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.authServerCertSubjectMatch, "subject-match", settingsMap)
3454 settingsMap.remove(
"ca-path");
3455 settingsMap.remove(
"subject-match");
3457 if (connection->eapConfig.valid) {
3458 TQT_DBusDataValueList valueList;
3460 for (TQStringList::Iterator it = connection->eapConfig.alternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.alternateAuthServerCertSubjectMatch.end(); ++it) {
3461 valueList.append(TQT_DBusData::fromString(*it));
3464 if (valueList.count() > 0) settingsMap[
"altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3465 else settingsMap.remove(
"altsubject-matches");
3468 settingsMap.remove(
"altsubject-matches");
3470 if (connection->eapConfig.valid) {
3471 TQT_DBusDataValueList valueList;
3474 for (count=0; count<connection->eapConfig.clientCertificate.count(); count++) {
3475 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.clientCertificate[count]));
3478 if (valueList.count() > 0) settingsMap[
"client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3479 else settingsMap.remove(
"client-cert");
3482 settingsMap.remove(
"client-cert");
3484 if (connection->eapConfig.valid) {
3485 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPVersion,
"phase1-peapver", settingsMap)
3486 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPLabel, "phase1-peaplabel", settingsMap)
3487 UPDATE_STRING_SETTING_IF_VALID(tdeEAPFastFlagsToNMEAPFastFlags(connection->eapConfig.fastProvisioningFlags), "phase1-fast-provisioning", settingsMap)
3490 settingsMap.remove(
"phase1-peapver");
3491 settingsMap.remove(
"phase1-peaplabel");
3492 settingsMap.remove(
"phase1-fast-provisioning");
3494 if (connection->eapConfig.valid) {
3495 settingsMap[
"phase2-auth"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2NonEAPAuthMethod)));
3496 settingsMap[
"phase2-autheap"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2EAPAuthMethod)));
3499 settingsMap.remove(
"phase2-auth");
3500 settingsMap.remove(
"phase2-autheap");
3502 if (connection->eapConfig.valid) {
3503 TQT_DBusDataValueList valueList;
3506 for (count=0; count<connection->eapConfig.phase2CaCertificate.count(); count++) {
3507 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2CaCertificate[count]));
3510 if (valueList.count() > 0) settingsMap[
"phase2-ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3511 else settingsMap.remove(
"phase2-ca-cert");
3514 settingsMap.remove(
"phase2-ca-cert");
3516 if (connection->eapConfig.valid) {
3517 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2CaFilesPath,
"phase2-ca-path", settingsMap)
3518 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2AuthServerCertSubjectMatch, "phase2-subject-match", settingsMap)
3521 settingsMap.remove(
"phase2-ca-path");
3522 settingsMap.remove(
"phase2-subject-match");
3524 if (connection->eapConfig.valid) {
3525 TQT_DBusDataValueList valueList;
3527 for (TQStringList::Iterator it = connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.end(); ++it) {
3528 valueList.append(TQT_DBusData::fromString(*it));
3531 if (valueList.count() > 0) settingsMap[
"phase2-altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3532 else settingsMap.remove(
"phase2-altsubject-matches");
3535 settingsMap.remove(
"phase2-altsubject-matches");
3537 if (connection->eapConfig.valid) {
3538 TQT_DBusDataValueList valueList;
3541 for (count=0; count<connection->eapConfig.phase2ClientCertificate.count(); count++) {
3542 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2ClientCertificate[count]));
3545 if (valueList.count() > 0) settingsMap[
"phase2-client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3546 else settingsMap.remove(
"phase2-client-cert");
3549 settingsMap.remove(
"phase2-client-cert");
3551 if (connection->eapConfig.valid) {
3552 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.passwordFlags)));
3553 settingsMap[
"password-raw-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.binaryPasswordFlags)));
3556 settingsMap.remove(
"password-flags");
3557 settingsMap.remove(
"password-raw-flags");
3559 if (connection->eapConfig.valid) {
3560 TQT_DBusDataValueList valueList;
3563 for (count=0; count<connection->eapConfig.privateKey.count(); count++) {
3564 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.privateKey[count]));
3567 if (valueList.count() > 0) settingsMap[
"private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3568 else settingsMap.remove(
"private-key");
3571 settingsMap.remove(
"private-key");
3573 if (connection->eapConfig.valid) {
3574 settingsMap[
"private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.privateKeyPasswordFlags)));
3577 settingsMap.remove(
"private-key-password-flags");
3579 if (connection->eapConfig.valid) {
3580 TQT_DBusDataValueList valueList;
3583 for (count=0; count<connection->eapConfig.phase2PrivateKey.count(); count++) {
3584 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2PrivateKey[count]));
3587 if (valueList.count() > 0) settingsMap[
"phase2-private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3588 else settingsMap.remove(
"phase2-private-key");
3591 settingsMap.remove(
"phase2-private-key");
3593 if (connection->eapConfig.valid) {
3594 settingsMap[
"phase2-private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.phase2PrivateKeyPasswordFlags)));
3597 settingsMap.remove(
"phase2-private-key-password-flags");
3599 if (connection->eapConfig.valid) {
3600 settingsMap[
"system-ca-certs"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->eapConfig.forceSystemCaCertificates));
3603 settingsMap.remove(
"system-ca-certs");
3605 if (connection->eapConfig.secretsValid) {
3606 settingsMap[
"password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.password));
3609 settingsMap.remove(
"password");
3611 if (connection->eapConfig.valid) {
3612 TQT_DBusDataValueList valueList;
3615 for (count=0; count<connection->eapConfig.binaryPassword.count(); count++) {
3616 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.binaryPassword[count]));
3619 if (valueList.count() > 0) settingsMap[
"password-raw"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3620 else settingsMap.remove(
"password-raw");
3623 settingsMap.remove(
"password-raw");
3625 if (connection->eapConfig.secretsValid) {
3626 settingsMap[
"private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.privateKeyPassword));
3627 settingsMap[
"phase2-private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.phase2PrivateKeyPassword));
3630 settingsMap.remove(
"private-key-password");
3631 settingsMap.remove(
"phase2-private-key-password");
3634 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3635 groupValid = (settingsMap.count() > 0);
3637 if (groupValid) outerMap.insert(
"802-1x", dbusData, TRUE);
else outerMap.remove(
"802-1x");
3640 dbusData = outerMap[
"802-3-ethernet"];
3641 if (ethernetConnection) {
3642 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3644 settingsMap[
"duplex"] = convertDBUSDataToVariantData(TQT_DBusData::fromString((connection->fullDuplex)?
"full":
"half"));
3645 if (connection->lockedHWAddress.isValid()) {
3646 TDENetworkByteList address = connection->lockedHWAddress.address();
3647 TQT_DBusDataValueList valueList;
3648 TDENetworkByteList::iterator it;
3649 for (it = address.begin(); it != address.end(); ++it) {
3650 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3651 valueList.append(innerDataValue);
3653 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3654 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3657 settingsMap.remove(
"mac-address");
3659 if (connection->manualHWAddress.isValid()) {
3660 TDENetworkByteList address = connection->manualHWAddress.address();
3661 TQT_DBusDataValueList valueList;
3662 TDENetworkByteList::iterator it;
3663 for (it = address.begin(); it != address.end(); ++it) {
3664 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3665 valueList.append(innerDataValue);
3667 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3668 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3671 settingsMap.remove(
"cloned-mac-address");
3673 if (connection->mtu > 0) {
3674 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3677 settingsMap.remove(
"mtu");
3680 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3681 groupValid = (settingsMap.count() > 0);
3683 if (groupValid) outerMap.insert(
"802-3-ethernet", dbusData, TRUE);
else outerMap.remove(
"802-3-ethernet");
3686 dbusData = outerMap[
"infiniband"];
3687 if (infinibandConnection) {
3688 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3690 if (connection->lockedHWAddress.isValid()) {
3691 TDENetworkByteList address = connection->lockedHWAddress.address();
3692 TQT_DBusDataValueList valueList;
3693 TDENetworkByteList::iterator it;
3694 for (it = address.begin(); it != address.end(); ++it) {
3695 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3696 valueList.append(innerDataValue);
3698 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3699 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3702 settingsMap.remove(
"mac-address");
3704 if (connection->mtu > 0) {
3705 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3708 settingsMap.remove(
"mtu");
3710 UPDATE_STRING_SETTING_IF_VALID(tdeIBTransportToNMIBTransport(infinibandConnection->transportMode),
"transport-mode", settingsMap)
3712 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3713 groupValid = (settingsMap.count() > 0);
3715 if (groupValid) outerMap.insert(
"infiniband", dbusData, TRUE);
else outerMap.remove(
"infiniband");
3718 dbusData = outerMap[
"802-11-wireless"];
3719 if (wiFiConnection) {
3720 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3724 TQT_DBusDataValueList valueList;
3725 for (i=0; i<wiFiConnection->SSID.count(); i++) {
3726 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(wiFiConnection->SSID[i]);
3727 valueList.append(innerDataValue);
3729 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3731 if (connection->lockedHWAddress.isValid()) {
3732 TDENetworkByteList address = connection->lockedHWAddress.address();
3733 TQT_DBusDataValueList valueList;
3734 TDENetworkByteList::iterator it;
3735 for (it = address.begin(); it != address.end(); ++it) {
3736 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3737 valueList.append(innerDataValue);
3739 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3740 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3743 settingsMap.remove(
"mac-address");
3745 if (connection->manualHWAddress.isValid()) {
3746 TDENetworkByteList address = connection->manualHWAddress.address();
3747 TQT_DBusDataValueList valueList;
3748 TDENetworkByteList::iterator it;
3749 for (it = address.begin(); it != address.end(); ++it) {
3750 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3751 valueList.append(innerDataValue);
3753 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3754 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3757 settingsMap.remove(
"cloned-mac-address");
3759 if (connection->mtu > 0) {
3760 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3763 settingsMap.remove(
"mtu");
3765 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiModeToNMWiFiMode(wiFiConnection->operatingMode),
"mode", settingsMap)
3766 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiFrequencyBandToNMWiFiFrequencyBand(wiFiConnection->bandRestriction), "band", settingsMap)
3767 if (wiFiConnection->channelRestriction > 0) {
3768 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->channelRestriction));
3771 settingsMap.remove(
"channel");
3773 if (wiFiConnection->bitRateRestriction > 0) {
3774 settingsMap[
"rate"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->bitRateRestriction/1000));
3777 settingsMap.remove(
"rate");
3779 if (wiFiConnection->powerRestriction > 0) {
3780 settingsMap[
"tx-power"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->powerRestriction));
3783 settingsMap.remove(
"tx-power");
3785 if (wiFiConnection->accessPointRestriction.isValid()) {
3786 TDENetworkByteList address = wiFiConnection->accessPointRestriction.address();
3787 TQT_DBusDataValueList valueList;
3788 TDENetworkByteList::iterator it;
3789 for (it = address.begin(); it != address.end(); ++it) {
3790 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3791 valueList.append(innerDataValue);
3793 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3794 settingsMap[
"bssid"] = convertDBUSDataToVariantData(nmHWAddress);
3797 settingsMap.remove(
"bssid");
3800 TQT_DBusDataValueList valueList;
3801 TDEMACAddressList::iterator it;
3802 for (it = wiFiConnection->blacklistedBSSIDs.begin(); it != wiFiConnection->blacklistedBSSIDs.end(); ++it) {
3803 valueList.append(TQT_DBusData::fromString((*it).toString()));
3805 if (valueList.count() > 0) settingsMap[
"mac-address-blacklist"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3808 TQT_DBusDataValueList valueList;
3809 TDEMACAddressList::iterator it;
3810 for (it = wiFiConnection->heardBSSIDs.begin(); it != wiFiConnection->heardBSSIDs.end(); ++it) {
3811 valueList.append(TQT_DBusData::fromString((*it).toString()));
3813 if (valueList.count() > 0) settingsMap[
"seen-bssids"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3816 if (wiFiConnection->securityRequired) {
3817 settingsMap[
"security"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(
"802-11-wireless-security"));
3820 settingsMap.remove(
"security");
3824 if (wiFiConnection->isHiddenNetwork) {
3825 settingsMap[
"hidden"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(
true));
3828 settingsMap.remove(
"hidden");
3832 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3833 groupValid = (settingsMap.count() > 0);
3835 if (groupValid) outerMap.insert(
"802-11-wireless", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless");
3838 dbusData = outerMap[
"802-11-wireless-security"];
3839 if (wiFiConnection) {
3840 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3842 if (wiFiConnection->securityRequired) {
3843 if (wiFiConnection->securityRequired) {
3844 settingsMap[
"key-mgmt"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeWiFiKeyTypeToNMWiFiKeyType(wiFiConnection->securitySettings.keyType)));
3846 if (wiFiConnection->securitySettings.wepKeyIndex > 0) {
3847 settingsMap[
"wep-tx-keyidx"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->securitySettings.wepKeyIndex));
3850 settingsMap.remove(
"wep-tx-keyidx");
3852 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiAuthTypeToNMWiFiAuthType(wiFiConnection->securitySettings.authType),
"auth-alg", settingsMap)
3854 TQT_DBusDataValueList valueList;
3856 TQStringList strings = tdeWiFiWPAVersionToNMWiFiWPAVersion(wiFiConnection->securitySettings.wpaVersion);
3857 for (TQStringList::Iterator it = strings.begin(); it != strings.end(); ++it) {
3858 valueList.append(TQT_DBusData::fromString(*it));
3861 if (valueList.count() > 0) settingsMap[
"proto"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3862 else settingsMap.remove(
"proto");
3865 TQT_DBusDataValueList valueList;
3867 if (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3868 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3869 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3870 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3871 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3873 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedPairWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedPairWiseCiphers.end(); ++it) {
3874 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3877 if (valueList.count() > 0) settingsMap[
"pairwise"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3878 else settingsMap.remove(
"pairwise");
3881 TQT_DBusDataValueList valueList;
3883 if (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3884 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3885 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3886 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3887 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3889 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedGroupWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedGroupWiseCiphers.end(); ++it) {
3890 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3893 if (valueList.count() > 0) settingsMap[
"group"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3894 else settingsMap.remove(
"group");
3896 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapUsername,
"leap-username", settingsMap)
3897 settingsMap["wep-key-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.wepKeyFlags)));
3898 settingsMap["wep-key-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType)));
3899 settingsMap["psk-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.pskFlags)));
3900 settingsMap["leap-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.leapPasswordFlags)));
3901 if (wiFiConnection->securitySettings.secretsValid) {
3902 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey0,
"wep-key0", settingsMap)
3903 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey1, "wep-key1", settingsMap)
3904 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey2, "wep-key2", settingsMap)
3905 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey3, "wep-key3", settingsMap)
3906 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.psk, "psk", settingsMap)
3907 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapPassword, "leap-password", settingsMap)
3910 settingsMap.remove(
"wep-key0");
3911 settingsMap.remove(
"wep-key1");
3912 settingsMap.remove(
"wep-key2");
3913 settingsMap.remove(
"wep-key3");
3914 settingsMap.remove(
"psk");
3915 settingsMap.remove(
"leap-password");
3919 settingsMap.remove(
"key-mgmt");
3920 settingsMap.remove(
"wep-tx-keyidx");
3921 settingsMap.remove(
"auth-alg");
3922 settingsMap.remove(
"proto");
3923 settingsMap.remove(
"pairwise");
3924 settingsMap.remove(
"group");
3925 settingsMap.remove(
"leap-username");
3926 settingsMap.remove(
"wep-key-flags");
3927 settingsMap.remove(
"wep-key-type");
3928 settingsMap.remove(
"psk-flags");
3929 settingsMap.remove(
"leap-password-flags");
3930 settingsMap.remove(
"wep-key0");
3931 settingsMap.remove(
"wep-key1");
3932 settingsMap.remove(
"wep-key2");
3933 settingsMap.remove(
"wep-key3");
3934 settingsMap.remove(
"psk");
3935 settingsMap.remove(
"leap-password");
3938 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3939 groupValid = (settingsMap.count() > 0);
3941 if (groupValid) outerMap.insert(
"802-11-wireless-security", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless-security");
3944 dbusData = outerMap[
"vpn"];
3945 if (vpnConnection) {
3946 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3949 TQString pluginService = vpnConnection->vpnPluginID;
3950 if (pluginService !=
"") {
3951 pluginService =
"org.freedesktop.NetworkManager." + pluginService;
3953 UPDATE_STRING_SETTING_IF_VALID(pluginService,
"service-type", settingsMap)
3955 UPDATE_STRING_SETTING_IF_VALID(vpnConnection->lockedUserName,
"user-name", settingsMap)
3957 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3958 TDENetworkSettingsMap::const_iterator it;
3959 for (it = vpnConnection->pluginData.begin(); it != vpnConnection->pluginData.end(); ++it) {
3960 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3962 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"data"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
3963 else settingsMap.remove(
"data");
3965 if (vpnConnection->secretsValid) {
3966 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3967 TDENetworkSettingsMap::const_iterator it;
3968 for (it = vpnConnection->pluginSecrets.begin(); it != vpnConnection->pluginSecrets.end(); ++it) {
3969 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3971 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"secrets"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
3972 else settingsMap.remove(
"secrets");
3975 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3976 groupValid = (settingsMap.count() > 0);
3978 if (groupValid) outerMap.insert(
"vpn", dbusData, TRUE);
else outerMap.remove(
"vpn");
3981 dbusData = outerMap[
"wimax"];
3982 if (wiMaxConnection) {
3983 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3985 if (connection->lockedHWAddress.isValid()) {
3986 TDENetworkByteList address = connection->lockedHWAddress.address();
3987 TQT_DBusDataValueList valueList;
3988 TDENetworkByteList::iterator it;
3989 for (it = address.begin(); it != address.end(); ++it) {
3990 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3991 valueList.append(innerDataValue);
3993 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3994 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3997 settingsMap.remove(
"mac-address");
3999 UPDATE_STRING_SETTING_IF_VALID(wiMaxConnection->networkServiceProvider,
"network-name", settingsMap)
4001 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4002 groupValid = (settingsMap.count() > 0);
4004 if (groupValid) outerMap.insert(
"wimax", dbusData, TRUE);
else outerMap.remove(
"wimax");
4007 dbusData = outerMap[
"vlan"];
4008 if (vlanConnection) {
4009 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4011 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->kernelName,
"interface-name", settingsMap)
4012 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->parentConnectionUUID, "parent", settingsMap)
4013 settingsMap["
id"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(vlanConnection->vlanID));
4014 settingsMap["flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeVLANFlagsToNMVLANFlags(vlanConnection->vlanFlags)));
4016 TQT_DBusDataValueList valueList;
4017 TDENetworkPriorityMap::const_iterator it;
4018 for (it = vlanConnection->ingressPriorityMap.begin(); it != vlanConnection->ingressPriorityMap.end(); ++it) {
4019 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4021 if (valueList.count() > 0) settingsMap[
"ingress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4024 TQT_DBusDataValueList valueList;
4025 TDENetworkPriorityMap::const_iterator it;
4026 for (it = vlanConnection->egressPriorityMap.begin(); it != vlanConnection->egressPriorityMap.end(); ++it) {
4027 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4029 if (valueList.count() > 0) settingsMap[
"egress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4032 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4033 groupValid = (settingsMap.count() > 0);
4035 if (groupValid) outerMap.insert(
"vlan", dbusData, TRUE);
else outerMap.remove(
"vlan");
4038 dbusData = outerMap[
"serial"];
4039 if (connection->serialConfig.valid) {
4040 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4042 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.baudRate));
4043 settingsMap[
"bits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.byteWidth));
4044 settingsMap[
"parity"] = convertDBUSDataToVariantData(TQT_DBusData::fromByte(tdeParityToNMParity(connection->serialConfig.parity)));
4045 settingsMap[
"stopbits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.stopBits));
4046 settingsMap[
"send-delay"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt64(connection->serialConfig.txDelay));
4048 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4049 groupValid = (settingsMap.count() > 0);
4051 if (groupValid) outerMap.insert(
"serial", dbusData, TRUE);
else outerMap.remove(
"serial");
4054 dbusData = outerMap[
"ppp"];
4055 if (connection->pppConfig.valid) {
4056 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4058 settingsMap[
"noauth"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.requireServerAuthentication)));
4059 settingsMap[
"refuse-eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableEAP));
4060 settingsMap[
"refuse-pap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisablePAP));
4061 settingsMap[
"refuse-chap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableCHAP));
4062 settingsMap[
"refuse-mschap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAP));
4063 settingsMap[
"refuse-mschapv2"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAPv2));
4064 settingsMap[
"nobsdcomp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowBSDCompression)));
4065 settingsMap[
"nodeflate"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowDeflateCompression)));
4066 settingsMap[
"no-vj-comp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowVJCompression)));
4067 settingsMap[
"require-mppe"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE));
4068 settingsMap[
"require-mppe-128"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE128));
4069 settingsMap[
"mppe-stateful"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::StatefulMPPE));
4070 settingsMap[
"crtscts"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::UseHardwareFlowControl));
4071 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.baudRate));
4072 if (connection->pppConfig.mru > 0) {
4073 settingsMap[
"mru"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mru));
4076 settingsMap.remove(
"mru");
4078 if (connection->pppConfig.mtu > 0) {
4079 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mtu));
4082 settingsMap.remove(
"mtu");
4084 if (connection->pppConfig.mtu > 0) {
4085 settingsMap[
"lcp-echo-interval"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoPingInterval));
4088 settingsMap.remove(
"lcp-echo-interval");
4090 if (connection->pppConfig.mtu > 0) {
4091 settingsMap[
"lcp-echo-failure"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoFailureThreshold));
4094 settingsMap.remove(
"lcp-echo-failure");
4097 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4098 groupValid = (settingsMap.count() > 0);
4100 if (groupValid) outerMap.insert(
"ppp", dbusData, TRUE);
else outerMap.remove(
"ppp");
4103 dbusData = outerMap[
"pppoe"];
4104 if (connection->pppoeConfig.valid) {
4105 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4107 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.networkServiceProvider,
"service", settingsMap)
4108 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.username, "username", settingsMap)
4109 if (connection->pppoeConfig.secretsValid) {
4110 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.password,
"password", settingsMap)
4112 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->pppoeConfig.passwordFlags)));
4114 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4115 groupValid = (settingsMap.count() > 0);
4117 if (groupValid) outerMap.insert(
"pppoe", dbusData, TRUE);
else outerMap.remove(
"pppoe");
4120 dbusData = outerMap[
"802-11-olpc-mesh"];
4121 if (olpcMeshConnection) {
4122 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4126 TQT_DBusDataValueList valueList;
4127 for (i=0; i<olpcMeshConnection->SSID.count(); i++) {
4128 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->SSID[i]);
4129 valueList.append(innerDataValue);
4131 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4133 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(olpcMeshConnection->channel));
4136 TQT_DBusDataValueList valueList;
4137 for (i=0; i<olpcMeshConnection->anycastDHCPHWAddress.count(); i++) {
4138 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->anycastDHCPHWAddress[i]);
4139 valueList.append(innerDataValue);
4141 settingsMap[
"dhcp-anycast-address"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4144 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4145 groupValid = (settingsMap.count() > 0);
4147 if (groupValid) outerMap.insert(
"802-11-olpc-mesh", dbusData, TRUE);
else outerMap.remove(
"802-11-olpc-mesh");
4150 dbusData = outerMap[
"bluetooth"];
4151 if (bluetoothConnection) {
4152 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4154 if (connection->lockedHWAddress.isValid()) {
4155 TDENetworkByteList address = connection->lockedHWAddress.address();
4156 TQT_DBusDataValueList valueList;
4157 TDENetworkByteList::iterator it;
4158 for (it = address.begin(); it != address.end(); ++it) {
4159 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
4160 valueList.append(innerDataValue);
4162 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
4163 settingsMap[
"bdaddr"] = convertDBUSDataToVariantData(nmHWAddress);
4166 settingsMap.remove(
"bdaddr");
4168 UPDATE_STRING_SETTING_IF_VALID(tdeBluetoothModeToNMBluetoothMode(bluetoothConnection->type),
"type", settingsMap)
4170 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4171 groupValid = (settingsMap.count() > 0);
4173 if (groupValid) outerMap.insert(
"bluetooth", dbusData, TRUE);
else outerMap.remove(
"bluetooth");
4176 dbusData = outerMap[
"cdma"];
4177 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::CDMA)) {
4178 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4180 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.providerDataNumber,
"number", settingsMap)
4181 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.username, "username", settingsMap)
4182 if (connection->pppoeConfig.secretsValid) {
4183 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.password,
"password", settingsMap)
4185 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->cdmaConfig.passwordFlags)));
4187 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4188 groupValid = (settingsMap.count() > 0);
4190 if (groupValid) outerMap.insert(
"cdma", dbusData, TRUE);
else outerMap.remove(
"cdma");
4193 dbusData = outerMap[
"gsm"];
4194 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::GSM)) {
4195 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4197 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.providerDataNumber,
"number", settingsMap)
4198 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.username, "username", settingsMap)
4199 if (connection->pppoeConfig.secretsValid) {
4200 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.password,
"password", settingsMap)
4202 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.passwordFlags)));
4203 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.accessPointName,
"apn", settingsMap)
4204 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.networkID, "network-
id", settingsMap)
4205 settingsMap["network-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromInt32(tdeGSMModeToNMGSMMode(modemConnection->gsmConfig.networkType)));
4206 if (connection->pppoeConfig.secretsValid) {
4207 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.pin,
"pin", settingsMap)
4209 settingsMap[
"pin-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.pinFlags)));
4210 settingsMap[
"allowed-bands"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(modemConnection->gsmConfig.allowedFrequencyBands));
4211 settingsMap[
"home-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(modemConnection->gsmConfig.allowRoaming)));
4213 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4214 groupValid = (settingsMap.count() > 0);
4216 if (groupValid) outerMap.insert(
"gsm", dbusData, TRUE);
else outerMap.remove(
"gsm");
4219 dbusData = outerMap[
"ipv4"];
4221 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4224 TQT_DBusDataValueList valueList;
4225 TDENetworkSingleIPConfigurationList::iterator it;
4226 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4227 if ((*it).isIPv4()) {
4228 TQT_DBusDataValueList innerValueList;
4231 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4233 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4235 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4236 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4239 if (valueList.count() <= 0) {
4241 TQT_DBusData valueList;
4242 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4243 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4246 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4250 if (!connection->ipConfig.dhcpClientIdentifier.isNull()) {
4251 settingsMap[
"dhcp-client-id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->ipConfig.dhcpClientIdentifier));
4255 TQT_DBusDataValueList valueList;
4256 TDENetworkAddressList::iterator it;
4257 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4258 if ((*it).isIPv4Address()) {
4259 valueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).toIPv4Address())));
4262 if (valueList.count() <= 0) {
4264 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32)));
4267 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4271 TQT_DBusDataValueList valueList;
4272 TDENetworkSearchDomainList::iterator it;
4273 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4274 if ((*it).isIPv4()) {
4275 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4278 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4281 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4284 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV4));
4288 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP) {
4291 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4LocalOnly) {
4292 method =
"link-local";
4294 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer) {
4297 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4Disabled) {
4298 method =
"disabled";
4303 if (!method.isNull())
4304 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4307 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPRoutes)));
4310 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute)));
4313 TQT_DBusDataValueList valueList;
4314 TDENetworkSingleRouteConfigurationList::iterator it;
4315 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4316 if ((*it).isIPv4()) {
4317 TQT_DBusDataValueList innerValueList;
4320 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4322 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4324 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4326 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4327 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4330 if (valueList.count() <= 0) {
4332 TQT_DBusData valueList;
4333 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4334 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4337 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4341 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4342 groupValid = (settingsMap.count() > 0);
4344 if (groupValid) outerMap.insert(
"ipv4", dbusData, TRUE);
else outerMap.remove(
"ipv4");
4347 dbusData = outerMap[
"ipv6"];
4349 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4352 TQT_DBusDataValueList valueList;
4353 TDENetworkSingleIPConfigurationList::iterator it;
4354 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4355 if ((*it).isIPv6()) {
4357 Q_IPV6ADDR v6address;
4358 TQT_DBusDataValueList innerValueList;
4359 TQT_DBusDataValueList innerMostValueList;
4362 innerMostValueList.clear();
4363 v6address = (*it).ipAddress.toIPv6Address();
4364 for (i=0; i<16; i++) {
4365 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4367 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4369 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4371 innerMostValueList.clear();
4372 v6address = (*it).gateway.toIPv6Address();
4373 for (i=0; i<16; i++) {
4374 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4376 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4377 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4380 if (valueList.count() <= 0) {
4382 TQT_DBusDataValueList innerValueList;
4383 TQT_DBusDataValueList innerMostValueList;
4386 innerMostValueList.clear();
4387 innerMostValueList.append(TQT_DBusData::fromByte(0));
4388 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4390 innerValueList.append(TQT_DBusData::fromUInt32(0));
4392 innerMostValueList.clear();
4393 innerMostValueList.append(TQT_DBusData::fromByte(0));
4394 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4395 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4398 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4402 TQT_DBusDataValueList valueList;
4403 TDENetworkAddressList::iterator it;
4404 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4405 if ((*it).isIPv6Address()) {
4407 Q_IPV6ADDR v6address;
4408 TQT_DBusDataValueList innerValueList;
4409 v6address = (*it).toIPv6Address();
4410 for (i=0; i<16; i++) {
4411 innerValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4413 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4416 if (valueList.count() <= 0) {
4418 TQT_DBusData valueList;
4419 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::Byte));
4420 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4423 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4427 TQT_DBusDataValueList valueList;
4428 TDENetworkSearchDomainList::iterator it;
4429 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4430 if ((*it).isIPv6()) {
4431 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4434 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4437 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4440 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV6));
4444 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP) {
4447 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6LocalOnly) {
4448 method =
"link-local";
4450 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer) {
4453 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6Disabled) {
4459 if (!method.isNull())
4460 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4463 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPRoutes)));
4466 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute)));
4469 TQT_DBusDataValueList valueList;
4470 TDENetworkSingleRouteConfigurationList::iterator it;
4471 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4472 if ((*it).isIPv6()) {
4474 Q_IPV6ADDR v6address;
4475 TQT_DBusDataValueList innerValueList;
4476 TQT_DBusDataValueList innerMostValueList;
4479 innerMostValueList.clear();
4480 v6address = (*it).ipAddress.toIPv6Address();
4481 for (i=0; i<16; i++) {
4482 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4484 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4486 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4488 innerMostValueList.clear();
4489 v6address = (*it).gateway.toIPv6Address();
4490 for (i=0; i<16; i++) {
4491 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4493 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4495 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4496 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4499 if (valueList.count() <= 0) {
4501 TQT_DBusDataValueList innerValueList;
4502 TQT_DBusDataValueList innerMostValueList;
4505 innerMostValueList.clear();
4506 innerMostValueList.append(TQT_DBusData::fromByte(0));
4507 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4509 innerValueList.append(TQT_DBusData::fromUInt32(0));
4511 innerMostValueList.clear();
4512 innerMostValueList.append(TQT_DBusData::fromByte(0));
4513 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4515 innerValueList.append(TQT_DBusData::fromUInt32(0));
4516 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4519 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4523 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4524 groupValid = (settingsMap.count() > 0);
4526 if (groupValid) outerMap.insert(
"ipv6", dbusData, TRUE);
else outerMap.remove(
"ipv6");
4528 connectionSettingsMap = TQT_DBusDataMap<TQString>(outerMap);
4535 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4536 printf(
"[network-manager comm debug] uploaded DBUS object structure map follows:\n"); fflush(stdout);
4537 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
4538 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4541 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4542 printf(
"[network-manager comm debug] Updating existing connection\n"); fflush(stdout);
4543 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4545 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4546 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4547 connect(&connectionSettings, SIGNAL(UpdateAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4549 ret = connectionSettings.UpdateAsync(asyncCallID, connectionSettingsMap, error);
4550 if (ret && error.isValid()) {
4552 PRINT_ERROR((error.name() +
": " + error.message()))
4556 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4557 TQTimer nmCallTimeoutTimer;
4558 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4559 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4560 tqApp->processEvents();
4561 if (!nmCallTimeoutTimer.isActive()) {
4562 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4567 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4572 PRINT_ERROR((error.name() +
": " + error.message()))
4577 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4578 printf(
"[network-manager comm debug] Creating new connection\n"); fflush(stdout);
4579 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4581 connect(d->m_networkManagerSettings, SIGNAL(AddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4582 connect(d->m_networkManagerSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4584 ret = d->m_networkManagerSettings->AddConnectionAsync(asyncCallID, connectionSettingsMap, error);
4585 if (ret && error.isValid()) {
4587 PRINT_ERROR((error.name() +
": " + error.message()))
4591 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4592 TQTimer nmCallTimeoutTimer;
4593 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4594 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4595 if (!nmCallTimeoutTimer.isActive()) {
4596 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4600 tqApp->processEvents();
4602 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4603 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4604 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4606 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
4607 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4608 command_failed = true;
4610 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4611 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4612 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4614 return ((!timed_out) && (!command_failed));
4618 PRINT_ERROR((error.name() +
": " + error.message()))
4624 bool TDENetworkConnectionManager_BackendNM::deleteConnection(TQString uuid) {
4625 TQT_DBusObjectPath existingConnection;
4626 TQT_DBusError error;
4627 bool timed_out =
false;
4629 if (d->m_networkManagerSettings) {
4630 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4633 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4634 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4635 connect(&connectionSettings, SIGNAL(DeleteAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4637 ret = connectionSettings.DeleteAsync(asyncCallID, error);
4638 if (ret && error.isValid()) {
4640 PRINT_ERROR((error.name() +
": " + error.message()))
4644 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4645 TQTimer nmCallTimeoutTimer;
4646 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4647 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4648 tqApp->processEvents();
4649 if (!nmCallTimeoutTimer.isActive()) {
4650 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4655 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4659 PRINT_ERROR(TQString(
"Unable to remove connection with uuid '%1'").arg(uuid))
4664 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4669 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4674 bool TDENetworkConnectionManager_BackendNM::verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type, TDENetworkErrorStringMap* reason) {
4682 if (connection->friendlyName ==
"") {
4683 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidConnectionSetting] =
i18n(
"Connection name is invalid");
4684 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidConnectionSetting;
4688 if (connection->ipConfig.valid) {
4690 TDENetworkSingleIPConfigurationList::iterator it;
4691 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4692 if ((*it).isIPv4()) {
4693 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP)) {
4694 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4695 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv4Setting] =
i18n(
"IPv4 address is invalid");
4696 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv4Setting;
4701 else if ((*it).isIPv6()) {
4702 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP)) {
4703 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4704 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv6Setting] =
i18n(
"IPv6 address is invalid");
4705 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv6Setting;
4713 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
4714 if (wiFiConnection) {
4715 if (wiFiConnection->SSID.count() < 1) {
4716 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessSetting] =
i18n(
"No SSID provided");
4717 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessSetting;
4720 if (wiFiConnection->securityRequired) {
4721 if (wiFiConnection->securitySettings.secretsValid) {
4722 if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WEP) || ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && ((wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Open) || (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Shared)))) {
4723 if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Hexadecimal) {
4724 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4725 if ((wiFiConnection->securitySettings.wepKey0.length() != 10) && (wiFiConnection->securitySettings.wepKey0.length() != 26)) {
4726 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4727 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4731 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4732 if ((wiFiConnection->securitySettings.wepKey1.length() != 10) && (wiFiConnection->securitySettings.wepKey1.length() != 26)) {
4733 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4734 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4738 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4739 if ((wiFiConnection->securitySettings.wepKey2.length() != 10) && (wiFiConnection->securitySettings.wepKey2.length() != 26)) {
4740 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4741 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4745 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4746 if ((wiFiConnection->securitySettings.wepKey3.length() != 10) && (wiFiConnection->securitySettings.wepKey3.length() != 26)) {
4747 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4748 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4752 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4753 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4754 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4758 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4759 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4760 if ((wiFiConnection->securitySettings.wepKey0.length() != 5) && (wiFiConnection->securitySettings.wepKey0.length() != 13)) {
4761 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4762 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4766 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4767 if ((wiFiConnection->securitySettings.wepKey1.length() != 5) && (wiFiConnection->securitySettings.wepKey1.length() != 13)) {
4768 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4769 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4773 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4774 if ((wiFiConnection->securitySettings.wepKey2.length() != 5) && (wiFiConnection->securitySettings.wepKey2.length() != 13)) {
4775 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4776 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4780 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4781 if ((wiFiConnection->securitySettings.wepKey3.length() != 5) && (wiFiConnection->securitySettings.wepKey3.length() != 13)) {
4782 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4783 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4787 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4788 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4789 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4793 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4794 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4795 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4796 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4801 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::LEAP)) {
4802 if ((wiFiConnection->securitySettings.leapUsername.length() < 1) || (wiFiConnection->securitySettings.leapPassword.length() < 1)) {
4803 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"LEAP username and/or password not provided");
4804 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4808 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAAdHoc) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAInfrastructure) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAEnterprise)) {
4809 if (wiFiConnection->securitySettings.psk.length() == 64) {
4812 wiFiConnection->securitySettings.psk.toULongLong(&ok, 16);
4814 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"Hexadecimal length PSK contains non-hexadecimal characters");
4815 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4819 else if ((wiFiConnection->securitySettings.psk.length() < 8) || (wiFiConnection->securitySettings.psk.length() > 63)) {
4820 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No PSK provided");
4821 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4832 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::initiateConnection(TQString uuid) {
4833 TQT_DBusObjectPath existingConnection;
4834 TQT_DBusError error;
4836 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
4837 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4839 if (!m_networkDevice) {
4840 d->m_dbusDeviceString =
"/";
4843 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
4845 if (d->m_dbusDeviceString.isEmpty()) {
4846 PRINT_ERROR(TQString(
"Invalid empty DBUS device string"))
4849 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4850 TQT_DBusObjectPath active_connection;
4851 ret = d->m_networkManagerProxy->ActivateConnection(existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), active_connection, error);
4852 if (ret && error.isValid()) {
4854 PRINT_ERROR((error.name() +
": " + error.message()))
4856 return checkConnectionStatus(uuid);
4857 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4858 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4859 connect(d->m_networkManagerProxy, SIGNAL(ActivateConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4860 connect(d->m_networkManagerProxy, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4861 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
4863 ret = d->m_networkManagerProxy->ActivateConnectionAsync(asyncCallID, existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), error);
4864 if (ret && error.isValid()) {
4866 PRINT_ERROR((error.name() +
": " + error.message()))
4868 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4871 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4872 TQTimer nmCallTimeoutTimer;
4873 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4874 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4875 if (!nmCallTimeoutTimer.isActive()) {
4876 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4879 tqApp->processEvents();
4881 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4882 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4883 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4884 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4886 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
4887 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4889 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4890 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4892 return checkConnectionStatus(uuid);
4896 PRINT_ERROR((error.name() +
": " + error.message()))
4897 return checkConnectionStatus(uuid);
4900 return checkConnectionStatus(uuid);
4902 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4905 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4906 return TDENetworkConnectionStatus::Invalid;
4910 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4911 return TDENetworkConnectionStatus::Invalid;
4915 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::checkConnectionStatus(TQString uuid) {
4916 TQT_DBusObjectPath existingConnection;
4917 TQT_DBusError error;
4918 if (d->m_networkManagerProxy) {
4919 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4920 TQT_DBusObjectPathList::iterator it;
4921 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4922 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4923 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4924 if (activeConnection.getUuid(error) == uuid) {
4925 return nmDeviceStateToTDEDeviceState(activeConnection.getState(error));
4928 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4929 return TDENetworkConnectionStatus::Invalid;
4932 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4933 return TDENetworkConnectionStatus::Invalid;
4937 TQCString TDENetworkConnectionManager_BackendNM::getActiveConnectionPath(TQString uuid) {
4938 TQT_DBusObjectPath existingConnection;
4939 TQT_DBusError error;
4940 if (d->m_networkManagerProxy) {
4941 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4942 TQT_DBusObjectPathList::iterator it;
4943 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4944 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4945 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4946 if (activeConnection.getUuid(error) == uuid) {
4950 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4951 return TQT_DBusObjectPath();
4954 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4955 return TQT_DBusObjectPath();
4959 TQStringList TDENetworkConnectionManager_BackendNM::connectionPhysicalDeviceUUIDs(TQString uuid) {
4960 if (deviceType() == TDENetworkDeviceType::BackendOnly) {
4961 return TQStringList();
4964 TQT_DBusObjectPath existingConnection;
4965 TQT_DBusError error;
4966 if (d->m_networkManagerProxy) {
4967 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4968 TQT_DBusObjectPathList::iterator it;
4970 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4971 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4972 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4973 if (activeConnection.getUuid(error) == uuid) {
4974 TQValueList<TQT_DBusObjectPath> deviceList = activeConnection.getDevices(error);
4975 TQT_DBusObjectPathList::iterator it2;
4976 for (it2 = deviceList.begin(); it2 != deviceList.end(); ++it2) {
4977 TQString devUUID = tdeDeviceUUIDForGenericDevice(*it2);
4978 if (devUUID !=
"") {
4979 ret.append(devUUID);
4987 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4988 return TQStringList();
4992 TDENetworkVPNTypeList TDENetworkConnectionManager_BackendNM::availableVPNTypes() {
4993 TDENetworkVPNTypeList ret;
4996 TQDir serviceDir(NM_PLUGIN_SERVICE_DIR, TQString(), TQDir::Name|TQDir::IgnoreCase, TQDir::Files);
4997 TQStringList services = serviceDir.entryList ().grep (
".name",
true);
4999 if (services.count () > 0) {
5001 for (TQStringList::Iterator i = services.begin (); i != services.end (); ++i) {
5002 TQString service = NM_PLUGIN_SERVICE_DIR + TQString (
"/") + *i;
5004 tdeconfig->
setGroup (
"VPN Connection");
5006 TQString serviceName = tdeconfig->
readEntry(
"name", TQString());
5007 serviceName = serviceName.lower();
5009 if (serviceName ==
"openvpn") {
5010 ret.append(TDENetworkVPNType::OpenVPN);
5012 if (serviceName ==
"pptp") {
5013 ret.append(TDENetworkVPNType::PPTP);
5015 if (serviceName ==
"strongswan") {
5016 ret.append(TDENetworkVPNType::StrongSwan);
5018 if (serviceName ==
"vpnc") {
5019 ret.append(TDENetworkVPNType::VPNC);
5029 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::deactivateConnection(TQString uuid) {
5030 TQT_DBusObjectPath existingConnection;
5031 TQT_DBusError error;
5033 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
5034 existingConnection = getActiveConnectionPath(uuid);
5035 if (existingConnection.isValid()) {
5036 if (!m_networkDevice) {
5037 d->m_dbusDeviceString =
"/";
5040 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
5042 if (d->m_dbusDeviceString.isEmpty()) {
5043 PRINT_ERROR(TQString(
"Invalid empty DBUS device string"))
5046 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5047 ret = d->m_networkManagerProxy->DeactivateConnection(existingConnection, error);
5048 if (ret && error.isValid()) {
5050 PRINT_ERROR((error.name() +
": " + error.message()))
5052 return checkConnectionStatus(uuid);
5053 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5054 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
5055 connect(d->m_networkManagerProxy, SIGNAL(DeactivateConnectionAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
5056 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
5058 ret = d->m_networkManagerProxy->DeactivateConnectionAsync(asyncCallID, existingConnection, error);
5059 if (ret && error.isValid()) {
5061 PRINT_ERROR((error.name() +
": " + error.message()))
5063 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
5066 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
5067 TQTimer nmCallTimeoutTimer;
5068 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
5069 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
5070 if (!nmCallTimeoutTimer.isActive()) {
5071 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
5074 tqApp->processEvents();
5076 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
5077 return checkConnectionStatus(uuid);
5081 PRINT_ERROR((error.name() +
": " + error.message()))
5082 return checkConnectionStatus(uuid);
5085 return checkConnectionStatus(uuid);
5087 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5090 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
5091 return TDENetworkConnectionStatus::Invalid;
5095 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5096 return TDENetworkConnectionStatus::Invalid;
5100 TQStringList TDENetworkConnectionManager_BackendNM::validSettings() {
5103 ret.append(
"TDENetworkSingleIPConfiguration::ipAddress");
5104 ret.append(
"TDENetworkSingleIPConfiguration::networkMask");
5105 ret.append(
"TDENetworkSingleIPConfiguration::gateway");
5107 ret.append(
"TDENetworkSingleRouteConfiguration::ipAddress");
5108 ret.append(
"TDENetworkSingleRouteConfiguration::networkMask");
5109 ret.append(
"TDENetworkSingleRouteConfiguration::gateway");
5111 ret.append(
"TDENetworkIEEE8021xConfiguration::valid");
5112 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedValid");
5113 ret.append(
"TDENetworkIEEE8021xConfiguration::secretsValid");
5114 ret.append(
"TDENetworkIEEE8021xConfiguration::type");
5115 ret.append(
"TDENetworkIEEE8021xConfiguration::userName");
5116 ret.append(
"TDENetworkIEEE8021xConfiguration::anonymousUserName");
5117 ret.append(
"TDENetworkIEEE8021xConfiguration::pacFileName");
5118 ret.append(
"TDENetworkIEEE8021xConfiguration::caCertificate");
5119 ret.append(
"TDENetworkIEEE8021xConfiguration::additionalCAFilesPath");
5120 ret.append(
"TDENetworkIEEE8021xConfiguration::authServerCertSubjectMatch");
5121 ret.append(
"TDENetworkIEEE8021xConfiguration::alternateAuthServerCertSubjectMatch");
5122 ret.append(
"TDENetworkIEEE8021xConfiguration::clientCertificate");
5123 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPVersion");
5124 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPLabel");
5125 ret.append(
"TDENetworkIEEE8021xConfiguration::fastProvisioningFlags");
5126 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2NonEAPAuthMethod");
5127 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2EAPAuthMethod");
5128 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2NonEAPMethods");
5129 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2EAPMethods");
5130 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaCertificate");
5131 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaFilesPath");
5132 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AuthServerCertSubjectMatch");
5133 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AlternateAuthServerCertSubjectMatch");
5134 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2ClientCertificate");
5135 ret.append(
"TDENetworkIEEE8021xConfiguration::password");
5136 ret.append(
"TDENetworkIEEE8021xConfiguration::passwordFlags");
5137 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPassword");
5138 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPasswordFlags");
5139 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKey");
5140 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPassword");
5141 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPasswordFlags");
5142 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKey");
5143 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPassword");
5144 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPasswordFlags");
5145 ret.append(
"TDENetworkIEEE8021xConfiguration::forceSystemCaCertificates");
5147 ret.append(
"TDENetworkPPPConfiguration::valid");
5148 ret.append(
"TDENetworkPPPConfiguration::requireServerAuthentication");
5149 ret.append(
"TDENetworkPPPConfiguration::flags");
5150 ret.append(
"TDENetworkPPPConfiguration::baudRate");
5151 ret.append(
"TDENetworkPPPConfiguration::mru");
5152 ret.append(
"TDENetworkPPPConfiguration::mtu");
5153 ret.append(
"TDENetworkPPPConfiguration::lcpEchoPingInterval");
5154 ret.append(
"TDENetworkPPPConfiguration::lcpEchoFailureThreshold");
5156 ret.append(
"TDENetworkPPPOEConfiguration::valid");
5157 ret.append(
"TDENetworkPPPOEConfiguration::secretsValid");
5158 ret.append(
"TDENetworkPPPOEConfiguration::networkServiceProvider");
5159 ret.append(
"TDENetworkPPPOEConfiguration::username");
5160 ret.append(
"TDENetworkPPPOEConfiguration::password");
5161 ret.append(
"TDENetworkPPPOEConfiguration::passwordFlags");
5163 ret.append(
"TDENetworkSerialConfiguration::valid");
5164 ret.append(
"TDENetworkSerialConfiguration::baudRate");
5165 ret.append(
"TDENetworkSerialConfiguration::byteWidth");
5166 ret.append(
"TDENetworkSerialConfiguration::parity");
5167 ret.append(
"TDENetworkSerialConfiguration::stopBits");
5168 ret.append(
"TDENetworkSerialConfiguration::txDelay");
5170 ret.append(
"TDENetworkCDMAConfiguration::valid");
5171 ret.append(
"TDENetworkCDMAConfiguration::secretsValid");
5172 ret.append(
"TDENetworkCDMAConfiguration::providerDataNumber");
5173 ret.append(
"TDENetworkCDMAConfiguration::username");
5174 ret.append(
"TDENetworkCDMAConfiguration::password");
5175 ret.append(
"TDENetworkCDMAConfiguration::passwordFlags");
5177 ret.append(
"TDENetworkGSMConfiguration::valid");
5178 ret.append(
"TDENetworkGSMConfiguration::secretsValid");
5179 ret.append(
"TDENetworkGSMConfiguration::providerDataNumber");
5180 ret.append(
"TDENetworkGSMConfiguration::username");
5181 ret.append(
"TDENetworkGSMConfiguration::password");
5182 ret.append(
"TDENetworkGSMConfiguration::passwordFlags");
5183 ret.append(
"TDENetworkGSMConfiguration::accessPointName");
5184 ret.append(
"TDENetworkGSMConfiguration::networkID");
5185 ret.append(
"TDENetworkGSMConfiguration::networkType");
5186 ret.append(
"TDENetworkGSMConfiguration::pin");
5187 ret.append(
"TDENetworkGSMConfiguration::pinFlags");
5188 ret.append(
"TDENetworkGSMConfiguration::allowedFrequencyBands");
5189 ret.append(
"TDENetworkGSMConfiguration::allowRoaming");
5191 ret.append(
"TDENetworkWiFiSecurityConfiguration::valid");
5192 ret.append(
"TDENetworkWiFiSecurityConfiguration::secretsValid");
5193 ret.append(
"TDENetworkWiFiSecurityConfiguration::keyType");
5194 ret.append(
"TDENetworkWiFiSecurityConfiguration::authType");
5195 ret.append(
"TDENetworkWiFiSecurityConfiguration::wpaVersion");
5196 ret.append(
"TDENetworkWiFiSecurityConfiguration::cipher");
5197 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey0");
5198 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey1");
5199 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey2");
5200 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey3");
5201 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyFlags");
5202 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyIndex");
5203 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyType");
5204 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedPairWiseCiphers");
5205 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedGroupWiseCiphers");
5206 ret.append(
"TDENetworkWiFiSecurityConfiguration::psk");
5207 ret.append(
"TDENetworkWiFiSecurityConfiguration::pskFlags");
5208 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapUsername");
5209 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPassword");
5210 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPasswordFlags");
5212 ret.append(
"TDENetworkIPConfiguration::valid");
5213 ret.append(
"TDENetworkIPConfiguration::connectionFlags");
5214 ret.append(
"TDENetworkIPConfiguration::ipConfigurations");
5215 ret.append(
"TDENetworkIPConfiguration::routeConfigurations");
5216 ret.append(
"TDENetworkIPConfiguration::broadcast");
5217 ret.append(
"TDENetworkIPConfiguration::destination");
5218 ret.append(
"TDENetworkIPConfiguration::resolvers");
5219 ret.append(
"TDENetworkIPConfiguration::searchDomains");
5220 ret.append(
"TDENetworkIPConfiguration::dhcpClientIdentifier");
5222 ret.append(
"TDENetworkConnection::UUID");
5223 ret.append(
"TDENetworkConnection::friendlyName");
5224 ret.append(
"TDENetworkConnection::ipConfig");
5225 ret.append(
"TDENetworkConnection::lockedHWAddress");
5226 ret.append(
"TDENetworkConnection::manualHWAddress");
5227 ret.append(
"TDENetworkConnection::readOnly");
5228 ret.append(
"TDENetworkConnection::autoConnect");
5229 ret.append(
"TDENetworkConnection::fullDuplex");
5230 ret.append(
"TDENetworkConnection::requireIPV4");
5231 ret.append(
"TDENetworkConnection::requireIPV6");
5232 ret.append(
"TDENetworkConnection::mtu");
5233 ret.append(
"TDENetworkConnection::eapConfig");
5234 ret.append(
"TDENetworkConnection::pppConfig");
5235 ret.append(
"TDENetworkConnection::pppoeConfig");
5236 ret.append(
"TDENetworkConnection::serialConfig");
5237 ret.append(
"TDENetworkConnection::authorizedUsers");
5238 ret.append(
"TDENetworkConnection::masterConnectionUUID");
5239 ret.append(
"TDENetworkConnection::slaveType");
5240 ret.append(
"TDENetworkConnection::lastKnownConnection");
5242 ret.append(
"TDEWiFiConnection::SSID");
5243 ret.append(
"TDEWiFiConnection::operatingMode");
5244 ret.append(
"TDEWiFiConnection::bandRestriction");
5245 ret.append(
"TDEWiFiConnection::channelRestriction");
5246 ret.append(
"TDEWiFiConnection::bitRateRestriction");
5247 ret.append(
"TDEWiFiConnection::powerRestriction");
5248 ret.append(
"TDEWiFiConnection::accessPointRestriction");
5249 ret.append(
"TDEWiFiConnection::blacklistedBSSIDs");
5250 ret.append(
"TDEWiFiConnection::heardBSSIDs");
5251 ret.append(
"TDEWiFiConnection::isHiddenNetwork");
5252 ret.append(
"TDEWiFiConnection::securityRequired");
5253 ret.append(
"TDEWiFiConnection::securitySettings");
5255 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5257 ret.append(
"TDEVPNConnection::vpnPluginID");
5258 ret.append(
"TDEVPNConnection::lockedUserName");
5259 ret.append(
"TDEVPNConnection::pluginData");
5260 ret.append(
"TDEVPNConnection::secretsValid");
5261 ret.append(
"TDEVPNConnection::pluginSecrets");
5263 ret.append(
"TDEWiMaxConnection::networkServiceProvider");
5265 ret.append(
"TDEVLANConnection::kernelName");
5266 ret.append(
"TDEVLANConnection::parentConnectionUUID");
5267 ret.append(
"TDEVLANConnection::vlanID");
5268 ret.append(
"TDEVLANConnection::vlanFlags");
5269 ret.append(
"TDEVLANConnection::ingressPriorityMap");
5270 ret.append(
"TDEVLANConnection::egressPriorityMap");
5272 ret.append(
"TDEOLPCMeshConnection::SSID");
5273 ret.append(
"TDEOLPCMeshConnection::channel");
5274 ret.append(
"TDEOLPCMeshConnection::anycastDHCPHWAddress");
5276 ret.append(
"TDEBluetoothConnection::type");
5278 ret.append(
"TDEModemConnection::type");
5279 ret.append(
"TDEModemConnection::cdmaConfig");
5280 ret.append(
"TDEModemConnection::gsmConfig");
5282 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5287 TDENetworkWiFiAPInfo* TDENetworkConnectionManager_BackendNM::getAccessPointDetails(TQString dbusPath) {
5288 if (dbusPath ==
"") {
5292 TDENetworkWiFiAPInfo* apInfo =
new TDENetworkWiFiAPInfo;
5293 TQT_DBusError error;
5295 DBus::AccessPointProxy accessPoint(NM_DBUS_SERVICE, dbusPath);
5296 accessPoint.setConnection(TQT_DBusConnection::systemBus());
5298 TQValueList<TQ_UINT8> nmSSID = accessPoint.getSsid(error);
5299 if (error.isValid()) {
5303 TQValueList<TQ_UINT8>::iterator it;
5305 for (it = nmSSID.begin(); it != nmSSID.end(); ++it) {
5306 apInfo->SSID.resize(index+1);
5307 apInfo->SSID[index] = (*it);
5311 apInfo->wpaFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getWpaFlags(error));
5312 apInfo->rsnFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getRsnFlags(error));
5313 apInfo->frequency = accessPoint.getFrequency(error);
5314 apInfo->BSSID.fromString(accessPoint.getHwAddress(error));
5315 apInfo->maxBitrate = accessPoint.getMaxBitrate(error);
5316 apInfo->signalQuality = (accessPoint.getStrength(error)/100.0);
5318 apInfo->valid =
true;
5323 TDENetworkHWNeighborList* TDENetworkConnectionManager_BackendNM::siteSurvey() {
5324 TQT_DBusError error;
5327 TDENetworkDeviceType::TDENetworkDeviceType myDeviceType = deviceType();
5328 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
5329 clearTDENetworkHWNeighborList();
5331 if (myDeviceType == TDENetworkDeviceType::WiFi) {
5332 if (!d->m_dbusDeviceString.isEmpty()) {
5333 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
5334 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
5337 TQT_DBusObjectPathList accessPoints;
5338 ret = wiFiDevice.GetAccessPoints(accessPoints, error);
5340 TQT_DBusObjectPathList::iterator it;
5341 for (it = accessPoints.begin(); it != accessPoints.end(); ++it) {
5342 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(TQString(*it));
5344 m_hwNeighborList->append(apInfo);
5346 d->internalProcessWiFiAccessPointAdded(*it);
5353 return m_hwNeighborList;
5356 bool TDENetworkConnectionManager_BackendNM::networkingEnabled() {
5357 if (d->m_networkManagerProxy) {
5359 TQT_DBusError error;
5360 ret = d->m_networkManagerProxy->getNetworkingEnabled(error);
5361 if (error.isValid()) {
5363 PRINT_ERROR((error.name() +
": " + error.message()))
5375 bool TDENetworkConnectionManager_BackendNM::wiFiHardwareEnabled() {
5376 if (d->m_networkManagerProxy) {
5378 TQT_DBusError error;
5379 ret = d->m_networkManagerProxy->getWirelessHardwareEnabled(error);
5380 if (error.isValid()) {
5382 PRINT_ERROR((error.name() +
": " + error.message()))
5394 bool TDENetworkConnectionManager_BackendNM::enableNetworking(
bool enable) {
5398 if (d->m_networkManagerProxy) {
5400 TQT_DBusError error;
5401 d->m_networkManagerProxy->SleepAsync(asynccallid, !enable, error);
5402 if (error.isValid()) {
5404 PRINT_ERROR((error.name() +
": " + error.message()))
5418 bool TDENetworkConnectionManager_BackendNM::enableWiFi(
bool enable) {
5419 if (d->m_networkManagerProxy) {
5420 TQT_DBusError error;
5421 d->m_networkManagerProxy->setWirelessEnabled(enable, error);
5422 if (error.isValid()) {
5424 PRINT_ERROR((error.name() +
": " + error.message()))
5436 bool TDENetworkConnectionManager_BackendNM::wiFiEnabled() {
5437 if (d->m_networkManagerProxy) {
5439 TQT_DBusError error;
5440 ret = d->m_networkManagerProxy->getWirelessEnabled(error);
5441 if (error.isValid()) {
5443 PRINT_ERROR((error.name() +
": " + error.message()))
5455 TQStringList TDENetworkConnectionManager_BackendNM::defaultNetworkDevices() {
5459 TQT_DBusObjectPath existingConnection;
5460 TQT_DBusError error;
5461 if (d->m_networkManagerProxy) {
5462 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5463 TQT_DBusObjectPathList::iterator it;
5464 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5465 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5466 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5467 if (activeConnection.getDefault(error)) {
5469 TQString uuid = activeConnection.getUuid(error);
5470 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5471 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5475 else if (activeConnection.getDefault6(error)) {
5477 TQString uuid = activeConnection.getUuid(error);
5478 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5479 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5487 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5488 return TQStringList();
5492 TDENetworkConnectionManager_BackendNMPrivate::TDENetworkConnectionManager_BackendNMPrivate(TDENetworkConnectionManager_BackendNM* parent) : m_networkManagerProxy(NULL), m_networkManagerSettings(NULL), m_networkDeviceProxy(NULL), m_wiFiDeviceProxy(NULL), m_vpnProxy(NULL), nonReentrantCallActive(false), vpn_service_error_notified(false), device_autoconnect_error_notified(false), m_parent(parent), m_prevDeviceState(-1) {
5494 m_dbusSignalConnection =
new TQT_DBusConnection(TQT_DBusConnection::systemBus());
5495 m_dbusSignalReceiver =
new TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(
this);
5496 m_dbusSignalConnection->connect(m_dbusSignalReceiver, TQT_SLOT(dbusSignal(
const TQT_DBusMessage&)));
5499 TDENetworkConnectionManager_BackendNMPrivate::~TDENetworkConnectionManager_BackendNMPrivate() {
5501 if (m_dbusSignalConnection)
delete m_dbusSignalConnection;
5502 if (m_dbusSignalReceiver)
delete m_dbusSignalReceiver;
5505 TQMap<TQString, DBus::AccessPointProxy*>::iterator it;
5506 for (it = m_accessPointProxyList.begin(); it != m_accessPointProxyList.end(); ++it) {
5507 DBus::AccessPointProxy *apProxy = it.data();
5512 m_accessPointProxyList.clear();
5515 #include "network-manager.moc"
5516 #include "network-manager_p.moc"
Access KDE Configuration entries.
void setGroup(const TQString &group)
Specifies the group in which keys will be read and written.
TQString i18n(const char *text)
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
Reads the value of an entry specified by pKey in the current group.