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) {
1165 PRINT_ERROR((error.name() +
": " + error.message()))
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;
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 !=
"") {
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;
1573 if (d->m_dbusDeviceString !=
"") {
1575 TQT_DBusError error;
1576 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
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()))
1583 return TDENetworkDeviceType::Other;
1591 PRINT_ERROR(TQString(
"Invalid DBUS device string '%1'").arg(d->m_dbusDeviceString))
1592 return TDENetworkDeviceType::Other;
1597 TDENetworkConnectionType::TDENetworkConnectionType TDENetworkConnectionManager_BackendNM::connectionType(TQString dbusPath) {
1598 TDENetworkConnectionType::TDENetworkConnectionType connType = TDENetworkConnectionType::Other;
1600 TQT_DBusError error;
1602 #ifndef USE_ASYNC_DBUS_CALLS
1604 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1605 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1606 TQT_DBusTQStringDataMap connectionSettingsMap;
1607 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
1608 if (ret && error.isValid()) {
1610 PRINT_ERROR((error.name() +
": " + error.message()))
1613 #else // USE_ASYNC_DBUS_CALLS
1615 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1616 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1617 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1619 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1620 if (ret && error.isValid()) {
1622 PRINT_ERROR((error.name() +
": " + error.message()))
1626 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1627 TQTimer nmCallTimeoutTimer;
1628 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
1629 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1630 tqApp->processEvents();
1631 if (!nmCallTimeoutTimer.isActive()) {
1632 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1636 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1637 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1638 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1639 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1641 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1642 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1643 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1645 #endif // USE_ASYNC_DBUS_CALLS
1648 TQT_DBusTQStringDataMap::const_iterator it2;
1649 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1650 TQString outerKeyValue = it2.key();
1651 TQT_DBusData dataValue = it2.data();
1653 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
1654 TQT_DBusTQStringDataMap::const_iterator it3;
1655 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
1656 TQString keyValue = it3.key();
1657 TQT_DBusData dataValue = it3.data();
1658 if (dataValue.type() == TQT_DBusData::Variant) {
1659 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
1660 TQT_DBusData dataValue2 = dataValueVariant.value;
1661 if (dataValue2.type() != TQT_DBusData::Variant) {
1662 if (outerKeyValue.lower() ==
"connection") {
1663 if (keyValue.lower() ==
"type") {
1664 connType = nmConnectionTypeToTDEConnectionType(dataValue2.toString());
1676 TQString TDENetworkConnectionManager_BackendNM::backendName() {
1677 return i18n(
"NetworkManager");
1680 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags TDENetworkConnectionManager_BackendNM::backendStatus() {
1681 if (d->m_networkManagerProxy) {
1683 TQT_DBusError error;
1684 ret = d->m_networkManagerProxy->getState(error);
1685 if (error.isValid()) {
1687 PRINT_ERROR((error.name() +
": " + error.message()))
1688 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1691 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags globalFlags = nmGlobalStateToTDEGlobalState(ret);
1692 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags vpnFlags = TDENetworkGlobalManagerFlags::Unknown;
1693 if (d->m_vpnProxy) {
1694 ret = d->m_vpnProxy->getState(error);
1695 if (error.isValid()) {
1697 bool print_error =
true;
1698 if (error.name() ==
"org.freedesktop.DBus.Error.ServiceUnknown") {
1699 if (d->vpn_service_error_notified) {
1700 print_error =
false;
1703 d->vpn_service_error_notified =
true;
1707 PRINT_ERROR(TQString(
"Attempting to access the network-manager VPN service returned: %1").arg(error.name() +
": " + error.message()))
1709 vpnFlags = TDENetworkGlobalManagerFlags::VPNUnknown;
1712 vpnFlags = nmVPNStateToTDEGlobalState(ret);
1715 return globalFlags | vpnFlags;
1719 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1723 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceInformation() {
1724 TQT_DBusError error;
1725 TDENetworkDeviceInformation ret;
1727 if (d->m_networkDeviceProxy) {
1728 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1729 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1730 ret.backendDriver = d->m_networkDeviceProxy->getDriver(error);
1731 ret.backendDriverVersion = d->m_networkDeviceProxy->getDriverVersion(error);
1732 ret.firmwareVersion = d->m_networkDeviceProxy->getFirmwareVersion(error);
1733 ret.capabilityFlags = nmCapabilityFlagsToTDECapabilityFlags(d->m_networkDeviceProxy->getCapabilities(error));
1735 ret.managed = d->m_networkDeviceProxy->getManaged(error);
1736 ret.autoConnect = d->m_networkDeviceProxy->getAutoconnect(error);
1737 ret.firmwareMissing = d->m_networkDeviceProxy->getFirmwareMissing(error);
1738 ret.deviceType = nmDeviceTypeToTDEDeviceType(d->m_networkDeviceProxy->getDeviceType(error));
1739 if (error.isValid()) {
1741 bool print_error =
true;
1742 if (error.name() ==
"org.freedesktop.DBus.Error.AccessDenied") {
1743 if (error.message().contains(
"org.freedesktop.NetworkManager.Device")) {
1746 ret.autoConnect =
true;
1747 if (d->device_autoconnect_error_notified) {
1748 print_error =
false;
1751 d->device_autoconnect_error_notified =
true;
1756 PRINT_ERROR((error.name() +
": " + error.message()))
1760 error = TQT_DBusError();
1764 if ((deviceType() == TDENetworkDeviceType::WiFi) && (d->m_wiFiDeviceProxy)) {
1765 ret.wiFiInfo.valid =
true;
1766 ret.wiFiInfo.hwAddress.fromString(d->m_wiFiDeviceProxy->getHwAddress(error));
1767 ret.wiFiInfo.permanentHWAddress.fromString(d->m_wiFiDeviceProxy->getPermHwAddress(error));
1768 ret.wiFiInfo.operatingMode = nmWiFiModeToTDEWiFiMode(d->m_wiFiDeviceProxy->getMode(error));
1769 ret.wiFiInfo.bitrate = d->m_wiFiDeviceProxy->getBitrate(error);
1770 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(d->m_wiFiDeviceProxy->getActiveAccessPoint(error));
1771 if (error.isValid()) {
1772 PRINT_ERROR((error.name() +
": " + error.message()))
1775 error = TQT_DBusError();
1778 ret.wiFiInfo.activeAccessPointBSSID = apInfo->BSSID;
1779 TDENetworkWiFiAPInfo* neighborListAPInfo = findAccessPointByBSSID(ret.wiFiInfo.activeAccessPointBSSID);
1780 if (neighborListAPInfo) {
1781 *neighborListAPInfo = *apInfo;
1786 ret.wiFiInfo.activeAccessPointBSSID = TDEMACAddress();
1788 ret.wiFiInfo.wirelessFlags = tdeWiFiFlagsToNMWiFiFlags(d->m_wiFiDeviceProxy->getWirelessCapabilities(error));
1791 ret.wiFiInfo.valid =
false;
1795 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1796 if (!error.isValid()) {
1797 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1798 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1799 ret.activeConnectionUUID = activeConnection.getUuid(error);
1800 if (error.isValid()) {
1801 ret.activeConnectionUUID = TQString::null;
1811 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceStatus() {
1812 TQT_DBusError error;
1813 TDENetworkDeviceInformation ret;
1815 if (d->m_networkDeviceProxy) {
1816 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1817 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1820 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1821 if (!error.isValid()) {
1822 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1823 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1824 ret.activeConnectionUUID = activeConnection.getUuid(error);
1825 if (error.isValid()) {
1826 ret.activeConnectionUUID = TQString::null;
1836 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncReply(
int asyncCallId,
const TQT_DBusDataMap<TQString>& settings) {
1837 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1838 nmConnectionSettingsAsyncSettingsResponse[asyncCallId] = settings;
1841 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncReply(
int asyncCallId) {
1842 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1845 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncReply(
int asyncCallId,
const TQT_DBusObjectPath& path) {
1846 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1847 nmAddConnectionAsyncResponse[asyncCallId] = path;
1850 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1851 nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallId] = error;
1854 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1855 nmConnectionSettingsUpdateAsyncSettingsErrorResponse[asyncCallId] = error;
1858 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1859 nmAddConnectionAsyncErrorResponse[asyncCallId] = error;
1862 void TDENetworkConnectionManager_BackendNM::loadConnectionInformation() {
1863 if (d->nonReentrantCallActive)
return;
1865 d->nonReentrantCallActive =
true;
1867 TDEMACAddress deviceMACAddress;
1868 deviceMACAddress.fromString(this->deviceMACAddress());
1870 if (d->m_networkManagerSettings) {
1871 clearTDENetworkConnectionList();
1872 TQT_DBusObjectPathList connections;
1873 TQT_DBusError error;
1876 ret = d->m_networkManagerSettings->ListConnections(connections, error);
1878 TQT_DBusObjectPathList::iterator it;
1879 for (it = connections.begin(); it != connections.end(); ++it) {
1880 TDENetworkConnection* connection;
1881 TDEWiredEthernetConnection* ethernetConnection = NULL;
1882 TDEWiredInfinibandConnection* infinibandConnection = NULL;
1883 TDEWiFiConnection* wiFiConnection = NULL;
1884 TDEVPNConnection* vpnConnection = NULL;
1885 TDEWiMaxConnection* wiMaxConnection = NULL;
1886 TDEVLANConnection* vlanConnection = NULL;
1887 TDEOLPCMeshConnection* olpcMeshConnection = NULL;
1888 TDEBluetoothConnection* bluetoothConnection = NULL;
1889 TDEModemConnection* modemConnection = NULL;
1890 TDENetworkConnectionType::TDENetworkConnectionType connType = connectionType((*it));
1891 if (connType == TDENetworkConnectionType::WiredEthernet) {
1892 connection = ethernetConnection =
new TDEWiredEthernetConnection;
1894 else if (connType == TDENetworkConnectionType::Infiniband) {
1895 connection = infinibandConnection =
new TDEWiredInfinibandConnection;
1897 else if (connType == TDENetworkConnectionType::WiFi) {
1898 connection = wiFiConnection =
new TDEWiFiConnection;
1900 else if (connType == TDENetworkConnectionType::VPN) {
1901 connection = vpnConnection =
new TDEVPNConnection;
1903 else if (connType == TDENetworkConnectionType::WiMax) {
1904 connection = wiMaxConnection =
new TDEWiMaxConnection;
1906 else if (connType == TDENetworkConnectionType::VLAN) {
1907 connection = vlanConnection =
new TDEVLANConnection;
1909 else if (connType == TDENetworkConnectionType::OLPCMesh) {
1910 connection = olpcMeshConnection =
new TDEOLPCMeshConnection;
1912 else if (connType == TDENetworkConnectionType::Bluetooth) {
1913 connection = bluetoothConnection =
new TDEBluetoothConnection;
1915 else if (connType == TDENetworkConnectionType::Modem) {
1916 connection = modemConnection =
new TDEModemConnection;
1919 connection =
new TDENetworkConnection;
1922 connection->ipConfig.connectionFlags = TDENetworkIPConfigurationFlags::IPV4DHCPIP | \
1923 TDENetworkIPConfigurationFlags::IPV4DHCPDNS | \
1924 TDENetworkIPConfigurationFlags::IPV4DHCPRoutes | \
1925 TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute | \
1926 TDENetworkIPConfigurationFlags::IPV6DHCPIP | \
1927 TDENetworkIPConfigurationFlags::IPV6DHCPDNS | \
1928 TDENetworkIPConfigurationFlags::IPV6DHCPRoutes | \
1929 TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
1934 connection->autoConnect =
true;
1936 if (wiFiConnection) {
1937 wiFiConnection->securitySettings.authType = TDENetworkWiFiAuthType::Open;
1940 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1941 printf(
"[network-manager comm debug] %s\n", (*it).data()); fflush(stdout);
1942 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1944 #ifndef USE_ASYNC_DBUS_CALLS
1946 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
1947 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1948 TQT_DBusTQStringDataMap connectionSettingsMap;
1949 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
1950 if (ret && error.isValid()) {
1952 PRINT_ERROR((error.name() +
": " + error.message()))
1955 #else // USE_ASYNC_DBUS_CALLS
1957 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
1958 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1959 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1960 connect(&connectionSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processConnectionSettingsAsyncError(
int,
const TQT_DBusError)));
1962 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1963 if (ret && error.isValid()) {
1965 PRINT_ERROR((error.name() +
": " + error.message()))
1969 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1970 TQTimer nmCallTimeoutTimer;
1971 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
1972 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1973 tqApp->processEvents();
1974 if (!nmCallTimeoutTimer.isActive()) {
1975 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1979 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1980 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1981 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1982 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1984 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1985 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1986 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1988 #endif // USE_ASYNC_DBUS_CALLS
1990 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1991 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
1992 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
1993 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1996 TQT_DBusTQStringDataMap::const_iterator it2;
1997 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1998 TQString outerKeyValue = it2.key();
1999 TQT_DBusData dataValue = it2.data();
2000 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2001 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
2002 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2003 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
2004 TQT_DBusTQStringDataMap::const_iterator it3;
2005 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
2006 TQString keyValue = it3.key();
2007 TQT_DBusData dataValue = it3.data();
2008 if (dataValue.type() != TQT_DBusData::Variant) {
2009 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2010 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
2011 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2015 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
2016 TQT_DBusData dataValue2 = dataValueVariant.value;
2017 if (dataValue2.type() != TQT_DBusData::Variant) {
2018 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2019 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);
2020 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
2022 if (outerKeyValue.lower() ==
"connection") {
2023 if (keyValue.lower() ==
"id") {
2024 connection->friendlyName = dataValue2.toString();
2026 else if (keyValue.lower() ==
"uuid") {
2027 connection->UUID = dataValue2.toString().lower();
2029 else if (keyValue.lower() ==
"permissions") {
2030 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2031 TQT_DBusDataValueList::const_iterator it4;
2032 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2033 TQT_DBusData innerDataValue = *it4;
2034 TQString authString = innerDataValue.toString();
2035 TQStringList pieces = TQStringList::split(
":", authString);
2036 if (pieces[0].lower() ==
"user") {
2037 connection->authorizedUsers.append(pieces[1]);
2041 else if (keyValue.lower() ==
"autoconnect") {
2042 connection->autoConnect = dataValue2.toBool();
2044 else if (keyValue.lower() ==
"read-only") {
2045 connection->readOnly = dataValue2.toBool();
2047 else if (keyValue.lower() ==
"master") {
2048 connection->masterConnectionUUID = dataValue2.toString().lower();
2050 else if (keyValue.lower() ==
"slave-type") {
2051 connection->slaveType = nmSlaveTypeToTDESlaveType(dataValue2.toString());
2053 else if (keyValue.lower() ==
"timestamp") {
2054 connection->lastKnownConnection.setTime_t(dataValue2.toUInt64());
2057 else if (outerKeyValue.lower() ==
"802-1x") {
2058 if (keyValue.lower() ==
"eap") {
2059 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2060 TQT_DBusDataValueList::const_iterator it4;
2062 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2063 TQT_DBusData innerDataValue = *it4;
2066 connection->eapConfig.type = nmEAPTypeToTDEEAPType(innerDataValue.toString());
2071 else if (keyValue.lower() ==
"identity") {
2072 connection->eapConfig.userName = dataValue2.toString();
2074 else if (keyValue.lower() ==
"anonymous-identity") {
2075 connection->eapConfig.anonymousUserName = dataValue2.toString();
2077 else if (keyValue.lower() ==
"pac-file") {
2078 connection->eapConfig.pacFileName = dataValue2.toString();
2080 else if (keyValue.lower() ==
"ca-cert") {
2081 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2082 TQT_DBusDataValueList::const_iterator it4;
2084 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2085 TQT_DBusData innerDataValue = *it4;
2087 connection->eapConfig.caCertificate.resize(count+1);
2088 connection->eapConfig.caCertificate[count] = innerDataValue.toByte();
2091 else if (keyValue.lower() ==
"ca-path") {
2092 connection->eapConfig.additionalCAFilesPath = dataValue2.toString();
2094 else if (keyValue.lower() ==
"subject-match") {
2095 connection->eapConfig.authServerCertSubjectMatch = dataValue2.toString();
2097 else if (keyValue.lower() ==
"altsubject-matches") {
2098 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2099 TQT_DBusDataValueList::const_iterator it4;
2100 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2101 TQT_DBusData innerDataValue = *it4;
2102 connection->eapConfig.alternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2105 else if (keyValue.lower() ==
"client-cert") {
2106 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2107 TQT_DBusDataValueList::const_iterator it4;
2109 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2110 TQT_DBusData innerDataValue = *it4;
2112 connection->eapConfig.clientCertificate.resize(count+1);
2113 connection->eapConfig.clientCertificate[count] = innerDataValue.toByte();
2116 else if (keyValue.lower() ==
"phase1-peapver") {
2117 connection->eapConfig.forcePEAPVersion = dataValue2.toString();
2119 else if (keyValue.lower() ==
"phase1-peaplabel") {
2120 connection->eapConfig.forcePEAPLabel = dataValue2.toString();
2122 else if (keyValue.lower() ==
"phase1-fast-provisioning") {
2123 connection->eapConfig.fastProvisioningFlags = nmEAPFastFlagsToTDEEAPFastFlags(dataValue2.toString());
2125 else if (keyValue.lower() ==
"phase2-auth") {
2126 connection->eapConfig.phase2NonEAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2128 else if (keyValue.lower() ==
"phase2-autheap") {
2129 connection->eapConfig.phase2EAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2131 else if (keyValue.lower() ==
"phase2-ca-cert") {
2132 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2133 TQT_DBusDataValueList::const_iterator it4;
2135 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2136 TQT_DBusData innerDataValue = *it4;
2138 connection->eapConfig.phase2CaCertificate.resize(count+1);
2139 connection->eapConfig.phase2CaCertificate[count] = innerDataValue.toByte();
2142 else if (keyValue.lower() ==
"phase2-ca-path") {
2143 connection->eapConfig.phase2CaFilesPath = dataValue2.toString();
2145 else if (keyValue.lower() ==
"phase2-subject-match") {
2146 connection->eapConfig.phase2AuthServerCertSubjectMatch = dataValue2.toString();
2148 else if (keyValue.lower() ==
"phase2-altsubject-matches") {
2149 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2150 TQT_DBusDataValueList::const_iterator it4;
2151 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2152 TQT_DBusData innerDataValue = *it4;
2153 connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2156 else if (keyValue.lower() ==
"phase2-client-cert") {
2157 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2158 TQT_DBusDataValueList::const_iterator it4;
2160 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2161 TQT_DBusData innerDataValue = *it4;
2163 connection->eapConfig.phase2ClientCertificate.resize(count+1);
2164 connection->eapConfig.phase2ClientCertificate[count] = innerDataValue.toByte();
2167 else if (keyValue.lower() ==
"password-flags") {
2168 connection->eapConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2170 else if (keyValue.lower() ==
"password-raw-flags") {
2171 connection->eapConfig.binaryPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2173 else if (keyValue.lower() ==
"private-key") {
2174 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2175 TQT_DBusDataValueList::const_iterator it4;
2177 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2178 TQT_DBusData innerDataValue = *it4;
2180 connection->eapConfig.privateKey.resize(count+1);
2181 connection->eapConfig.privateKey[count] = innerDataValue.toByte();
2184 else if (keyValue.lower() ==
"private-key-password-flags") {
2185 connection->eapConfig.privateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2187 else if (keyValue.lower() ==
"phase2-private-key") {
2188 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2189 TQT_DBusDataValueList::const_iterator it4;
2191 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2192 TQT_DBusData innerDataValue = *it4;
2194 connection->eapConfig.phase2PrivateKey.resize(count+1);
2195 connection->eapConfig.phase2PrivateKey[count] = innerDataValue.toByte();
2198 else if (keyValue.lower() ==
"phase2-private-key-password-flags") {
2199 connection->eapConfig.phase2PrivateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2201 else if (keyValue.lower() ==
"system-ca-certs") {
2202 connection->eapConfig.forceSystemCaCertificates = dataValue2.toBool();
2204 connection->eapConfig.valid =
true;
2206 else if (outerKeyValue.lower() ==
"802-3-ethernet") {
2207 if (keyValue.lower() ==
"duplex") {
2208 connection->fullDuplex = (dataValue2.toString().lower() ==
"full")?
true:
false;
2210 else if (keyValue.lower() ==
"mac-address") {
2211 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2212 TQT_DBusDataValueList::const_iterator it4;
2213 TDENetworkByteList macAddress;
2214 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2215 TQT_DBusData innerDataValue = *it4;
2216 macAddress.append(innerDataValue.toByte());
2218 connection->lockedHWAddress.setAddress(macAddress);
2220 else if (keyValue.lower() ==
"cloned-mac-address") {
2221 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2222 TQT_DBusDataValueList::const_iterator it4;
2223 TDENetworkByteList macAddress;
2224 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2225 TQT_DBusData innerDataValue = *it4;
2226 macAddress.append(innerDataValue.toByte());
2228 connection->manualHWAddress.setAddress(macAddress);
2230 else if (keyValue.lower() ==
"mtu") {
2231 connection->mtu = dataValue2.toUInt32();
2234 else if (outerKeyValue.lower() ==
"infiniband") {
2235 if (keyValue.lower() ==
"mac-address") {
2236 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2237 TQT_DBusDataValueList::const_iterator it4;
2238 TDENetworkByteList macAddress;
2239 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2240 TQT_DBusData innerDataValue = *it4;
2241 macAddress.append(innerDataValue.toByte());
2243 connection->lockedHWAddress.setAddress(macAddress);
2245 else if (keyValue.lower() ==
"mtu") {
2246 connection->mtu = dataValue2.toUInt32();
2248 else if (keyValue.lower() ==
"transport-mode") {
2249 infinibandConnection->transportMode = nmIBTransportToTDEIBTransport(dataValue2.toString());
2252 else if (outerKeyValue.lower() ==
"802-11-wireless") {
2253 if (keyValue.lower() ==
"ssid") {
2254 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2255 TQT_DBusDataValueList::const_iterator it4;
2257 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2258 TQT_DBusData innerDataValue = *it4;
2259 wiFiConnection->SSID.resize(count+1);
2260 wiFiConnection->SSID[count] = innerDataValue.toByte();
2264 else if (keyValue.lower() ==
"mac-address") {
2265 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2266 TQT_DBusDataValueList::const_iterator it4;
2267 TDENetworkByteList macAddress;
2268 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2269 TQT_DBusData innerDataValue = *it4;
2270 macAddress.append(innerDataValue.toByte());
2272 connection->lockedHWAddress.setAddress(macAddress);
2274 else if (keyValue.lower() ==
"cloned-mac-address") {
2275 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2276 TQT_DBusDataValueList::const_iterator it4;
2277 TDENetworkByteList macAddress;
2278 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2279 TQT_DBusData innerDataValue = *it4;
2280 macAddress.append(innerDataValue.toByte());
2282 connection->manualHWAddress.setAddress(macAddress);
2284 else if (keyValue.lower() ==
"mtu") {
2285 connection->mtu = dataValue2.toUInt32();
2287 else if (keyValue.lower() ==
"mode") {
2288 wiFiConnection->operatingMode = nmWiFiModeToTDEWiFiMode(dataValue2.toString());
2290 else if (keyValue.lower() ==
"band") {
2291 wiFiConnection->bandRestriction = nmWiFiFrequencyBandToTDEWiFiFrequencyBand(dataValue2.toString());
2293 else if (keyValue.lower() ==
"channel") {
2294 wiFiConnection->channelRestriction = dataValue2.toUInt32();
2295 if (wiFiConnection->channelRestriction == 0) wiFiConnection->channelRestriction = -1;
2297 else if (keyValue.lower() ==
"rate") {
2298 wiFiConnection->bitRateRestriction = dataValue2.toUInt32()*1000;
2299 if (wiFiConnection->bitRateRestriction == 0) wiFiConnection->bitRateRestriction = -1;
2301 else if (keyValue.lower() ==
"tx-power") {
2302 wiFiConnection->powerRestriction = dataValue2.toUInt32();
2303 if (wiFiConnection->powerRestriction == 0) wiFiConnection->powerRestriction = -1;
2305 else if (keyValue.lower() ==
"bssid") {
2306 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2307 TQT_DBusDataValueList::const_iterator it4;
2308 TDENetworkByteList macAddress;
2309 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2310 TQT_DBusData innerDataValue = *it4;
2311 macAddress.append(innerDataValue.toByte());
2313 wiFiConnection->accessPointRestriction.setAddress(macAddress);
2315 else if (keyValue.lower() ==
"mac-address-blacklist") {
2316 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2317 TQT_DBusDataValueList::const_iterator it4;
2318 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2319 TQT_DBusData innerDataValue = *it4;
2320 TDEMACAddress hwAddress;
2321 hwAddress.fromString(innerDataValue.toString());
2322 wiFiConnection->blacklistedBSSIDs.append(hwAddress);
2325 else if (keyValue.lower() ==
"seen-bssids") {
2326 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2327 TQT_DBusDataValueList::const_iterator it4;
2328 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2329 TQT_DBusData innerDataValue = *it4;
2330 TDEMACAddress hwAddress;
2331 hwAddress.fromString(innerDataValue.toString());
2332 wiFiConnection->heardBSSIDs.append(hwAddress);
2335 else if (keyValue.lower() ==
"security") {
2337 if (setting.lower() ==
"802-11-wireless-security") {
2338 wiFiConnection->securityRequired =
true;
2341 wiFiConnection->securityRequired =
false;
2344 else if (keyValue.lower() ==
"hidden") {
2345 wiFiConnection->isHiddenNetwork = dataValue2.toBool();
2348 else if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
2349 if (keyValue.lower() ==
"key-mgmt") {
2350 wiFiConnection->securitySettings.keyType = nmWiFiKeyTypeToTDEWiFiKeyType(dataValue2.toString());
2352 else if (keyValue.lower() ==
"wep-tx-keyidx") {
2353 wiFiConnection->securitySettings.wepKeyIndex = dataValue2.toUInt32();
2355 else if (keyValue.lower() ==
"auth-alg") {
2356 wiFiConnection->securitySettings.authType = nmWiFiAuthTypeToTDEWiFiAuthType(dataValue2.toString());
2358 else if (keyValue.lower() ==
"proto") {
2359 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2360 TQT_DBusDataValueList::const_iterator it4;
2361 TQStringList strings;
2362 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2363 TQT_DBusData innerDataValue = *it4;
2364 strings.append(innerDataValue.toString());
2366 wiFiConnection->securitySettings.wpaVersion = nmWiFiWPAVersionToTDEWiFiWPAVersion(strings);
2368 else if (keyValue.lower() ==
"pairwise") {
2369 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2370 TQT_DBusDataValueList::const_iterator it4;
2371 TQStringList strings;
2372 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2373 TQT_DBusData innerDataValue = *it4;
2374 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2376 if ((wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2377 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2378 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2379 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2380 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2383 else if (keyValue.lower() ==
"group") {
2384 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2385 TQT_DBusDataValueList::const_iterator it4;
2386 TQStringList strings;
2387 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2388 TQT_DBusData innerDataValue = *it4;
2389 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2391 if ((wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2392 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2393 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2394 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2395 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2398 else if (keyValue.lower() ==
"leap-username") {
2399 wiFiConnection->securitySettings.leapUsername = dataValue2.toString();
2401 else if (keyValue.lower() ==
"wep-key-flags") {
2402 wiFiConnection->securitySettings.wepKeyFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2404 else if (keyValue.lower() ==
"wep-key-type") {
2405 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(dataValue2.toUInt32());
2407 else if (keyValue.lower() ==
"psk-flags") {
2408 wiFiConnection->securitySettings.pskFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2410 else if (keyValue.lower() ==
"leap-password-flags") {
2411 wiFiConnection->securitySettings.leapPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2413 wiFiConnection->securitySettings.valid =
true;
2415 else if (outerKeyValue.lower() ==
"vpn") {
2416 if (keyValue.lower() ==
"service-type") {
2417 TQString plugin = dataValue2.toString();
2418 plugin.replace(
"org.freedesktop.NetworkManager.",
"");
2419 vpnConnection->vpnPluginID = plugin;
2421 else if (keyValue.lower() ==
"user-name") {
2422 vpnConnection->lockedUserName = dataValue2.toString();
2424 else if (keyValue.lower() ==
"data") {
2425 vpnConnection->pluginData.clear();
2426 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
2427 TQT_DBusTQStringDataMap::const_iterator it4;
2428 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
2429 TQString keyValue4 = it4.key();
2430 TQT_DBusData dataValue4 = it4.data();
2431 if (dataValue4.type() == TQT_DBusData::String) {
2432 vpnConnection->pluginData[keyValue4] = dataValue4.toString();
2437 else if (outerKeyValue.lower() ==
"wimax") {
2438 if (keyValue.lower() ==
"mac-address") {
2439 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2440 TQT_DBusDataValueList::const_iterator it4;
2441 TDENetworkByteList macAddress;
2442 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2443 TQT_DBusData innerDataValue = *it4;
2444 macAddress.append(innerDataValue.toByte());
2446 connection->lockedHWAddress.setAddress(macAddress);
2448 else if (keyValue.lower() ==
"network-name") {
2449 wiMaxConnection->networkServiceProvider = dataValue2.toString();
2452 else if (outerKeyValue.lower() ==
"vlan") {
2453 if (keyValue.lower() ==
"interface-name") {
2454 vlanConnection->kernelName = dataValue2.toString();
2456 else if (keyValue.lower() ==
"parent") {
2457 vlanConnection->parentConnectionUUID = dataValue2.toString();
2459 else if (keyValue.lower() ==
"id") {
2460 vlanConnection->vlanID = dataValue2.toUInt32();
2462 else if (keyValue.lower() ==
"flags") {
2463 vlanConnection->vlanFlags = nmVLANFlagsToTDEVLANFlags(dataValue2.toUInt32());
2465 else if (keyValue.lower() ==
"ingress-priority-map") {
2466 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2467 TQT_DBusDataValueList::const_iterator it4;
2468 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2469 TQT_DBusData innerDataValue = *it4;
2470 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2471 vlanConnection->ingressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2474 else if (keyValue.lower() ==
"egress-priority-map") {
2475 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2476 TQT_DBusDataValueList::const_iterator it4;
2477 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2478 TQT_DBusData innerDataValue = *it4;
2479 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2480 vlanConnection->egressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2484 else if (outerKeyValue.lower() ==
"serial") {
2485 if (keyValue.lower() ==
"baud") {
2486 connection->serialConfig.baudRate = dataValue2.toUInt32();
2488 else if (keyValue.lower() ==
"bits") {
2489 connection->serialConfig.byteWidth = dataValue2.toUInt32();
2491 else if (keyValue.lower() ==
"parity") {
2492 connection->serialConfig.parity = nmParityToTDEParity(dataValue2.toByte());
2494 else if (keyValue.lower() ==
"stopbits") {
2495 connection->serialConfig.stopBits = dataValue2.toUInt32();
2497 else if (keyValue.lower() ==
"send-delay") {
2498 connection->serialConfig.txDelay = dataValue2.toUInt64();
2500 connection->serialConfig.valid =
true;
2502 else if (outerKeyValue.lower() ==
"ppp") {
2503 if (keyValue.lower() ==
"noauth") {
2504 connection->pppConfig.requireServerAuthentication = !(dataValue2.toBool());
2506 else if (keyValue.lower() ==
"refuse-eap") {
2507 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableEAP;
2508 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableEAP;
2510 else if (keyValue.lower() ==
"refuse-pap") {
2511 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisablePAP;
2512 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisablePAP;
2514 else if (keyValue.lower() ==
"refuse-chap") {
2515 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableCHAP;
2516 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableCHAP;
2518 else if (keyValue.lower() ==
"refuse-mschap") {
2519 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAP;
2520 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAP;
2522 else if (keyValue.lower() ==
"refuse-mschapv2") {
2523 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAPv2;
2524 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAPv2;
2526 else if (keyValue.lower() ==
"nobsdcomp") {
2527 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowBSDCompression;
2528 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowBSDCompression;
2530 else if (keyValue.lower() ==
"nodeflate") {
2531 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowDeflateCompression;
2532 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowDeflateCompression;
2534 else if (keyValue.lower() ==
"no-vj-comp") {
2535 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowVJCompression;
2536 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowVJCompression;
2538 else if (keyValue.lower() ==
"require-mppe") {
2539 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE;
2540 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE;
2542 else if (keyValue.lower() ==
"require-mppe-128") {
2543 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE128;
2544 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE128;
2546 else if (keyValue.lower() ==
"mppe-stateful") {
2547 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::StatefulMPPE;
2548 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::StatefulMPPE;
2550 else if (keyValue.lower() ==
"crtscts") {
2551 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::UseHardwareFlowControl;
2552 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::UseHardwareFlowControl;
2554 else if (keyValue.lower() ==
"baud") {
2555 connection->pppConfig.baudRate = dataValue2.toUInt32();
2557 else if (keyValue.lower() ==
"mru") {
2558 connection->pppConfig.mru = dataValue2.toUInt32();
2560 else if (keyValue.lower() ==
"mtu") {
2561 connection->pppConfig.mtu = dataValue2.toUInt32();
2563 else if (keyValue.lower() ==
"lcp-echo-interval") {
2564 connection->pppConfig.lcpEchoPingInterval = dataValue2.toUInt32();
2566 else if (keyValue.lower() ==
"lcp-echo-failure") {
2567 connection->pppConfig.lcpEchoFailureThreshold = dataValue2.toUInt32();
2569 connection->pppConfig.valid =
true;
2571 else if (outerKeyValue.lower() ==
"pppoe") {
2572 if (keyValue.lower() ==
"service") {
2573 connection->pppoeConfig.networkServiceProvider = dataValue2.toString();
2575 else if (keyValue.lower() ==
"username") {
2576 connection->pppoeConfig.username = dataValue2.toString();
2578 else if (keyValue.lower() ==
"password-flags") {
2579 connection->pppoeConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2581 connection->pppoeConfig.secretsValid =
true;
2583 else if ((outerKeyValue.lower() ==
"802-11-olpc-mesh") && (olpcMeshConnection)) {
2584 if (keyValue.lower() ==
"ssid") {
2585 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2586 TQT_DBusDataValueList::const_iterator it4;
2588 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2589 TQT_DBusData innerDataValue = *it4;
2590 olpcMeshConnection->SSID.resize(count+1);
2591 olpcMeshConnection->SSID[count] = innerDataValue.toByte();
2595 else if (keyValue.lower() ==
"channel") {
2596 olpcMeshConnection->channel = dataValue2.toUInt32();
2598 else if (keyValue.lower() ==
"dhcp-anycast-address") {
2599 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2600 TQT_DBusDataValueList::const_iterator it4;
2602 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2603 TQT_DBusData innerDataValue = *it4;
2604 olpcMeshConnection->anycastDHCPHWAddress.resize(count+1);
2605 olpcMeshConnection->anycastDHCPHWAddress[count] = innerDataValue.toByte();
2610 else if ((outerKeyValue.lower() ==
"bluetooth") && (bluetoothConnection)) {
2611 if (keyValue.lower() ==
"bdaddr") {
2612 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2613 TQT_DBusDataValueList::const_iterator it4;
2614 TDENetworkByteList macAddress;
2615 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2616 TQT_DBusData innerDataValue = *it4;
2617 macAddress.append(innerDataValue.toByte());
2619 connection->lockedHWAddress.setAddress(macAddress);
2621 else if (keyValue.lower() ==
"type") {
2622 bluetoothConnection->type = nmBluetoothModeToTDEBluetoothMode(dataValue2.toString());
2625 else if ((outerKeyValue.lower() ==
"cdma") && (modemConnection)) {
2626 if (keyValue.lower() ==
"number") {
2627 modemConnection->cdmaConfig.providerDataNumber = dataValue2.toString();
2629 else if (keyValue.lower() ==
"username") {
2630 modemConnection->cdmaConfig.username = dataValue2.toString();
2632 else if (keyValue.lower() ==
"password-flags") {
2633 modemConnection->cdmaConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2635 modemConnection->type = TDEModemConnectionType::CDMA;
2636 modemConnection->cdmaConfig.valid =
true;
2638 else if ((outerKeyValue.lower() ==
"gsm") && (modemConnection)) {
2639 if (keyValue.lower() ==
"number") {
2640 modemConnection->gsmConfig.providerDataNumber = dataValue2.toString();
2642 else if (keyValue.lower() ==
"username") {
2643 modemConnection->gsmConfig.username = dataValue2.toString();
2645 else if (keyValue.lower() ==
"password-flags") {
2646 modemConnection->gsmConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2648 else if (keyValue.lower() ==
"apn") {
2649 modemConnection->gsmConfig.accessPointName = dataValue2.toString();
2651 else if (keyValue.lower() ==
"network-id") {
2652 modemConnection->gsmConfig.networkID = dataValue2.toString();
2654 else if (keyValue.lower() ==
"network-type") {
2655 modemConnection->gsmConfig.networkType = nmGSMModeToTDEGSMMode(dataValue2.toInt32());
2657 else if (keyValue.lower() ==
"pin-flags") {
2658 modemConnection->gsmConfig.pinFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2660 else if (keyValue.lower() ==
"allowed-bands") {
2661 modemConnection->gsmConfig.allowedFrequencyBands = dataValue2.toUInt32();
2663 else if (keyValue.lower() ==
"home-only") {
2664 modemConnection->gsmConfig.allowRoaming = !dataValue2.toBool();
2666 modemConnection->type = TDEModemConnectionType::GSM;
2667 modemConnection->gsmConfig.valid =
true;
2669 else if (outerKeyValue.lower() ==
"ipv4") {
2670 if (keyValue.lower() ==
"addresses") {
2671 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2672 TQT_DBusDataValueList::const_iterator it4;
2673 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2674 TQT_DBusData innerDataValue = *it4;
2675 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2676 TQT_DBusDataValueList::const_iterator it5;
2678 TDENetworkSingleIPConfiguration ipConfig;
2679 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2680 TQT_DBusData innerMostDataValue = *it5;
2683 ipConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2685 else if (state == 1) {
2687 ipConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2689 else if (state == 2) {
2691 ipConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2695 ipConfig.valid =
true;
2696 connection->ipConfig.ipConfigurations.append(ipConfig);
2699 else if (keyValue.lower() ==
"dhcp-client-id") {
2700 connection->ipConfig.dhcpClientIdentifier = dataValue2.toString();
2702 else if (keyValue.lower() ==
"dns") {
2703 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2704 TQT_DBusDataValueList::const_iterator it4;
2705 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2706 TQT_DBusData innerDataValue = *it4;
2707 connection->ipConfig.resolvers.append(TQHostAddress(reverseIPV4ByteOrder(innerDataValue.toUInt32())));
2710 else if (keyValue.lower() ==
"dns-search") {
2711 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2712 TQT_DBusDataValueList::const_iterator it4;
2713 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2714 TQT_DBusData innerDataValue = *it4;
2715 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
false));
2718 else if (keyValue.lower() ==
"ignore-auto-dns") {
2719 bool nm_static_dns = dataValue2.toBool();
2720 if (nm_static_dns) {
2721 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2724 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2727 else if (keyValue.lower() ==
"may-fail") {
2728 bool nm_may_fail = dataValue2.toBool();
2729 connection->requireIPV4 = !nm_may_fail;
2731 else if (keyValue.lower() ==
"method") {
2732 TQString nm_method = dataValue2.toString().lower();
2733 if (nm_method ==
"auto") {
2734 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2736 else if (nm_method ==
"manual") {
2737 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2739 else if (nm_method ==
"link-local") {
2740 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4LocalOnly;
2742 else if (nm_method ==
"shared") {
2743 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer;
2745 else if (nm_method ==
"disabled") {
2746 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4Disabled;
2749 else if (keyValue.lower() ==
"ignore-auto-routes") {
2750 bool nm_static_routes = dataValue2.toBool();
2751 if (nm_static_routes) {
2752 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2755 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2758 else if (keyValue.lower() ==
"never-default") {
2759 bool nm_can_default_route = !dataValue2.toBool();
2760 if (nm_can_default_route) {
2761 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2764 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2767 else if (keyValue.lower() ==
"routes") {
2768 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2769 TQT_DBusDataValueList::const_iterator it4;
2770 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2771 TQT_DBusData innerDataValue = *it4;
2772 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2773 TQT_DBusDataValueList::const_iterator it5;
2775 TDENetworkSingleRouteConfiguration routeConfig;
2776 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2777 TQT_DBusData innerMostDataValue = *it5;
2780 routeConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2782 else if (state == 1) {
2784 routeConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2786 else if (state == 2) {
2788 routeConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2790 else if (state == 3) {
2792 routeConfig.metric = innerMostDataValue.toUInt32();
2796 routeConfig.valid =
true;
2797 connection->ipConfig.routeConfigurations.append(routeConfig);
2800 connection->ipConfig.valid =
true;
2802 else if (outerKeyValue.lower() ==
"ipv6") {
2803 if (keyValue.lower() ==
"addresses") {
2804 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2805 TQT_DBusDataValueList::const_iterator it4;
2806 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2807 TQT_DBusData innerDataValue = *it4;
2808 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2809 TQT_DBusDataValueList::const_iterator it5;
2810 TDENetworkSingleIPConfiguration ipConfig;
2812 TQT_DBusDataValueList innerMostValueList;
2813 innerMostValueList = innerValueList[0].toTQValueList();
2814 TQ_UINT8 nm_v6address[16];
2815 unsigned char nm_addr_ptr = 0;
2816 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2817 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2818 TQT_DBusData innerMostDataValue = *it5;
2819 if (nm_addr_ptr < 16) {
2820 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2824 ipConfig.ipAddress = TQHostAddress(nm_v6address);
2827 ipConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2830 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2831 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2832 TQT_DBusData innerMostDataValue = *it5;
2833 if (nm_addr_ptr < 16) {
2834 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2838 ipConfig.gateway = TQHostAddress(nm_v6address);
2840 ipConfig.valid =
true;
2841 connection->ipConfig.ipConfigurations.append(ipConfig);
2844 else if (keyValue.lower() ==
"dns") {
2845 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2846 TQT_DBusDataValueList::const_iterator it4;
2847 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2848 TQT_DBusData innerDataValue = *it4;
2849 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2850 TQT_DBusDataValueList::const_iterator it5;
2851 TQ_UINT8 nm_v6address[16];
2852 unsigned char nm_addr_ptr = 0;
2853 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2854 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2855 TQT_DBusData innerMostDataValue = *it5;
2856 if (nm_addr_ptr < 16) {
2857 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2861 connection->ipConfig.resolvers.append(TQHostAddress(nm_v6address));
2864 else if (keyValue.lower() ==
"dns-search") {
2865 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2866 TQT_DBusDataValueList::const_iterator it4;
2867 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2868 TQT_DBusData innerDataValue = *it4;
2869 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2870 TQT_DBusDataValueList::const_iterator it5;
2871 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
true));
2874 else if (keyValue.lower() ==
"ignore-auto-dns") {
2875 bool nm_static_dns = dataValue2.toBool();
2876 if (nm_static_dns) {
2877 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2880 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2883 else if (keyValue.lower() ==
"may-fail") {
2884 bool nm_may_fail = dataValue2.toBool();
2885 connection->requireIPV6 = !nm_may_fail;
2887 else if (keyValue.lower() ==
"method") {
2888 TQString nm_method = dataValue2.toString().lower();
2889 if (nm_method ==
"auto") {
2890 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPIP;
2892 else if (nm_method ==
"manual") {
2893 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6DHCPIP;
2895 else if (nm_method ==
"link-local") {
2896 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6LocalOnly;
2898 else if (nm_method ==
"shared") {
2899 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer;
2901 else if (nm_method ==
"ignore") {
2902 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6Disabled;
2905 else if (keyValue.lower() ==
"ignore-auto-routes") {
2906 bool nm_static_routes = dataValue2.toBool();
2907 if (nm_static_routes) {
2908 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
2911 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
2914 else if (keyValue.lower() ==
"never-default") {
2915 bool nm_can_default_route = !dataValue2.toBool();
2916 if (nm_can_default_route) {
2917 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2920 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2923 else if (keyValue.lower() ==
"routes") {
2924 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2925 TQT_DBusDataValueList::const_iterator it4;
2926 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2927 TQT_DBusData innerDataValue = *it4;
2928 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2929 TQT_DBusDataValueList::const_iterator it5;
2930 TDENetworkSingleRouteConfiguration routeConfig;
2932 TQT_DBusDataValueList innerMostValueList;
2933 innerMostValueList = innerValueList[0].toTQValueList();
2934 TQ_UINT8 nm_v6address[16];
2935 unsigned char nm_addr_ptr = 0;
2936 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2937 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2938 TQT_DBusData innerMostDataValue = *it5;
2939 if (nm_addr_ptr < 16) {
2940 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2944 routeConfig.ipAddress = TQHostAddress(nm_v6address);
2947 routeConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2950 innerMostValueList = innerValueList[2].toTQValueList();
2952 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2953 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2954 TQT_DBusData innerMostDataValue = *it5;
2955 if (nm_addr_ptr < 16) {
2956 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2960 routeConfig.gateway = TQHostAddress(nm_v6address);
2963 routeConfig.metric = innerValueList[3].toUInt32();
2965 routeConfig.valid =
true;
2966 connection->ipConfig.routeConfigurations.append(routeConfig);
2969 connection->ipConfig.valid =
true;
2984 if ((deviceMACAddress == connection->lockedHWAddress) || (!connection->lockedHWAddress.isValid()) || (!deviceMACAddress.isValid())) {
2985 loadConnectionAllowedValues(connection);
2986 m_connectionList->append(connection);
2991 PRINT_ERROR((error.name() +
": " + error.message()))
2997 PRINT_ERROR((error.name() +
": " + error.message()))
2999 internalNetworkManagementEvent(TDENetworkGlobalEventType::ConnectionListChanged);
3002 d->nonReentrantCallActive =
false;
3005 void TDENetworkConnectionManager_BackendNM::loadConnectionAllowedValues(TDENetworkConnection* connection) {
3008 connection->eapConfig.allowedPhase2NonEAPMethods.clear();
3009 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MD5);
3010 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3011 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::OTP);
3012 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::GTC);
3013 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::TLS);
3015 connection->eapConfig.allowedPhase2EAPMethods.clear();
3016 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::PAP);
3017 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::CHAP);
3018 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAP);
3019 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3020 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::OTP);
3021 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::GTC);
3022 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::TLS);
3024 connection->eapConfig.allowedValid =
true;
3031 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecrets(TQString uuid) {
3032 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3034 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3039 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3040 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3045 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3048 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-1x");
3049 if (wiFiConnection) {
3050 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-11-wireless-security");
3052 if (vpnConnection) {
3053 ret = ret && loadConnectionSecretsForGroup(uuid,
"vpn");
3055 ret = ret && loadConnectionSecretsForGroup(uuid,
"pppoe");
3056 if (modemConnection) {
3057 ret = ret && loadConnectionSecretsForGroup(uuid,
"cdma");
3058 ret = ret && loadConnectionSecretsForGroup(uuid,
"gsm");
3063 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecretsForGroup(TQString uuid, TQString group) {
3064 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3066 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3071 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3072 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3077 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3078 TQT_DBusObjectPath existingConnection;
3079 TQT_DBusError error;
3081 TQT_DBusTQStringDataMap connectionSecretsMap(TQT_DBusData::String);
3082 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
3084 #ifndef USE_ASYNC_DBUS_CALLS
3086 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3087 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3088 ret = connectionSettings.GetSecrets(group, connectionSecretsMap, error);
3089 if (ret && error.isValid()) {
3091 PRINT_ERROR((error.name() +
": " + error.message()))
3094 #else // USE_ASYNC_DBUS_CALLS
3096 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3097 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3098 connect(&connectionSettings, SIGNAL(GetSecretsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3100 ret = connectionSettings.GetSecretsAsync(asyncCallID, group, error);
3101 if (ret && error.isValid()) {
3103 PRINT_ERROR((error.name() +
": " + error.message()))
3107 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3108 TQTimer nmCallTimeoutTimer;
3109 nmCallTimeoutTimer.start(NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS, TRUE);
3110 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3111 tqApp->processEvents();
3112 if (!nmCallTimeoutTimer.isActive()) {
3113 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3117 connectionSecretsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3118 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3119 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3120 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3122 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3123 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3124 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3126 #endif // USE_ASYNC_DBUS_CALLS
3128 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3129 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
3130 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSecretsMap));
3131 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3134 TQT_DBusTQStringDataMap::const_iterator it2;
3135 for (it2 = connectionSecretsMap.begin(); it2 != connectionSecretsMap.end(); ++it2) {
3136 TQString outerKeyValue = it2.key();
3137 TQT_DBusData dataValue = it2.data();
3138 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3139 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
3140 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3141 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
3142 TQT_DBusTQStringDataMap::const_iterator it3;
3143 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
3144 TQString keyValue = it3.key();
3145 TQT_DBusData dataValue = it3.data();
3146 if (dataValue.type() != TQT_DBusData::Variant) {
3147 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3148 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
3149 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3153 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
3154 TQT_DBusData dataValue2 = dataValueVariant.value;
3155 if (dataValue2.type() != TQT_DBusData::Variant) {
3156 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3157 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);
3158 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3160 if (outerKeyValue.lower() ==
"802-1x") {
3161 if (keyValue.lower() ==
"password") {
3162 connection->eapConfig.password = dataValue2.toString();
3164 else if (keyValue.lower() ==
"password-raw") {
3165 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
3166 TQT_DBusDataValueList::const_iterator it4;
3168 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
3169 TQT_DBusData innerDataValue = *it4;
3171 connection->eapConfig.binaryPassword.resize(count+1);
3172 connection->eapConfig.binaryPassword[count] = innerDataValue.toByte();
3175 else if (keyValue.lower() ==
"private-key-password") {
3176 connection->eapConfig.privateKeyPassword = dataValue2.toString();
3178 else if (keyValue.lower() ==
"phase2-private-key-password") {
3179 connection->eapConfig.phase2PrivateKeyPassword = dataValue2.toString();
3181 connection->eapConfig.secretsValid =
true;
3183 if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
3184 if (keyValue.lower() ==
"wep-key0") {
3185 wiFiConnection->securitySettings.wepKey0 = dataValue2.toString();
3186 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey0);
3188 else if (keyValue.lower() ==
"wep-key1") {
3189 wiFiConnection->securitySettings.wepKey1 = dataValue2.toString();
3190 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey1);
3192 else if (keyValue.lower() ==
"wep-key2") {
3193 wiFiConnection->securitySettings.wepKey2 = dataValue2.toString();
3194 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey2);
3196 else if (keyValue.lower() ==
"wep-key3") {
3197 wiFiConnection->securitySettings.wepKey3 = dataValue2.toString();
3198 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey3);
3200 else if (keyValue.lower() ==
"psk") {
3201 wiFiConnection->securitySettings.psk = dataValue2.toString();
3203 else if (keyValue.lower() ==
"eap-password") {
3204 wiFiConnection->securitySettings.leapPassword = dataValue2.toString();
3207 if ((outerKeyValue.lower() ==
"vpn") && (vpnConnection)) {
3208 if (keyValue.lower() ==
"secrets") {
3209 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
3210 TQT_DBusTQStringDataMap::const_iterator it4;
3211 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
3212 vpnConnection->pluginSecrets.clear();
3213 TQString keyValue4 = it4.key();
3214 TQT_DBusData dataValue4 = it4.data();
3215 if (dataValue4.type() == TQT_DBusData::String) {
3216 vpnConnection->pluginSecrets[keyValue4] = dataValue4.toString();
3219 vpnConnection->secretsValid =
true;
3222 if (outerKeyValue.lower() ==
"pppoe") {
3223 if (keyValue.lower() ==
"password") {
3224 connection->pppoeConfig.password = dataValue2.toString();
3226 connection->pppoeConfig.secretsValid =
true;
3228 if (outerKeyValue.lower() ==
"cdma") {
3229 if (keyValue.lower() ==
"password") {
3230 modemConnection->cdmaConfig.password = dataValue2.toString();
3232 modemConnection->cdmaConfig.secretsValid =
true;
3234 if (outerKeyValue.lower() ==
"gsm") {
3235 if (keyValue.lower() ==
"password") {
3236 modemConnection->gsmConfig.password = dataValue2.toString();
3238 else if (keyValue.lower() ==
"pin") {
3239 modemConnection->gsmConfig.pin = dataValue2.toString();
3241 modemConnection->gsmConfig.secretsValid =
true;
3250 PRINT_ERROR(TQString(
"Unable to load secrets for connection with uuid '%1'").arg(uuid))
3255 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
3260 bool TDENetworkConnectionManager_BackendNM::saveConnection(TDENetworkConnection* connection) {
3261 bool timed_out = FALSE;
3262 bool command_failed = FALSE;
3265 PRINT_ERROR(TQString(
"connection cannot be NULL!"));
3270 if (connection->UUID ==
"") {
3271 bool unique =
false;
3273 connection->UUID = TQUuid::createUuid().toString();
3274 connection->UUID.replace(
"{",
"");
3275 connection->UUID.replace(
"}",
"");
3276 if (!findConnectionByUUID(connection->UUID)) {
3284 TDEWiredEthernetConnection* ethernetConnection =
dynamic_cast<TDEWiredEthernetConnection*
>(connection);
3285 TDEWiredInfinibandConnection* infinibandConnection =
dynamic_cast<TDEWiredInfinibandConnection*
>(connection);
3286 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3287 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3288 TDEWiMaxConnection* wiMaxConnection =
dynamic_cast<TDEWiMaxConnection*
>(connection);
3289 TDEVLANConnection* vlanConnection =
dynamic_cast<TDEVLANConnection*
>(connection);
3290 TDEOLPCMeshConnection* olpcMeshConnection =
dynamic_cast<TDEOLPCMeshConnection*
>(connection);
3291 TDEBluetoothConnection* bluetoothConnection =
dynamic_cast<TDEBluetoothConnection*
>(connection);
3292 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3293 TQT_DBusObjectPath existingConnection;
3294 TQT_DBusError error;
3297 TQT_DBusTQStringDataMap connectionSettingsMap(TQT_DBusData::String);
3299 ret = d->m_networkManagerSettings->GetConnectionByUuid(connection->UUID, existingConnection, error);
3301 #ifndef USE_ASYNC_DBUS_CALLS
3303 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3304 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3305 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
3306 if (ret && error.isValid()) {
3308 PRINT_ERROR((error.name() +
": " + error.message()))
3311 #else // USE_ASYNC_DBUS_CALLS
3313 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3314 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3315 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3317 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
3318 if (ret && error.isValid()) {
3320 PRINT_ERROR((error.name() +
": " + error.message()))
3324 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3325 TQTimer nmCallTimeoutTimer;
3326 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
3327 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3328 tqApp->processEvents();
3329 if (!nmCallTimeoutTimer.isActive()) {
3330 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3335 connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3336 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3337 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3338 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3340 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3341 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3342 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3344 #endif // USE_ASYNC_DBUS_CALLS
3352 TQT_DBusData dbusData;
3353 TQT_DBusData innerDbusData;
3354 TQMap<TQString, TQT_DBusData> outerMap = connectionSettingsMap.toTQMap();
3357 dbusData = outerMap[
"connection"];
3359 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3361 settingsMap[
"id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->friendlyName));
3364 if (ethernetConnection) type =
"802-3-ethernet";
3365 else if (infinibandConnection) type =
"infiniband";
3366 else if (wiFiConnection) type =
"802-11-wireless";
3367 else if (vpnConnection) type =
"vpn";
3368 else if (wiMaxConnection) type =
"wimax";
3369 else if (vlanConnection) type =
"vlan";
3370 else if (olpcMeshConnection) type =
"802-11-olpc-mesh";
3371 else if (bluetoothConnection) type =
"bluetooth";
3372 else if (modemConnection) {
3373 if (modemConnection->type == TDEModemConnectionType::CDMA) {
3376 else if (modemConnection->type == TDEModemConnectionType::GSM) {
3380 if (!type.isNull()) settingsMap[
"type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(type));
3382 settingsMap[
"uuid"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->UUID));
3384 TQT_DBusDataValueList valueList;
3386 for (TQStringList::Iterator it = connection->authorizedUsers.begin(); it != connection->authorizedUsers.end(); ++it) {
3387 TQString assembledString = TQString(
"user:%1:").arg(*it);
3388 valueList.append(TQT_DBusData::fromString(assembledString));
3391 if (valueList.count() > 0) settingsMap[
"permissions"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3392 else settingsMap.remove(
"permissions");
3394 settingsMap[
"autoconnect"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->autoConnect));
3395 settingsMap[
"read-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->readOnly));
3396 UPDATE_STRING_SETTING_IF_VALID(connection->masterConnectionUUID,
"master", settingsMap)
3398 TQString slaveType = tdeSlaveTypeToNMSlaveType(connection->slaveType);
3399 if (slaveType !=
"") settingsMap[
"slave-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(slaveType));
3400 else settingsMap.remove(
"slave-type");
3404 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3405 groupValid = (settingsMap.count() > 0);
3407 if (groupValid) outerMap.insert(
"connection", dbusData, TRUE);
else outerMap.remove(
"connection");
3410 dbusData = outerMap[
"802-1x"];
3412 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3414 if (connection->eapConfig.valid) {
3415 TQT_DBusDataValueList valueList;
3419 valueList.append(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.type)));
3421 settingsMap[
"eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3424 settingsMap.remove(
"eap");
3426 if (connection->eapConfig.valid) {
3427 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.userName,
"identity", settingsMap)
3428 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.anonymousUserName, "anonymous-identity", settingsMap)
3429 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.pacFileName, "pac-file", settingsMap)
3432 settingsMap.remove(
"identity");
3433 settingsMap.remove(
"anonymous-identity");
3434 settingsMap.remove(
"pac-file");
3436 if (connection->eapConfig.valid) {
3437 TQT_DBusDataValueList valueList;
3440 for (count=0; count<connection->eapConfig.caCertificate.count(); count++) {
3441 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.caCertificate[count]));
3444 if (valueList.count() > 0) settingsMap[
"ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3445 else settingsMap.remove(
"ca-cert");
3448 settingsMap.remove(
"ca-cert");
3450 if (connection->eapConfig.valid) {
3451 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.additionalCAFilesPath,
"ca-path", settingsMap)
3452 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.authServerCertSubjectMatch, "subject-match", settingsMap)
3455 settingsMap.remove(
"ca-path");
3456 settingsMap.remove(
"subject-match");
3458 if (connection->eapConfig.valid) {
3459 TQT_DBusDataValueList valueList;
3461 for (TQStringList::Iterator it = connection->eapConfig.alternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.alternateAuthServerCertSubjectMatch.end(); ++it) {
3462 valueList.append(TQT_DBusData::fromString(*it));
3465 if (valueList.count() > 0) settingsMap[
"altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3466 else settingsMap.remove(
"altsubject-matches");
3469 settingsMap.remove(
"altsubject-matches");
3471 if (connection->eapConfig.valid) {
3472 TQT_DBusDataValueList valueList;
3475 for (count=0; count<connection->eapConfig.clientCertificate.count(); count++) {
3476 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.clientCertificate[count]));
3479 if (valueList.count() > 0) settingsMap[
"client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3480 else settingsMap.remove(
"client-cert");
3483 settingsMap.remove(
"client-cert");
3485 if (connection->eapConfig.valid) {
3486 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPVersion,
"phase1-peapver", settingsMap)
3487 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPLabel, "phase1-peaplabel", settingsMap)
3488 UPDATE_STRING_SETTING_IF_VALID(tdeEAPFastFlagsToNMEAPFastFlags(connection->eapConfig.fastProvisioningFlags), "phase1-fast-provisioning", settingsMap)
3491 settingsMap.remove(
"phase1-peapver");
3492 settingsMap.remove(
"phase1-peaplabel");
3493 settingsMap.remove(
"phase1-fast-provisioning");
3495 if (connection->eapConfig.valid) {
3496 settingsMap[
"phase2-auth"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2NonEAPAuthMethod)));
3497 settingsMap[
"phase2-autheap"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2EAPAuthMethod)));
3500 settingsMap.remove(
"phase2-auth");
3501 settingsMap.remove(
"phase2-autheap");
3503 if (connection->eapConfig.valid) {
3504 TQT_DBusDataValueList valueList;
3507 for (count=0; count<connection->eapConfig.phase2CaCertificate.count(); count++) {
3508 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2CaCertificate[count]));
3511 if (valueList.count() > 0) settingsMap[
"phase2-ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3512 else settingsMap.remove(
"phase2-ca-cert");
3515 settingsMap.remove(
"phase2-ca-cert");
3517 if (connection->eapConfig.valid) {
3518 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2CaFilesPath,
"phase2-ca-path", settingsMap)
3519 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2AuthServerCertSubjectMatch, "phase2-subject-match", settingsMap)
3522 settingsMap.remove(
"phase2-ca-path");
3523 settingsMap.remove(
"phase2-subject-match");
3525 if (connection->eapConfig.valid) {
3526 TQT_DBusDataValueList valueList;
3528 for (TQStringList::Iterator it = connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.end(); ++it) {
3529 valueList.append(TQT_DBusData::fromString(*it));
3532 if (valueList.count() > 0) settingsMap[
"phase2-altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3533 else settingsMap.remove(
"phase2-altsubject-matches");
3536 settingsMap.remove(
"phase2-altsubject-matches");
3538 if (connection->eapConfig.valid) {
3539 TQT_DBusDataValueList valueList;
3542 for (count=0; count<connection->eapConfig.phase2ClientCertificate.count(); count++) {
3543 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2ClientCertificate[count]));
3546 if (valueList.count() > 0) settingsMap[
"phase2-client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3547 else settingsMap.remove(
"phase2-client-cert");
3550 settingsMap.remove(
"phase2-client-cert");
3552 if (connection->eapConfig.valid) {
3553 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.passwordFlags)));
3554 settingsMap[
"password-raw-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.binaryPasswordFlags)));
3557 settingsMap.remove(
"password-flags");
3558 settingsMap.remove(
"password-raw-flags");
3560 if (connection->eapConfig.valid) {
3561 TQT_DBusDataValueList valueList;
3564 for (count=0; count<connection->eapConfig.privateKey.count(); count++) {
3565 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.privateKey[count]));
3568 if (valueList.count() > 0) settingsMap[
"private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3569 else settingsMap.remove(
"private-key");
3572 settingsMap.remove(
"private-key");
3574 if (connection->eapConfig.valid) {
3575 settingsMap[
"private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.privateKeyPasswordFlags)));
3578 settingsMap.remove(
"private-key-password-flags");
3580 if (connection->eapConfig.valid) {
3581 TQT_DBusDataValueList valueList;
3584 for (count=0; count<connection->eapConfig.phase2PrivateKey.count(); count++) {
3585 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2PrivateKey[count]));
3588 if (valueList.count() > 0) settingsMap[
"phase2-private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3589 else settingsMap.remove(
"phase2-private-key");
3592 settingsMap.remove(
"phase2-private-key");
3594 if (connection->eapConfig.valid) {
3595 settingsMap[
"phase2-private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.phase2PrivateKeyPasswordFlags)));
3598 settingsMap.remove(
"phase2-private-key-password-flags");
3600 if (connection->eapConfig.valid) {
3601 settingsMap[
"system-ca-certs"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->eapConfig.forceSystemCaCertificates));
3604 settingsMap.remove(
"system-ca-certs");
3606 if (connection->eapConfig.secretsValid) {
3607 settingsMap[
"password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.password));
3610 settingsMap.remove(
"password");
3612 if (connection->eapConfig.valid) {
3613 TQT_DBusDataValueList valueList;
3616 for (count=0; count<connection->eapConfig.binaryPassword.count(); count++) {
3617 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.binaryPassword[count]));
3620 if (valueList.count() > 0) settingsMap[
"password-raw"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3621 else settingsMap.remove(
"password-raw");
3624 settingsMap.remove(
"password-raw");
3626 if (connection->eapConfig.secretsValid) {
3627 settingsMap[
"private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.privateKeyPassword));
3628 settingsMap[
"phase2-private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.phase2PrivateKeyPassword));
3631 settingsMap.remove(
"private-key-password");
3632 settingsMap.remove(
"phase2-private-key-password");
3635 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3636 groupValid = (settingsMap.count() > 0);
3638 if (groupValid) outerMap.insert(
"802-1x", dbusData, TRUE);
else outerMap.remove(
"802-1x");
3641 dbusData = outerMap[
"802-3-ethernet"];
3642 if (ethernetConnection) {
3643 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3645 settingsMap[
"duplex"] = convertDBUSDataToVariantData(TQT_DBusData::fromString((connection->fullDuplex)?
"full":
"half"));
3646 if (connection->lockedHWAddress.isValid()) {
3647 TDENetworkByteList address = connection->lockedHWAddress.address();
3648 TQT_DBusDataValueList valueList;
3649 TDENetworkByteList::iterator it;
3650 for (it = address.begin(); it != address.end(); ++it) {
3651 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3652 valueList.append(innerDataValue);
3654 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3655 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3658 settingsMap.remove(
"mac-address");
3660 if (connection->manualHWAddress.isValid()) {
3661 TDENetworkByteList address = connection->manualHWAddress.address();
3662 TQT_DBusDataValueList valueList;
3663 TDENetworkByteList::iterator it;
3664 for (it = address.begin(); it != address.end(); ++it) {
3665 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3666 valueList.append(innerDataValue);
3668 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3669 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3672 settingsMap.remove(
"cloned-mac-address");
3674 if (connection->mtu > 0) {
3675 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3678 settingsMap.remove(
"mtu");
3681 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3682 groupValid = (settingsMap.count() > 0);
3684 if (groupValid) outerMap.insert(
"802-3-ethernet", dbusData, TRUE);
else outerMap.remove(
"802-3-ethernet");
3687 dbusData = outerMap[
"infiniband"];
3688 if (infinibandConnection) {
3689 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3691 if (connection->lockedHWAddress.isValid()) {
3692 TDENetworkByteList address = connection->lockedHWAddress.address();
3693 TQT_DBusDataValueList valueList;
3694 TDENetworkByteList::iterator it;
3695 for (it = address.begin(); it != address.end(); ++it) {
3696 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3697 valueList.append(innerDataValue);
3699 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3700 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3703 settingsMap.remove(
"mac-address");
3705 if (connection->mtu > 0) {
3706 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3709 settingsMap.remove(
"mtu");
3711 UPDATE_STRING_SETTING_IF_VALID(tdeIBTransportToNMIBTransport(infinibandConnection->transportMode),
"transport-mode", settingsMap)
3713 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3714 groupValid = (settingsMap.count() > 0);
3716 if (groupValid) outerMap.insert(
"infiniband", dbusData, TRUE);
else outerMap.remove(
"infiniband");
3719 dbusData = outerMap[
"802-11-wireless"];
3720 if (wiFiConnection) {
3721 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3725 TQT_DBusDataValueList valueList;
3726 for (i=0; i<wiFiConnection->SSID.count(); i++) {
3727 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(wiFiConnection->SSID[i]);
3728 valueList.append(innerDataValue);
3730 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3732 if (connection->lockedHWAddress.isValid()) {
3733 TDENetworkByteList address = connection->lockedHWAddress.address();
3734 TQT_DBusDataValueList valueList;
3735 TDENetworkByteList::iterator it;
3736 for (it = address.begin(); it != address.end(); ++it) {
3737 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3738 valueList.append(innerDataValue);
3740 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3741 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3744 settingsMap.remove(
"mac-address");
3746 if (connection->manualHWAddress.isValid()) {
3747 TDENetworkByteList address = connection->manualHWAddress.address();
3748 TQT_DBusDataValueList valueList;
3749 TDENetworkByteList::iterator it;
3750 for (it = address.begin(); it != address.end(); ++it) {
3751 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3752 valueList.append(innerDataValue);
3754 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3755 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3758 settingsMap.remove(
"cloned-mac-address");
3760 if (connection->mtu > 0) {
3761 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3764 settingsMap.remove(
"mtu");
3766 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiModeToNMWiFiMode(wiFiConnection->operatingMode),
"mode", settingsMap)
3767 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiFrequencyBandToNMWiFiFrequencyBand(wiFiConnection->bandRestriction), "band", settingsMap)
3768 if (wiFiConnection->channelRestriction > 0) {
3769 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->channelRestriction));
3772 settingsMap.remove(
"channel");
3774 if (wiFiConnection->bitRateRestriction > 0) {
3775 settingsMap[
"rate"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->bitRateRestriction/1000));
3778 settingsMap.remove(
"rate");
3780 if (wiFiConnection->powerRestriction > 0) {
3781 settingsMap[
"tx-power"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->powerRestriction));
3784 settingsMap.remove(
"tx-power");
3786 if (wiFiConnection->accessPointRestriction.isValid()) {
3787 TDENetworkByteList address = wiFiConnection->accessPointRestriction.address();
3788 TQT_DBusDataValueList valueList;
3789 TDENetworkByteList::iterator it;
3790 for (it = address.begin(); it != address.end(); ++it) {
3791 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3792 valueList.append(innerDataValue);
3794 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3795 settingsMap[
"bssid"] = convertDBUSDataToVariantData(nmHWAddress);
3798 settingsMap.remove(
"bssid");
3801 TQT_DBusDataValueList valueList;
3802 TDEMACAddressList::iterator it;
3803 for (it = wiFiConnection->blacklistedBSSIDs.begin(); it != wiFiConnection->blacklistedBSSIDs.end(); ++it) {
3804 valueList.append(TQT_DBusData::fromString((*it).toString()));
3806 if (valueList.count() > 0) settingsMap[
"mac-address-blacklist"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3809 TQT_DBusDataValueList valueList;
3810 TDEMACAddressList::iterator it;
3811 for (it = wiFiConnection->heardBSSIDs.begin(); it != wiFiConnection->heardBSSIDs.end(); ++it) {
3812 valueList.append(TQT_DBusData::fromString((*it).toString()));
3814 if (valueList.count() > 0) settingsMap[
"seen-bssids"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3817 if (wiFiConnection->securityRequired) {
3818 settingsMap[
"security"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(
"802-11-wireless-security"));
3821 settingsMap.remove(
"security");
3825 if (wiFiConnection->isHiddenNetwork) {
3826 settingsMap[
"hidden"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(
true));
3829 settingsMap.remove(
"hidden");
3833 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3834 groupValid = (settingsMap.count() > 0);
3836 if (groupValid) outerMap.insert(
"802-11-wireless", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless");
3839 dbusData = outerMap[
"802-11-wireless-security"];
3840 if (wiFiConnection) {
3841 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3843 if (wiFiConnection->securityRequired) {
3844 if (wiFiConnection->securityRequired) {
3845 settingsMap[
"key-mgmt"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeWiFiKeyTypeToNMWiFiKeyType(wiFiConnection->securitySettings.keyType)));
3847 if (wiFiConnection->securitySettings.wepKeyIndex > 0) {
3848 settingsMap[
"wep-tx-keyidx"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->securitySettings.wepKeyIndex));
3851 settingsMap.remove(
"wep-tx-keyidx");
3853 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiAuthTypeToNMWiFiAuthType(wiFiConnection->securitySettings.authType),
"auth-alg", settingsMap)
3855 TQT_DBusDataValueList valueList;
3857 TQStringList strings = tdeWiFiWPAVersionToNMWiFiWPAVersion(wiFiConnection->securitySettings.wpaVersion);
3858 for (TQStringList::Iterator it = strings.begin(); it != strings.end(); ++it) {
3859 valueList.append(TQT_DBusData::fromString(*it));
3862 if (valueList.count() > 0) settingsMap[
"proto"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3863 else settingsMap.remove(
"proto");
3866 TQT_DBusDataValueList valueList;
3868 if (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3869 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3870 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3871 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3872 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3874 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedPairWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedPairWiseCiphers.end(); ++it) {
3875 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3878 if (valueList.count() > 0) settingsMap[
"pairwise"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3879 else settingsMap.remove(
"pairwise");
3882 TQT_DBusDataValueList valueList;
3884 if (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3885 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3886 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3887 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3888 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3890 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedGroupWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedGroupWiseCiphers.end(); ++it) {
3891 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3894 if (valueList.count() > 0) settingsMap[
"group"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3895 else settingsMap.remove(
"group");
3897 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapUsername,
"leap-username", settingsMap)
3898 settingsMap["wep-key-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.wepKeyFlags)));
3899 settingsMap["wep-key-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType)));
3900 settingsMap["psk-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.pskFlags)));
3901 settingsMap["leap-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.leapPasswordFlags)));
3902 if (wiFiConnection->securitySettings.secretsValid) {
3903 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey0,
"wep-key0", settingsMap)
3904 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey1, "wep-key1", settingsMap)
3905 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey2, "wep-key2", settingsMap)
3906 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey3, "wep-key3", settingsMap)
3907 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.psk, "psk", settingsMap)
3908 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapPassword, "leap-password", settingsMap)
3911 settingsMap.remove(
"wep-key0");
3912 settingsMap.remove(
"wep-key1");
3913 settingsMap.remove(
"wep-key2");
3914 settingsMap.remove(
"wep-key3");
3915 settingsMap.remove(
"psk");
3916 settingsMap.remove(
"leap-password");
3920 settingsMap.remove(
"key-mgmt");
3921 settingsMap.remove(
"wep-tx-keyidx");
3922 settingsMap.remove(
"auth-alg");
3923 settingsMap.remove(
"proto");
3924 settingsMap.remove(
"pairwise");
3925 settingsMap.remove(
"group");
3926 settingsMap.remove(
"leap-username");
3927 settingsMap.remove(
"wep-key-flags");
3928 settingsMap.remove(
"wep-key-type");
3929 settingsMap.remove(
"psk-flags");
3930 settingsMap.remove(
"leap-password-flags");
3931 settingsMap.remove(
"wep-key0");
3932 settingsMap.remove(
"wep-key1");
3933 settingsMap.remove(
"wep-key2");
3934 settingsMap.remove(
"wep-key3");
3935 settingsMap.remove(
"psk");
3936 settingsMap.remove(
"leap-password");
3939 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3940 groupValid = (settingsMap.count() > 0);
3942 if (groupValid) outerMap.insert(
"802-11-wireless-security", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless-security");
3945 dbusData = outerMap[
"vpn"];
3946 if (vpnConnection) {
3947 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3950 TQString pluginService = vpnConnection->vpnPluginID;
3951 if (pluginService !=
"") {
3952 pluginService =
"org.freedesktop.NetworkManager." + pluginService;
3954 UPDATE_STRING_SETTING_IF_VALID(pluginService,
"service-type", settingsMap)
3956 UPDATE_STRING_SETTING_IF_VALID(vpnConnection->lockedUserName,
"user-name", settingsMap)
3958 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3959 TDENetworkSettingsMap::const_iterator it;
3960 for (it = vpnConnection->pluginData.begin(); it != vpnConnection->pluginData.end(); ++it) {
3961 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3963 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"data"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
3964 else settingsMap.remove(
"data");
3966 if (vpnConnection->secretsValid) {
3967 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3968 TDENetworkSettingsMap::const_iterator it;
3969 for (it = vpnConnection->pluginSecrets.begin(); it != vpnConnection->pluginSecrets.end(); ++it) {
3970 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3972 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"secrets"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
3973 else settingsMap.remove(
"secrets");
3976 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3977 groupValid = (settingsMap.count() > 0);
3979 if (groupValid) outerMap.insert(
"vpn", dbusData, TRUE);
else outerMap.remove(
"vpn");
3982 dbusData = outerMap[
"wimax"];
3983 if (wiMaxConnection) {
3984 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3986 if (connection->lockedHWAddress.isValid()) {
3987 TDENetworkByteList address = connection->lockedHWAddress.address();
3988 TQT_DBusDataValueList valueList;
3989 TDENetworkByteList::iterator it;
3990 for (it = address.begin(); it != address.end(); ++it) {
3991 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3992 valueList.append(innerDataValue);
3994 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3995 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3998 settingsMap.remove(
"mac-address");
4000 UPDATE_STRING_SETTING_IF_VALID(wiMaxConnection->networkServiceProvider,
"network-name", settingsMap)
4002 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4003 groupValid = (settingsMap.count() > 0);
4005 if (groupValid) outerMap.insert(
"wimax", dbusData, TRUE);
else outerMap.remove(
"wimax");
4008 dbusData = outerMap[
"vlan"];
4009 if (vlanConnection) {
4010 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4012 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->kernelName,
"interface-name", settingsMap)
4013 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->parentConnectionUUID, "parent", settingsMap)
4014 settingsMap["
id"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(vlanConnection->vlanID));
4015 settingsMap["flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeVLANFlagsToNMVLANFlags(vlanConnection->vlanFlags)));
4017 TQT_DBusDataValueList valueList;
4018 TDENetworkPriorityMap::const_iterator it;
4019 for (it = vlanConnection->ingressPriorityMap.begin(); it != vlanConnection->ingressPriorityMap.end(); ++it) {
4020 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4022 if (valueList.count() > 0) settingsMap[
"ingress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4025 TQT_DBusDataValueList valueList;
4026 TDENetworkPriorityMap::const_iterator it;
4027 for (it = vlanConnection->egressPriorityMap.begin(); it != vlanConnection->egressPriorityMap.end(); ++it) {
4028 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4030 if (valueList.count() > 0) settingsMap[
"egress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4033 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4034 groupValid = (settingsMap.count() > 0);
4036 if (groupValid) outerMap.insert(
"vlan", dbusData, TRUE);
else outerMap.remove(
"vlan");
4039 dbusData = outerMap[
"serial"];
4040 if (connection->serialConfig.valid) {
4041 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4043 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.baudRate));
4044 settingsMap[
"bits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.byteWidth));
4045 settingsMap[
"parity"] = convertDBUSDataToVariantData(TQT_DBusData::fromByte(tdeParityToNMParity(connection->serialConfig.parity)));
4046 settingsMap[
"stopbits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.stopBits));
4047 settingsMap[
"send-delay"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt64(connection->serialConfig.txDelay));
4049 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4050 groupValid = (settingsMap.count() > 0);
4052 if (groupValid) outerMap.insert(
"serial", dbusData, TRUE);
else outerMap.remove(
"serial");
4055 dbusData = outerMap[
"ppp"];
4056 if (connection->pppConfig.valid) {
4057 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4059 settingsMap[
"noauth"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.requireServerAuthentication)));
4060 settingsMap[
"refuse-eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableEAP));
4061 settingsMap[
"refuse-pap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisablePAP));
4062 settingsMap[
"refuse-chap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableCHAP));
4063 settingsMap[
"refuse-mschap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAP));
4064 settingsMap[
"refuse-mschapv2"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAPv2));
4065 settingsMap[
"nobsdcomp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowBSDCompression)));
4066 settingsMap[
"nodeflate"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowDeflateCompression)));
4067 settingsMap[
"no-vj-comp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowVJCompression)));
4068 settingsMap[
"require-mppe"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE));
4069 settingsMap[
"require-mppe-128"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE128));
4070 settingsMap[
"mppe-stateful"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::StatefulMPPE));
4071 settingsMap[
"crtscts"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::UseHardwareFlowControl));
4072 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.baudRate));
4073 if (connection->pppConfig.mru > 0) {
4074 settingsMap[
"mru"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mru));
4077 settingsMap.remove(
"mru");
4079 if (connection->pppConfig.mtu > 0) {
4080 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mtu));
4083 settingsMap.remove(
"mtu");
4085 if (connection->pppConfig.mtu > 0) {
4086 settingsMap[
"lcp-echo-interval"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoPingInterval));
4089 settingsMap.remove(
"lcp-echo-interval");
4091 if (connection->pppConfig.mtu > 0) {
4092 settingsMap[
"lcp-echo-failure"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoFailureThreshold));
4095 settingsMap.remove(
"lcp-echo-failure");
4098 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4099 groupValid = (settingsMap.count() > 0);
4101 if (groupValid) outerMap.insert(
"ppp", dbusData, TRUE);
else outerMap.remove(
"ppp");
4104 dbusData = outerMap[
"pppoe"];
4105 if (connection->pppoeConfig.valid) {
4106 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4108 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.networkServiceProvider,
"service", settingsMap)
4109 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.username, "username", settingsMap)
4110 if (connection->pppoeConfig.secretsValid) {
4111 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.password,
"password", settingsMap)
4113 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->pppoeConfig.passwordFlags)));
4115 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4116 groupValid = (settingsMap.count() > 0);
4118 if (groupValid) outerMap.insert(
"pppoe", dbusData, TRUE);
else outerMap.remove(
"pppoe");
4121 dbusData = outerMap[
"802-11-olpc-mesh"];
4122 if (olpcMeshConnection) {
4123 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4127 TQT_DBusDataValueList valueList;
4128 for (i=0; i<olpcMeshConnection->SSID.count(); i++) {
4129 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->SSID[i]);
4130 valueList.append(innerDataValue);
4132 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4134 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(olpcMeshConnection->channel));
4137 TQT_DBusDataValueList valueList;
4138 for (i=0; i<olpcMeshConnection->anycastDHCPHWAddress.count(); i++) {
4139 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->anycastDHCPHWAddress[i]);
4140 valueList.append(innerDataValue);
4142 settingsMap[
"dhcp-anycast-address"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4145 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4146 groupValid = (settingsMap.count() > 0);
4148 if (groupValid) outerMap.insert(
"802-11-olpc-mesh", dbusData, TRUE);
else outerMap.remove(
"802-11-olpc-mesh");
4151 dbusData = outerMap[
"bluetooth"];
4152 if (bluetoothConnection) {
4153 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4155 if (connection->lockedHWAddress.isValid()) {
4156 TDENetworkByteList address = connection->lockedHWAddress.address();
4157 TQT_DBusDataValueList valueList;
4158 TDENetworkByteList::iterator it;
4159 for (it = address.begin(); it != address.end(); ++it) {
4160 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
4161 valueList.append(innerDataValue);
4163 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
4164 settingsMap[
"bdaddr"] = convertDBUSDataToVariantData(nmHWAddress);
4167 settingsMap.remove(
"bdaddr");
4169 UPDATE_STRING_SETTING_IF_VALID(tdeBluetoothModeToNMBluetoothMode(bluetoothConnection->type),
"type", settingsMap)
4171 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4172 groupValid = (settingsMap.count() > 0);
4174 if (groupValid) outerMap.insert(
"bluetooth", dbusData, TRUE);
else outerMap.remove(
"bluetooth");
4177 dbusData = outerMap[
"cdma"];
4178 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::CDMA)) {
4179 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4181 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.providerDataNumber,
"number", settingsMap)
4182 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.username, "username", settingsMap)
4183 if (connection->pppoeConfig.secretsValid) {
4184 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.password,
"password", settingsMap)
4186 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->cdmaConfig.passwordFlags)));
4188 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4189 groupValid = (settingsMap.count() > 0);
4191 if (groupValid) outerMap.insert(
"cdma", dbusData, TRUE);
else outerMap.remove(
"cdma");
4194 dbusData = outerMap[
"gsm"];
4195 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::GSM)) {
4196 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4198 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.providerDataNumber,
"number", settingsMap)
4199 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.username, "username", settingsMap)
4200 if (connection->pppoeConfig.secretsValid) {
4201 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.password,
"password", settingsMap)
4203 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.passwordFlags)));
4204 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.accessPointName,
"apn", settingsMap)
4205 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.networkID, "network-
id", settingsMap)
4206 settingsMap["network-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromInt32(tdeGSMModeToNMGSMMode(modemConnection->gsmConfig.networkType)));
4207 if (connection->pppoeConfig.secretsValid) {
4208 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.pin,
"pin", settingsMap)
4210 settingsMap[
"pin-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.pinFlags)));
4211 settingsMap[
"allowed-bands"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(modemConnection->gsmConfig.allowedFrequencyBands));
4212 settingsMap[
"home-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(modemConnection->gsmConfig.allowRoaming)));
4214 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4215 groupValid = (settingsMap.count() > 0);
4217 if (groupValid) outerMap.insert(
"gsm", dbusData, TRUE);
else outerMap.remove(
"gsm");
4220 dbusData = outerMap[
"ipv4"];
4222 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4225 TQT_DBusDataValueList valueList;
4226 TDENetworkSingleIPConfigurationList::iterator it;
4227 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4228 if ((*it).isIPv4()) {
4229 TQT_DBusDataValueList innerValueList;
4232 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4234 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4236 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4237 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4240 if (valueList.count() <= 0) {
4242 TQT_DBusData valueList;
4243 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4244 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4247 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4251 if (!connection->ipConfig.dhcpClientIdentifier.isNull()) {
4252 settingsMap[
"dhcp-client-id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->ipConfig.dhcpClientIdentifier));
4256 TQT_DBusDataValueList valueList;
4257 TDENetworkAddressList::iterator it;
4258 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4259 if ((*it).isIPv4Address()) {
4260 valueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).toIPv4Address())));
4263 if (valueList.count() <= 0) {
4265 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32)));
4268 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4272 TQT_DBusDataValueList valueList;
4273 TDENetworkSearchDomainList::iterator it;
4274 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4275 if ((*it).isIPv4()) {
4276 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4279 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4282 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4285 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV4));
4289 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP) {
4292 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4LocalOnly) {
4293 method =
"link-local";
4295 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer) {
4298 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4Disabled) {
4299 method =
"disabled";
4304 if (!method.isNull())
4305 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4308 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPRoutes)));
4311 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute)));
4314 TQT_DBusDataValueList valueList;
4315 TDENetworkSingleRouteConfigurationList::iterator it;
4316 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4317 if ((*it).isIPv4()) {
4318 TQT_DBusDataValueList innerValueList;
4321 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4323 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4325 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4327 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4328 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4331 if (valueList.count() <= 0) {
4333 TQT_DBusData valueList;
4334 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4335 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4338 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4342 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4343 groupValid = (settingsMap.count() > 0);
4345 if (groupValid) outerMap.insert(
"ipv4", dbusData, TRUE);
else outerMap.remove(
"ipv4");
4348 dbusData = outerMap[
"ipv6"];
4350 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4353 TQT_DBusDataValueList valueList;
4354 TDENetworkSingleIPConfigurationList::iterator it;
4355 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4356 if ((*it).isIPv6()) {
4358 Q_IPV6ADDR v6address;
4359 TQT_DBusDataValueList innerValueList;
4360 TQT_DBusDataValueList innerMostValueList;
4363 innerMostValueList.clear();
4364 v6address = (*it).ipAddress.toIPv6Address();
4365 for (i=0; i<16; i++) {
4366 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4368 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4370 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4372 innerMostValueList.clear();
4373 v6address = (*it).gateway.toIPv6Address();
4374 for (i=0; i<16; i++) {
4375 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4377 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4378 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4381 if (valueList.count() <= 0) {
4383 TQT_DBusDataValueList innerValueList;
4384 TQT_DBusDataValueList innerMostValueList;
4387 innerMostValueList.clear();
4388 innerMostValueList.append(TQT_DBusData::fromByte(0));
4389 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4391 innerValueList.append(TQT_DBusData::fromUInt32(0));
4393 innerMostValueList.clear();
4394 innerMostValueList.append(TQT_DBusData::fromByte(0));
4395 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4396 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4399 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4403 TQT_DBusDataValueList valueList;
4404 TDENetworkAddressList::iterator it;
4405 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4406 if ((*it).isIPv6Address()) {
4408 Q_IPV6ADDR v6address;
4409 TQT_DBusDataValueList innerValueList;
4410 v6address = (*it).toIPv6Address();
4411 for (i=0; i<16; i++) {
4412 innerValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4414 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4417 if (valueList.count() <= 0) {
4419 TQT_DBusData valueList;
4420 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::Byte));
4421 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4424 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4428 TQT_DBusDataValueList valueList;
4429 TDENetworkSearchDomainList::iterator it;
4430 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4431 if ((*it).isIPv6()) {
4432 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4435 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4438 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4441 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV6));
4445 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP) {
4448 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6LocalOnly) {
4449 method =
"link-local";
4451 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer) {
4454 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6Disabled) {
4460 if (!method.isNull())
4461 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4464 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPRoutes)));
4467 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute)));
4470 TQT_DBusDataValueList valueList;
4471 TDENetworkSingleRouteConfigurationList::iterator it;
4472 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4473 if ((*it).isIPv6()) {
4475 Q_IPV6ADDR v6address;
4476 TQT_DBusDataValueList innerValueList;
4477 TQT_DBusDataValueList innerMostValueList;
4480 innerMostValueList.clear();
4481 v6address = (*it).ipAddress.toIPv6Address();
4482 for (i=0; i<16; i++) {
4483 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4485 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4487 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4489 innerMostValueList.clear();
4490 v6address = (*it).gateway.toIPv6Address();
4491 for (i=0; i<16; i++) {
4492 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4494 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4496 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4497 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4500 if (valueList.count() <= 0) {
4502 TQT_DBusDataValueList innerValueList;
4503 TQT_DBusDataValueList innerMostValueList;
4506 innerMostValueList.clear();
4507 innerMostValueList.append(TQT_DBusData::fromByte(0));
4508 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4510 innerValueList.append(TQT_DBusData::fromUInt32(0));
4512 innerMostValueList.clear();
4513 innerMostValueList.append(TQT_DBusData::fromByte(0));
4514 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4516 innerValueList.append(TQT_DBusData::fromUInt32(0));
4517 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4520 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4524 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4525 groupValid = (settingsMap.count() > 0);
4527 if (groupValid) outerMap.insert(
"ipv6", dbusData, TRUE);
else outerMap.remove(
"ipv6");
4529 connectionSettingsMap = TQT_DBusDataMap<TQString>(outerMap);
4536 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4537 printf(
"[network-manager comm debug] uploaded DBUS object structure map follows:\n"); fflush(stdout);
4538 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
4539 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4542 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4543 printf(
"[network-manager comm debug] Updating existing connection\n"); fflush(stdout);
4544 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4546 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4547 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4548 connect(&connectionSettings, SIGNAL(UpdateAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4550 ret = connectionSettings.UpdateAsync(asyncCallID, connectionSettingsMap, error);
4551 if (ret && error.isValid()) {
4553 PRINT_ERROR((error.name() +
": " + error.message()))
4557 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4558 TQTimer nmCallTimeoutTimer;
4559 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4560 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4561 tqApp->processEvents();
4562 if (!nmCallTimeoutTimer.isActive()) {
4563 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4568 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4573 PRINT_ERROR((error.name() +
": " + error.message()))
4578 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4579 printf(
"[network-manager comm debug] Creating new connection\n"); fflush(stdout);
4580 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4582 connect(d->m_networkManagerSettings, SIGNAL(AddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4583 connect(d->m_networkManagerSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4585 ret = d->m_networkManagerSettings->AddConnectionAsync(asyncCallID, connectionSettingsMap, error);
4586 if (ret && error.isValid()) {
4588 PRINT_ERROR((error.name() +
": " + error.message()))
4592 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4593 TQTimer nmCallTimeoutTimer;
4594 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4595 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4596 if (!nmCallTimeoutTimer.isActive()) {
4597 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4601 tqApp->processEvents();
4603 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4604 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4605 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4607 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
4608 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4609 command_failed = true;
4611 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4612 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4613 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4615 return ((!timed_out) && (!command_failed));
4619 PRINT_ERROR((error.name() +
": " + error.message()))
4625 bool TDENetworkConnectionManager_BackendNM::deleteConnection(TQString uuid) {
4626 TQT_DBusObjectPath existingConnection;
4627 TQT_DBusError error;
4628 bool timed_out =
false;
4630 if (d->m_networkManagerSettings) {
4631 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4634 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4635 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4636 connect(&connectionSettings, SIGNAL(DeleteAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4638 ret = connectionSettings.DeleteAsync(asyncCallID, error);
4639 if (ret && error.isValid()) {
4641 PRINT_ERROR((error.name() +
": " + error.message()))
4645 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4646 TQTimer nmCallTimeoutTimer;
4647 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4648 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4649 tqApp->processEvents();
4650 if (!nmCallTimeoutTimer.isActive()) {
4651 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4656 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4660 PRINT_ERROR(TQString(
"Unable to remove connection with uuid '%1'").arg(uuid))
4665 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4670 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4675 bool TDENetworkConnectionManager_BackendNM::verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type, TDENetworkErrorStringMap* reason) {
4683 if (connection->friendlyName ==
"") {
4684 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidConnectionSetting] =
i18n(
"Connection name is invalid");
4685 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidConnectionSetting;
4689 if (connection->ipConfig.valid) {
4691 TDENetworkSingleIPConfigurationList::iterator it;
4692 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4693 if ((*it).isIPv4()) {
4694 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP)) {
4695 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4696 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv4Setting] =
i18n(
"IPv4 address is invalid");
4697 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv4Setting;
4702 else if ((*it).isIPv6()) {
4703 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP)) {
4704 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4705 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv6Setting] =
i18n(
"IPv6 address is invalid");
4706 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv6Setting;
4714 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
4715 if (wiFiConnection) {
4716 if (wiFiConnection->SSID.count() < 1) {
4717 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessSetting] =
i18n(
"No SSID provided");
4718 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessSetting;
4721 if (wiFiConnection->securityRequired) {
4722 if (wiFiConnection->securitySettings.secretsValid) {
4723 if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WEP) || ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && ((wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Open) || (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Shared)))) {
4724 if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Hexadecimal) {
4725 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4726 if ((wiFiConnection->securitySettings.wepKey0.length() != 10) && (wiFiConnection->securitySettings.wepKey0.length() != 26)) {
4727 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4728 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4732 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4733 if ((wiFiConnection->securitySettings.wepKey1.length() != 10) && (wiFiConnection->securitySettings.wepKey1.length() != 26)) {
4734 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4735 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4739 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4740 if ((wiFiConnection->securitySettings.wepKey2.length() != 10) && (wiFiConnection->securitySettings.wepKey2.length() != 26)) {
4741 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4742 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4746 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4747 if ((wiFiConnection->securitySettings.wepKey3.length() != 10) && (wiFiConnection->securitySettings.wepKey3.length() != 26)) {
4748 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4749 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4753 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4754 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4755 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4759 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4760 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4761 if ((wiFiConnection->securitySettings.wepKey0.length() != 5) && (wiFiConnection->securitySettings.wepKey0.length() != 13)) {
4762 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4763 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4767 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4768 if ((wiFiConnection->securitySettings.wepKey1.length() != 5) && (wiFiConnection->securitySettings.wepKey1.length() != 13)) {
4769 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4770 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4774 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4775 if ((wiFiConnection->securitySettings.wepKey2.length() != 5) && (wiFiConnection->securitySettings.wepKey2.length() != 13)) {
4776 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4777 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4781 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4782 if ((wiFiConnection->securitySettings.wepKey3.length() != 5) && (wiFiConnection->securitySettings.wepKey3.length() != 13)) {
4783 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4784 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4788 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4789 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4790 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4794 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4795 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4796 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4797 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4802 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::LEAP)) {
4803 if ((wiFiConnection->securitySettings.leapUsername.length() < 1) || (wiFiConnection->securitySettings.leapPassword.length() < 1)) {
4804 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"LEAP username and/or password not provided");
4805 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4809 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAAdHoc) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAInfrastructure) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAEnterprise)) {
4810 if (wiFiConnection->securitySettings.psk.length() == 64) {
4813 wiFiConnection->securitySettings.psk.toULongLong(&ok, 16);
4815 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"Hexadecimal length PSK contains non-hexadecimal characters");
4816 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4820 else if ((wiFiConnection->securitySettings.psk.length() < 8) || (wiFiConnection->securitySettings.psk.length() > 63)) {
4821 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No PSK provided");
4822 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4833 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::initiateConnection(TQString uuid) {
4834 TQT_DBusObjectPath existingConnection;
4835 TQT_DBusError error;
4837 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
4838 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4840 if (!m_networkDevice) {
4841 d->m_dbusDeviceString =
"/";
4844 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
4846 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4847 TQT_DBusObjectPath active_connection;
4848 ret = d->m_networkManagerProxy->ActivateConnection(existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), active_connection, error);
4849 if (ret && error.isValid()) {
4851 PRINT_ERROR((error.name() +
": " + error.message()))
4853 return checkConnectionStatus(uuid);
4854 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4855 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4856 connect(d->m_networkManagerProxy, SIGNAL(ActivateConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4857 connect(d->m_networkManagerProxy, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4858 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
4860 ret = d->m_networkManagerProxy->ActivateConnectionAsync(asyncCallID, existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), error);
4861 if (ret && error.isValid()) {
4863 PRINT_ERROR((error.name() +
": " + error.message()))
4865 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4868 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4869 TQTimer nmCallTimeoutTimer;
4870 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4871 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4872 if (!nmCallTimeoutTimer.isActive()) {
4873 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4876 tqApp->processEvents();
4878 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4879 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4880 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4881 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4883 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
4884 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4886 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4887 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4889 return checkConnectionStatus(uuid);
4893 PRINT_ERROR((error.name() +
": " + error.message()))
4894 return checkConnectionStatus(uuid);
4897 return checkConnectionStatus(uuid);
4899 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4902 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4903 return TDENetworkConnectionStatus::Invalid;
4907 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4908 return TDENetworkConnectionStatus::Invalid;
4912 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::checkConnectionStatus(TQString uuid) {
4913 TQT_DBusObjectPath existingConnection;
4914 TQT_DBusError error;
4915 if (d->m_networkManagerProxy) {
4916 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4917 TQT_DBusObjectPathList::iterator it;
4918 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4919 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4920 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4921 if (activeConnection.getUuid(error) == uuid) {
4922 return nmDeviceStateToTDEDeviceState(activeConnection.getState(error));
4925 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4926 return TDENetworkConnectionStatus::Invalid;
4929 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4930 return TDENetworkConnectionStatus::Invalid;
4934 TQCString TDENetworkConnectionManager_BackendNM::getActiveConnectionPath(TQString uuid) {
4935 TQT_DBusObjectPath existingConnection;
4936 TQT_DBusError error;
4937 if (d->m_networkManagerProxy) {
4938 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4939 TQT_DBusObjectPathList::iterator it;
4940 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4941 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4942 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4943 if (activeConnection.getUuid(error) == uuid) {
4947 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4948 return TQT_DBusObjectPath();
4951 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4952 return TQT_DBusObjectPath();
4956 TQStringList TDENetworkConnectionManager_BackendNM::connectionPhysicalDeviceUUIDs(TQString uuid) {
4957 if (deviceType() == TDENetworkDeviceType::BackendOnly) {
4958 return TQStringList();
4961 TQT_DBusObjectPath existingConnection;
4962 TQT_DBusError error;
4963 if (d->m_networkManagerProxy) {
4964 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4965 TQT_DBusObjectPathList::iterator it;
4967 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4968 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4969 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4970 if (activeConnection.getUuid(error) == uuid) {
4971 TQValueList<TQT_DBusObjectPath> deviceList = activeConnection.getDevices(error);
4972 TQT_DBusObjectPathList::iterator it2;
4973 for (it2 = deviceList.begin(); it2 != deviceList.end(); ++it2) {
4974 TQString devUUID = tdeDeviceUUIDForGenericDevice(*it2);
4975 if (devUUID !=
"") {
4976 ret.append(devUUID);
4984 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4985 return TQStringList();
4989 TDENetworkVPNTypeList TDENetworkConnectionManager_BackendNM::availableVPNTypes() {
4990 TDENetworkVPNTypeList ret;
4993 TQDir serviceDir(NM_PLUGIN_SERVICE_DIR, TQString(), TQDir::Name|TQDir::IgnoreCase, TQDir::Files);
4994 TQStringList services = serviceDir.entryList ().grep (
".name",
true);
4996 if (services.count () > 0) {
4998 for (TQStringList::Iterator i = services.begin (); i != services.end (); ++i) {
4999 TQString service = NM_PLUGIN_SERVICE_DIR + TQString (
"/") + *i;
5001 tdeconfig->
setGroup (
"VPN Connection");
5003 TQString serviceName = tdeconfig->
readEntry(
"name", TQString());
5004 serviceName = serviceName.lower();
5006 if (serviceName ==
"openvpn") {
5007 ret.append(TDENetworkVPNType::OpenVPN);
5009 if (serviceName ==
"pptp") {
5010 ret.append(TDENetworkVPNType::PPTP);
5012 if (serviceName ==
"strongswan") {
5013 ret.append(TDENetworkVPNType::StrongSwan);
5015 if (serviceName ==
"vpnc") {
5016 ret.append(TDENetworkVPNType::VPNC);
5026 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::deactivateConnection(TQString uuid) {
5027 TQT_DBusObjectPath existingConnection;
5028 TQT_DBusError error;
5030 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
5031 existingConnection = getActiveConnectionPath(uuid);
5032 if (existingConnection.isValid()) {
5033 if (!m_networkDevice) {
5034 d->m_dbusDeviceString =
"/";
5037 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
5039 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5040 ret = d->m_networkManagerProxy->DeactivateConnection(existingConnection, error);
5041 if (ret && error.isValid()) {
5043 PRINT_ERROR((error.name() +
": " + error.message()))
5045 return checkConnectionStatus(uuid);
5046 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5047 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
5048 connect(d->m_networkManagerProxy, SIGNAL(DeactivateConnectionAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
5049 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
5051 ret = d->m_networkManagerProxy->DeactivateConnectionAsync(asyncCallID, existingConnection, error);
5052 if (ret && error.isValid()) {
5054 PRINT_ERROR((error.name() +
": " + error.message()))
5056 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
5059 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
5060 TQTimer nmCallTimeoutTimer;
5061 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
5062 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
5063 if (!nmCallTimeoutTimer.isActive()) {
5064 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
5067 tqApp->processEvents();
5069 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
5070 return checkConnectionStatus(uuid);
5074 PRINT_ERROR((error.name() +
": " + error.message()))
5075 return checkConnectionStatus(uuid);
5078 return checkConnectionStatus(uuid);
5080 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5083 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
5084 return TDENetworkConnectionStatus::Invalid;
5088 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5089 return TDENetworkConnectionStatus::Invalid;
5093 TQStringList TDENetworkConnectionManager_BackendNM::validSettings() {
5096 ret.append(
"TDENetworkSingleIPConfiguration::ipAddress");
5097 ret.append(
"TDENetworkSingleIPConfiguration::networkMask");
5098 ret.append(
"TDENetworkSingleIPConfiguration::gateway");
5100 ret.append(
"TDENetworkSingleRouteConfiguration::ipAddress");
5101 ret.append(
"TDENetworkSingleRouteConfiguration::networkMask");
5102 ret.append(
"TDENetworkSingleRouteConfiguration::gateway");
5104 ret.append(
"TDENetworkIEEE8021xConfiguration::valid");
5105 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedValid");
5106 ret.append(
"TDENetworkIEEE8021xConfiguration::secretsValid");
5107 ret.append(
"TDENetworkIEEE8021xConfiguration::type");
5108 ret.append(
"TDENetworkIEEE8021xConfiguration::userName");
5109 ret.append(
"TDENetworkIEEE8021xConfiguration::anonymousUserName");
5110 ret.append(
"TDENetworkIEEE8021xConfiguration::pacFileName");
5111 ret.append(
"TDENetworkIEEE8021xConfiguration::caCertificate");
5112 ret.append(
"TDENetworkIEEE8021xConfiguration::additionalCAFilesPath");
5113 ret.append(
"TDENetworkIEEE8021xConfiguration::authServerCertSubjectMatch");
5114 ret.append(
"TDENetworkIEEE8021xConfiguration::alternateAuthServerCertSubjectMatch");
5115 ret.append(
"TDENetworkIEEE8021xConfiguration::clientCertificate");
5116 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPVersion");
5117 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPLabel");
5118 ret.append(
"TDENetworkIEEE8021xConfiguration::fastProvisioningFlags");
5119 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2NonEAPAuthMethod");
5120 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2EAPAuthMethod");
5121 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2NonEAPMethods");
5122 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2EAPMethods");
5123 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaCertificate");
5124 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaFilesPath");
5125 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AuthServerCertSubjectMatch");
5126 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AlternateAuthServerCertSubjectMatch");
5127 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2ClientCertificate");
5128 ret.append(
"TDENetworkIEEE8021xConfiguration::password");
5129 ret.append(
"TDENetworkIEEE8021xConfiguration::passwordFlags");
5130 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPassword");
5131 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPasswordFlags");
5132 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKey");
5133 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPassword");
5134 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPasswordFlags");
5135 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKey");
5136 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPassword");
5137 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPasswordFlags");
5138 ret.append(
"TDENetworkIEEE8021xConfiguration::forceSystemCaCertificates");
5140 ret.append(
"TDENetworkPPPConfiguration::valid");
5141 ret.append(
"TDENetworkPPPConfiguration::requireServerAuthentication");
5142 ret.append(
"TDENetworkPPPConfiguration::flags");
5143 ret.append(
"TDENetworkPPPConfiguration::baudRate");
5144 ret.append(
"TDENetworkPPPConfiguration::mru");
5145 ret.append(
"TDENetworkPPPConfiguration::mtu");
5146 ret.append(
"TDENetworkPPPConfiguration::lcpEchoPingInterval");
5147 ret.append(
"TDENetworkPPPConfiguration::lcpEchoFailureThreshold");
5149 ret.append(
"TDENetworkPPPOEConfiguration::valid");
5150 ret.append(
"TDENetworkPPPOEConfiguration::secretsValid");
5151 ret.append(
"TDENetworkPPPOEConfiguration::networkServiceProvider");
5152 ret.append(
"TDENetworkPPPOEConfiguration::username");
5153 ret.append(
"TDENetworkPPPOEConfiguration::password");
5154 ret.append(
"TDENetworkPPPOEConfiguration::passwordFlags");
5156 ret.append(
"TDENetworkSerialConfiguration::valid");
5157 ret.append(
"TDENetworkSerialConfiguration::baudRate");
5158 ret.append(
"TDENetworkSerialConfiguration::byteWidth");
5159 ret.append(
"TDENetworkSerialConfiguration::parity");
5160 ret.append(
"TDENetworkSerialConfiguration::stopBits");
5161 ret.append(
"TDENetworkSerialConfiguration::txDelay");
5163 ret.append(
"TDENetworkCDMAConfiguration::valid");
5164 ret.append(
"TDENetworkCDMAConfiguration::secretsValid");
5165 ret.append(
"TDENetworkCDMAConfiguration::providerDataNumber");
5166 ret.append(
"TDENetworkCDMAConfiguration::username");
5167 ret.append(
"TDENetworkCDMAConfiguration::password");
5168 ret.append(
"TDENetworkCDMAConfiguration::passwordFlags");
5170 ret.append(
"TDENetworkGSMConfiguration::valid");
5171 ret.append(
"TDENetworkGSMConfiguration::secretsValid");
5172 ret.append(
"TDENetworkGSMConfiguration::providerDataNumber");
5173 ret.append(
"TDENetworkGSMConfiguration::username");
5174 ret.append(
"TDENetworkGSMConfiguration::password");
5175 ret.append(
"TDENetworkGSMConfiguration::passwordFlags");
5176 ret.append(
"TDENetworkGSMConfiguration::accessPointName");
5177 ret.append(
"TDENetworkGSMConfiguration::networkID");
5178 ret.append(
"TDENetworkGSMConfiguration::networkType");
5179 ret.append(
"TDENetworkGSMConfiguration::pin");
5180 ret.append(
"TDENetworkGSMConfiguration::pinFlags");
5181 ret.append(
"TDENetworkGSMConfiguration::allowedFrequencyBands");
5182 ret.append(
"TDENetworkGSMConfiguration::allowRoaming");
5184 ret.append(
"TDENetworkWiFiSecurityConfiguration::valid");
5185 ret.append(
"TDENetworkWiFiSecurityConfiguration::secretsValid");
5186 ret.append(
"TDENetworkWiFiSecurityConfiguration::keyType");
5187 ret.append(
"TDENetworkWiFiSecurityConfiguration::authType");
5188 ret.append(
"TDENetworkWiFiSecurityConfiguration::wpaVersion");
5189 ret.append(
"TDENetworkWiFiSecurityConfiguration::cipher");
5190 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey0");
5191 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey1");
5192 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey2");
5193 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey3");
5194 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyFlags");
5195 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyIndex");
5196 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyType");
5197 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedPairWiseCiphers");
5198 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedGroupWiseCiphers");
5199 ret.append(
"TDENetworkWiFiSecurityConfiguration::psk");
5200 ret.append(
"TDENetworkWiFiSecurityConfiguration::pskFlags");
5201 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapUsername");
5202 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPassword");
5203 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPasswordFlags");
5205 ret.append(
"TDENetworkIPConfiguration::valid");
5206 ret.append(
"TDENetworkIPConfiguration::connectionFlags");
5207 ret.append(
"TDENetworkIPConfiguration::ipConfigurations");
5208 ret.append(
"TDENetworkIPConfiguration::routeConfigurations");
5209 ret.append(
"TDENetworkIPConfiguration::broadcast");
5210 ret.append(
"TDENetworkIPConfiguration::destination");
5211 ret.append(
"TDENetworkIPConfiguration::resolvers");
5212 ret.append(
"TDENetworkIPConfiguration::searchDomains");
5213 ret.append(
"TDENetworkIPConfiguration::dhcpClientIdentifier");
5215 ret.append(
"TDENetworkConnection::UUID");
5216 ret.append(
"TDENetworkConnection::friendlyName");
5217 ret.append(
"TDENetworkConnection::ipConfig");
5218 ret.append(
"TDENetworkConnection::lockedHWAddress");
5219 ret.append(
"TDENetworkConnection::manualHWAddress");
5220 ret.append(
"TDENetworkConnection::readOnly");
5221 ret.append(
"TDENetworkConnection::autoConnect");
5222 ret.append(
"TDENetworkConnection::fullDuplex");
5223 ret.append(
"TDENetworkConnection::requireIPV4");
5224 ret.append(
"TDENetworkConnection::requireIPV6");
5225 ret.append(
"TDENetworkConnection::mtu");
5226 ret.append(
"TDENetworkConnection::eapConfig");
5227 ret.append(
"TDENetworkConnection::pppConfig");
5228 ret.append(
"TDENetworkConnection::pppoeConfig");
5229 ret.append(
"TDENetworkConnection::serialConfig");
5230 ret.append(
"TDENetworkConnection::authorizedUsers");
5231 ret.append(
"TDENetworkConnection::masterConnectionUUID");
5232 ret.append(
"TDENetworkConnection::slaveType");
5233 ret.append(
"TDENetworkConnection::lastKnownConnection");
5235 ret.append(
"TDEWiFiConnection::SSID");
5236 ret.append(
"TDEWiFiConnection::operatingMode");
5237 ret.append(
"TDEWiFiConnection::bandRestriction");
5238 ret.append(
"TDEWiFiConnection::channelRestriction");
5239 ret.append(
"TDEWiFiConnection::bitRateRestriction");
5240 ret.append(
"TDEWiFiConnection::powerRestriction");
5241 ret.append(
"TDEWiFiConnection::accessPointRestriction");
5242 ret.append(
"TDEWiFiConnection::blacklistedBSSIDs");
5243 ret.append(
"TDEWiFiConnection::heardBSSIDs");
5244 ret.append(
"TDEWiFiConnection::isHiddenNetwork");
5245 ret.append(
"TDEWiFiConnection::securityRequired");
5246 ret.append(
"TDEWiFiConnection::securitySettings");
5248 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5250 ret.append(
"TDEVPNConnection::vpnPluginID");
5251 ret.append(
"TDEVPNConnection::lockedUserName");
5252 ret.append(
"TDEVPNConnection::pluginData");
5253 ret.append(
"TDEVPNConnection::secretsValid");
5254 ret.append(
"TDEVPNConnection::pluginSecrets");
5256 ret.append(
"TDEWiMaxConnection::networkServiceProvider");
5258 ret.append(
"TDEVLANConnection::kernelName");
5259 ret.append(
"TDEVLANConnection::parentConnectionUUID");
5260 ret.append(
"TDEVLANConnection::vlanID");
5261 ret.append(
"TDEVLANConnection::vlanFlags");
5262 ret.append(
"TDEVLANConnection::ingressPriorityMap");
5263 ret.append(
"TDEVLANConnection::egressPriorityMap");
5265 ret.append(
"TDEOLPCMeshConnection::SSID");
5266 ret.append(
"TDEOLPCMeshConnection::channel");
5267 ret.append(
"TDEOLPCMeshConnection::anycastDHCPHWAddress");
5269 ret.append(
"TDEBluetoothConnection::type");
5271 ret.append(
"TDEModemConnection::type");
5272 ret.append(
"TDEModemConnection::cdmaConfig");
5273 ret.append(
"TDEModemConnection::gsmConfig");
5275 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5280 TDENetworkWiFiAPInfo* TDENetworkConnectionManager_BackendNM::getAccessPointDetails(TQString dbusPath) {
5281 if (dbusPath ==
"") {
5285 TDENetworkWiFiAPInfo* apInfo =
new TDENetworkWiFiAPInfo;
5286 TQT_DBusError error;
5288 DBus::AccessPointProxy accessPoint(NM_DBUS_SERVICE, dbusPath);
5289 accessPoint.setConnection(TQT_DBusConnection::systemBus());
5291 TQValueList<TQ_UINT8> nmSSID = accessPoint.getSsid(error);
5292 if (error.isValid()) {
5296 TQValueList<TQ_UINT8>::iterator it;
5298 for (it = nmSSID.begin(); it != nmSSID.end(); ++it) {
5299 apInfo->SSID.resize(index+1);
5300 apInfo->SSID[index] = (*it);
5304 apInfo->wpaFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getWpaFlags(error));
5305 apInfo->rsnFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getRsnFlags(error));
5306 apInfo->frequency = accessPoint.getFrequency(error);
5307 apInfo->BSSID.fromString(accessPoint.getHwAddress(error));
5308 apInfo->maxBitrate = accessPoint.getMaxBitrate(error);
5309 apInfo->signalQuality = (accessPoint.getStrength(error)/100.0);
5311 apInfo->valid =
true;
5316 TDENetworkHWNeighborList* TDENetworkConnectionManager_BackendNM::siteSurvey() {
5317 TQT_DBusError error;
5320 TDENetworkDeviceType::TDENetworkDeviceType myDeviceType = deviceType();
5321 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
5322 clearTDENetworkHWNeighborList();
5324 if (myDeviceType == TDENetworkDeviceType::WiFi) {
5325 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
5326 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
5329 TQT_DBusObjectPathList accessPoints;
5330 ret = wiFiDevice.GetAccessPoints(accessPoints, error);
5332 TQT_DBusObjectPathList::iterator it;
5333 for (it = accessPoints.begin(); it != accessPoints.end(); ++it) {
5334 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(TQString(*it));
5336 m_hwNeighborList->append(apInfo);
5338 d->internalProcessWiFiAccessPointAdded(*it);
5344 return m_hwNeighborList;
5347 bool TDENetworkConnectionManager_BackendNM::networkingEnabled() {
5348 if (d->m_networkManagerProxy) {
5350 TQT_DBusError error;
5351 ret = d->m_networkManagerProxy->getNetworkingEnabled(error);
5352 if (error.isValid()) {
5354 PRINT_ERROR((error.name() +
": " + error.message()))
5366 bool TDENetworkConnectionManager_BackendNM::wiFiHardwareEnabled() {
5367 if (d->m_networkManagerProxy) {
5369 TQT_DBusError error;
5370 ret = d->m_networkManagerProxy->getWirelessHardwareEnabled(error);
5371 if (error.isValid()) {
5373 PRINT_ERROR((error.name() +
": " + error.message()))
5385 bool TDENetworkConnectionManager_BackendNM::enableNetworking(
bool enable) {
5389 if (d->m_networkManagerProxy) {
5391 TQT_DBusError error;
5392 d->m_networkManagerProxy->SleepAsync(asynccallid, !enable, error);
5393 if (error.isValid()) {
5395 PRINT_ERROR((error.name() +
": " + error.message()))
5409 bool TDENetworkConnectionManager_BackendNM::enableWiFi(
bool enable) {
5410 if (d->m_networkManagerProxy) {
5411 TQT_DBusError error;
5412 d->m_networkManagerProxy->setWirelessEnabled(enable, error);
5413 if (error.isValid()) {
5415 PRINT_ERROR((error.name() +
": " + error.message()))
5427 bool TDENetworkConnectionManager_BackendNM::wiFiEnabled() {
5428 if (d->m_networkManagerProxy) {
5430 TQT_DBusError error;
5431 ret = d->m_networkManagerProxy->getWirelessEnabled(error);
5432 if (error.isValid()) {
5434 PRINT_ERROR((error.name() +
": " + error.message()))
5446 TQStringList TDENetworkConnectionManager_BackendNM::defaultNetworkDevices() {
5450 TQT_DBusObjectPath existingConnection;
5451 TQT_DBusError error;
5452 if (d->m_networkManagerProxy) {
5453 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5454 TQT_DBusObjectPathList::iterator it;
5455 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5456 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5457 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5458 if (activeConnection.getDefault(error)) {
5460 TQString uuid = activeConnection.getUuid(error);
5461 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5462 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5466 else if (activeConnection.getDefault6(error)) {
5468 TQString uuid = activeConnection.getUuid(error);
5469 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5470 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5478 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5479 return TQStringList();
5483 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) {
5485 m_dbusSignalConnection =
new TQT_DBusConnection(TQT_DBusConnection::systemBus());
5486 m_dbusSignalReceiver =
new TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(
this);
5487 m_dbusSignalConnection->connect(m_dbusSignalReceiver, TQT_SLOT(dbusSignal(
const TQT_DBusMessage&)));
5490 TDENetworkConnectionManager_BackendNMPrivate::~TDENetworkConnectionManager_BackendNMPrivate() {
5492 if (m_dbusSignalConnection)
delete m_dbusSignalConnection;
5493 if (m_dbusSignalReceiver)
delete m_dbusSignalReceiver;
5496 TQMap<TQString, DBus::AccessPointProxy*>::iterator it;
5497 for (it = m_accessPointProxyList.begin(); it != m_accessPointProxyList.end(); ++it) {
5498 DBus::AccessPointProxy *apProxy = it.data();
5503 m_accessPointProxyList.clear();
5506 #include "network-manager.moc"
5507 #include "network-manager_p.moc"