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) \
41 if (!string.isNull()) { settingsMap[key] = (TQT_DBusData::fromString(string)).getAsVariantData(); } \
42 else { settingsMap.remove(key); }
44 #define NM_ASYNC_TIMEOUT_MS 1000
46 #define NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS (5*60*1000)
49 #define USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 1
51 TQ_UINT32 reverseIPV4ByteOrder(TQ_UINT32 address) {
53 unsigned char valuearray[4];
54 valuearray[0] = (address & 0xff000000) >> 24;
55 valuearray[1] = (address & 0x00ff0000) >> 16;
56 valuearray[2] = (address & 0x0000ff00) >> 8;
57 valuearray[3] = (address & 0x000000ff) >> 0;
59 ret = ret | (valuearray[0] << 0);
60 ret = ret | (valuearray[1] << 8);
61 ret = ret | (valuearray[2] << 16);
62 ret = ret | (valuearray[3] << 24);
66 void printDBUSObjectStructure(TQT_DBusData
object,
int level=0, TQString mapKey=TQString::null) {
68 TQString levelIndent =
"";
69 for (i=0; i<level; i++) {
70 levelIndent = levelIndent +
" ";
72 TQCString signature =
object.buildDBusSignature();
74 if (
object.type() == TQT_DBusData::String) {
75 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toString().ascii()); fflush(stdout);
77 else if (
object.type() == TQT_DBusData::Bool) {
78 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ", (
object.toBool())?
"true":
"false"); fflush(stdout);
80 else if (
object.type() == TQT_DBusData::Byte) {
81 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toByte()); fflush(stdout);
83 else if (
object.type() == TQT_DBusData::Int16) {
84 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt16()); fflush(stdout);
86 else if (
object.type() == TQT_DBusData::UInt16) {
87 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt16()); fflush(stdout);
89 else if (
object.type() == TQT_DBusData::Int32) {
90 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt32()); fflush(stdout);
92 else if (
object.type() == TQT_DBusData::UInt32) {
93 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt32()); fflush(stdout);
95 else if (
object.type() == TQT_DBusData::Int64) {
96 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt64()); fflush(stdout);
98 else if (
object.type() == TQT_DBusData::UInt64) {
99 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt64()); fflush(stdout);
102 printf(
"%s%s\n", levelIndent.ascii(), signature.data()); fflush(stdout);
105 if (
object.type() == TQT_DBusData::Map) {
108 TQMap<TQString, TQT_DBusData> outerMap =
object.toStringKeyMap().toTQMap();
109 TQMap<TQString, TQT_DBusData>::const_iterator it;
110 for (it = outerMap.begin(); it != outerMap.end(); ++it) {
111 printDBUSObjectStructure(*it, level+1, it.key());
114 else if (
object.type() == TQT_DBusData::List) {
115 TQT_DBusDataValueList valueList =
object.toTQValueList();
116 TQT_DBusDataValueList::const_iterator it;
117 for (it = valueList.begin(); it != valueList.end(); ++it) {
118 printDBUSObjectStructure(*it, level+1);
121 else if (
object.type() == TQT_DBusData::Variant) {
122 TQT_DBusVariant dataValueVariant =
object.toVariant();
123 TQT_DBusData dataValue = dataValueVariant.value;
124 printDBUSObjectStructure(dataValue, level+1, mapKey);
128 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmGlobalStateToTDEGlobalState(TQ_UINT32 nmType) {
129 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
131 if (nmType == NM_STATE_UNKNOWN) {
132 ret |= TDENetworkGlobalManagerFlags::Unknown;
134 else if (nmType == NM_STATE_ASLEEP) {
135 ret |= TDENetworkGlobalManagerFlags::Disconnected;
136 ret |= TDENetworkGlobalManagerFlags::Sleeping;
138 else if (nmType == NM_STATE_DISCONNECTED) {
139 ret |= TDENetworkGlobalManagerFlags::Disconnected;
141 else if (nmType == NM_STATE_DISCONNECTING) {
142 ret |= TDENetworkGlobalManagerFlags::Connected;
143 ret |= TDENetworkGlobalManagerFlags::DeactivatingLink;
145 else if (nmType == NM_STATE_CONNECTING) {
146 ret |= TDENetworkGlobalManagerFlags::Disconnected;
147 ret |= TDENetworkGlobalManagerFlags::EstablishingLink;
149 else if (nmType == NM_STATE_CONNECTED_LOCAL) {
150 ret |= TDENetworkGlobalManagerFlags::Connected;
151 ret |= TDENetworkGlobalManagerFlags::LinkLocalAccess;
153 else if (nmType == NM_STATE_CONNECTED_SITE) {
154 ret |= TDENetworkGlobalManagerFlags::Connected;
155 ret |= TDENetworkGlobalManagerFlags::SiteLocalAccess;
157 else if (nmType == NM_STATE_CONNECTED_GLOBAL) {
158 ret |= TDENetworkGlobalManagerFlags::Connected;
159 ret |= TDENetworkGlobalManagerFlags::GlobalAccess;
165 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmVPNStateToTDEGlobalState(TQ_UINT32 nmType) {
166 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
168 if (nmType == NM_VPN_STATE_UNKNOWN) {
169 ret |= TDENetworkGlobalManagerFlags::VPNUnknown;
171 else if (nmType == NM_VPN_STATE_PREPARE) {
172 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
173 ret |= TDENetworkGlobalManagerFlags::VPNEstablishingLink;
175 else if (nmType == NM_VPN_STATE_NEED_AUTH) {
176 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
177 ret |= TDENetworkGlobalManagerFlags::VPNNeedAuthorization;
179 else if (nmType == NM_VPN_STATE_CONNECT) {
180 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
181 ret |= TDENetworkGlobalManagerFlags::VPNConfiguringProtocols;
183 else if (nmType == NM_VPN_STATE_IP_CONFIG_GET) {
184 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
185 ret |= TDENetworkGlobalManagerFlags::VPNVerifyingProtocols;
187 else if (nmType == NM_VPN_STATE_ACTIVATED) {
188 ret |= TDENetworkGlobalManagerFlags::VPNConnected;
190 else if (nmType == NM_VPN_STATE_FAILED) {
191 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
192 ret |= TDENetworkGlobalManagerFlags::VPNFailed;
194 else if (nmType == NM_VPN_STATE_DISCONNECTED) {
195 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
201 TDENetworkConnectionStatus::TDENetworkConnectionStatus nmDeviceStateToTDEDeviceState(TQ_UINT32 nmType) {
202 TDENetworkConnectionStatus::TDENetworkConnectionStatus ret = TDENetworkConnectionStatus::None;
204 if (nmType == NM_DEVICE_STATE_UNKNOWN) {
205 ret |= TDENetworkConnectionStatus::Invalid;
207 else if (nmType == NM_DEVICE_STATE_UNMANAGED) {
208 ret |= TDENetworkConnectionStatus::UnManaged;
210 else if (nmType == NM_DEVICE_STATE_UNAVAILABLE) {
211 ret |= TDENetworkConnectionStatus::Disconnected;
212 ret |= TDENetworkConnectionStatus::LinkUnavailable;
214 else if (nmType == NM_DEVICE_STATE_DISCONNECTED) {
215 ret |= TDENetworkConnectionStatus::Disconnected;
217 else if (nmType == NM_DEVICE_STATE_PREPARE) {
218 ret |= TDENetworkConnectionStatus::Disconnected;
219 ret |= TDENetworkConnectionStatus::EstablishingLink;
221 else if (nmType == NM_DEVICE_STATE_CONFIG) {
222 ret |= TDENetworkConnectionStatus::Disconnected;
223 ret |= TDENetworkConnectionStatus::EstablishingLink;
225 else if (nmType == NM_DEVICE_STATE_NEED_AUTH) {
226 ret |= TDENetworkConnectionStatus::Disconnected;
227 ret |= TDENetworkConnectionStatus::NeedAuthorization;
229 else if (nmType == NM_DEVICE_STATE_IP_CONFIG) {
230 ret |= TDENetworkConnectionStatus::Disconnected;
231 ret |= TDENetworkConnectionStatus::ConfiguringProtocols;
233 else if (nmType == NM_DEVICE_STATE_IP_CHECK) {
234 ret |= TDENetworkConnectionStatus::Disconnected;
235 ret |= TDENetworkConnectionStatus::VerifyingProtocols;
237 else if (nmType == NM_DEVICE_STATE_SECONDARIES) {
238 ret |= TDENetworkConnectionStatus::Disconnected;
239 ret |= TDENetworkConnectionStatus::DependencyWait;
241 else if (nmType == NM_DEVICE_STATE_ACTIVATED) {
242 ret |= TDENetworkConnectionStatus::Connected;
244 else if (nmType == NM_DEVICE_STATE_DEACTIVATING) {
245 ret |= TDENetworkConnectionStatus::Connected;
246 ret |= TDENetworkConnectionStatus::DeactivatingLink;
248 else if (nmType == NM_DEVICE_STATE_FAILED) {
249 ret |= TDENetworkConnectionStatus::Disconnected;
250 ret |= TDENetworkConnectionStatus::Failed;
256 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::nmDeviceTypeToTDEDeviceType(TQ_UINT32 nmType) {
257 TDENetworkDeviceType::TDENetworkDeviceType ret = TDENetworkDeviceType::Other;
259 if (nmType == NM_DEVICE_TYPE_UNKNOWN) {
260 ret = TDENetworkDeviceType::Other;
262 else if (nmType == NM_DEVICE_TYPE_ETHERNET) {
263 ret = TDENetworkDeviceType::WiredEthernet;
265 else if (nmType == NM_DEVICE_TYPE_WIFI) {
266 ret = TDENetworkDeviceType::WiFi;
268 else if (nmType == NM_DEVICE_TYPE_UNUSED1) {
270 else if (nmType == NM_DEVICE_TYPE_UNUSED2) {
272 else if (nmType == NM_DEVICE_TYPE_BT) {
273 ret = TDENetworkDeviceType::Bluetooth;
275 else if (nmType == NM_DEVICE_TYPE_OLPC_MESH) {
276 ret = TDENetworkDeviceType::OLPCMesh;
278 else if (nmType == NM_DEVICE_TYPE_WIMAX) {
279 ret = TDENetworkDeviceType::WiMax;
281 else if (nmType == NM_DEVICE_TYPE_MODEM) {
282 ret = TDENetworkDeviceType::Modem;
284 else if (nmType == NM_DEVICE_TYPE_INFINIBAND) {
285 ret = TDENetworkDeviceType::Infiniband;
287 else if (nmType == NM_DEVICE_TYPE_BOND) {
288 ret = TDENetworkDeviceType::Bond;
290 else if (nmType == NM_DEVICE_TYPE_VLAN) {
291 ret = TDENetworkDeviceType::VLAN;
293 else if (nmType == NM_DEVICE_TYPE_ADSL) {
294 ret = TDENetworkDeviceType::ADSL;
300 TDENetworkConnectionType::TDENetworkConnectionType nmConnectionTypeToTDEConnectionType(TQString nm) {
301 TDENetworkConnectionType::TDENetworkConnectionType ret = TDENetworkConnectionType::Other;
303 if (nm.lower() ==
"802-3-ethernet") {
304 ret = TDENetworkConnectionType::WiredEthernet;
306 else if (nm.lower() ==
"infiniband") {
307 ret = TDENetworkConnectionType::Infiniband;
309 else if (nm.lower() ==
"802-11-wireless") {
310 ret = TDENetworkConnectionType::WiFi;
312 else if (nm.lower() ==
"vpn") {
313 ret = TDENetworkConnectionType::VPN;
315 else if (nm.lower() ==
"wimax") {
316 ret = TDENetworkConnectionType::WiMax;
318 else if (nm.lower() ==
"vlan") {
319 ret = TDENetworkConnectionType::VLAN;
321 else if (nm.lower() ==
"802-11-olpc-mesh") {
322 ret = TDENetworkConnectionType::OLPCMesh;
324 else if (nm.lower() ==
"bluetooth") {
325 ret = TDENetworkConnectionType::Bluetooth;
327 else if (nm.lower() ==
"cdma") {
328 ret = TDENetworkConnectionType::Modem;
330 else if (nm.lower() ==
"gsm") {
331 ret = TDENetworkConnectionType::Modem;
337 TQString tdeConnectionTypeToNMConnectionType(TDENetworkConnectionType::TDENetworkConnectionType type, TDEModemConnectionType::TDEModemConnectionType modemType=TDEModemConnectionType::Other) {
340 if (type == TDENetworkConnectionType::WiredEthernet) {
341 ret =
"802-3-ethernet";
343 else if (type == TDENetworkConnectionType::Infiniband) {
346 else if (type == TDENetworkConnectionType::WiFi) {
347 ret =
"802-11-wireless";
349 else if (type == TDENetworkConnectionType::VPN) {
352 else if (type == TDENetworkConnectionType::WiMax) {
355 else if (type == TDENetworkConnectionType::VLAN) {
358 else if (type == TDENetworkConnectionType::OLPCMesh) {
359 ret =
"802-11-olpc-mesh";
361 else if (type == TDENetworkConnectionType::Bluetooth) {
364 else if (type == TDENetworkConnectionType::Modem) {
365 if (modemType == TDEModemConnectionType::CDMA) {
368 else if (modemType == TDEModemConnectionType::GSM) {
376 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType nmEAPTypeToTDEEAPType(TQString nm) {
377 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType ret = TDENetworkIEEE8021xType::None;
379 if (nm.lower() ==
"") {
380 ret = TDENetworkIEEE8021xType::None;
382 else if (nm.lower() ==
"leap") {
383 ret = TDENetworkIEEE8021xType::LEAP;
385 else if (nm.lower() ==
"md5") {
386 ret = TDENetworkIEEE8021xType::MD5;
388 else if (nm.lower() ==
"pap") {
389 ret = TDENetworkIEEE8021xType::PAP;
391 else if (nm.lower() ==
"chap") {
392 ret = TDENetworkIEEE8021xType::CHAP;
394 else if (nm.lower() ==
"mschap") {
395 ret = TDENetworkIEEE8021xType::MSCHAP;
397 else if (nm.lower() ==
"mschapv2") {
398 ret = TDENetworkIEEE8021xType::MSCHAPV2;
400 else if (nm.lower() ==
"fast") {
401 ret = TDENetworkIEEE8021xType::Fast;
403 else if (nm.lower() ==
"psk") {
404 ret = TDENetworkIEEE8021xType::PSK;
406 else if (nm.lower() ==
"pax") {
407 ret = TDENetworkIEEE8021xType::PAX;
409 else if (nm.lower() ==
"sake") {
410 ret = TDENetworkIEEE8021xType::SAKE;
412 else if (nm.lower() ==
"gpsk") {
413 ret = TDENetworkIEEE8021xType::GPSK;
415 else if (nm.lower() ==
"tls") {
416 ret = TDENetworkIEEE8021xType::TLS;
418 else if (nm.lower() ==
"peap") {
419 ret = TDENetworkIEEE8021xType::PEAP;
421 else if (nm.lower() ==
"ttls") {
422 ret = TDENetworkIEEE8021xType::TTLS;
424 else if (nm.lower() ==
"sim") {
425 ret = TDENetworkIEEE8021xType::SIM;
427 else if (nm.lower() ==
"gtc") {
428 ret = TDENetworkIEEE8021xType::GTC;
430 else if (nm.lower() ==
"otp") {
431 ret = TDENetworkIEEE8021xType::OTP;
434 PRINT_ERROR(TQString(
"unknown EAP type %s requested in existing connection").arg(nm.lower()))
440 TQString tdeEAPTypeToNMEAPType(TDENetworkIEEE8021xType::TDENetworkIEEE8021xType eaptype) {
443 if (eaptype == TDENetworkIEEE8021xType::None) {
446 else if (eaptype == TDENetworkIEEE8021xType::LEAP) {
449 else if (eaptype == TDENetworkIEEE8021xType::MD5) {
452 else if (eaptype == TDENetworkIEEE8021xType::PAP) {
455 else if (eaptype == TDENetworkIEEE8021xType::CHAP) {
458 else if (eaptype == TDENetworkIEEE8021xType::MSCHAP) {
461 else if (eaptype == TDENetworkIEEE8021xType::MSCHAPV2) {
464 else if (eaptype == TDENetworkIEEE8021xType::Fast) {
467 else if (eaptype == TDENetworkIEEE8021xType::PSK) {
470 else if (eaptype == TDENetworkIEEE8021xType::PAX) {
473 else if (eaptype == TDENetworkIEEE8021xType::SAKE) {
476 else if (eaptype == TDENetworkIEEE8021xType::GPSK) {
479 else if (eaptype == TDENetworkIEEE8021xType::TLS) {
482 else if (eaptype == TDENetworkIEEE8021xType::PEAP) {
485 else if (eaptype == TDENetworkIEEE8021xType::TTLS) {
488 else if (eaptype == TDENetworkIEEE8021xType::SIM) {
491 else if (eaptype == TDENetworkIEEE8021xType::GTC) {
494 else if (eaptype == TDENetworkIEEE8021xType::OTP) {
498 PRINT_ERROR(TQString(
"unknown TDE EAP type %d requested in new or updated connection").arg(eaptype))
504 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags nmEAPFastFlagsToTDEEAPFastFlags(TQString nm) {
505 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
507 unsigned int nm_int = nm.toUInt();
508 if (nm_int == NM_EAP_FAST_PROVISIONING_DISABLED) {
509 ret = TDENetworkIEEE8021xFastFlags::None;
511 else if (nm_int == NM_EAP_FAST_PROVISIONING_UNAUTHONLY) {
512 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated;
514 else if (nm_int == NM_EAP_FAST_PROVISIONING_AUTHONLY) {
515 ret = TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
517 else if (nm_int == NM_EAP_FAST_PROVISIONING_BOTH) {
518 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
521 PRINT_ERROR(TQString(
"unknown EAP fast flag %s requested in existing connection").arg(nm.lower()))
527 TQString tdeEAPFastFlagsToNMEAPFastFlags(TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags eaptype) {
530 if ((eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) && (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated)) {
531 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_BOTH);
533 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated) {
534 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_AUTHONLY);
536 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) {
537 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_UNAUTHONLY);
540 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_DISABLED);
546 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQString nm) {
547 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
549 if (nm.lower() ==
"infrastructure") {
550 ret = TDEWiFiMode::Infrastructure;
552 else if (nm.lower() ==
"adhoc") {
553 ret = TDEWiFiMode::AdHoc;
559 TQString tdeWiFiModeToNMWiFiMode(TDEWiFiMode::TDEWiFiMode mode) {
562 if (mode == TDEWiFiMode::Infrastructure) {
563 ret =
"infrastructure";
565 else if (mode == TDEWiFiMode::AdHoc) {
572 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQ_UINT32 nm) {
573 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
575 if (nm == NM_802_11_MODE_INFRASTRUCTURE) {
576 ret = TDEWiFiMode::Infrastructure;
578 else if (nm == NM_802_11_MODE_ADHOC) {
579 ret = TDEWiFiMode::AdHoc;
585 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags tdeWiFiFlagsToNMWiFiFlags(TQ_UINT32 nm) {
586 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags ret = TDENetworkWiFiClientFlags::None;
588 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP40) {
589 ret | TDENetworkWiFiClientFlags::CipherWEP40;
591 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP104) {
592 ret | TDENetworkWiFiClientFlags::CipherWEP104;
594 if (nm & NM_802_11_DEVICE_CAP_CIPHER_TKIP) {
595 ret | TDENetworkWiFiClientFlags::CipherTKIP;
597 if (nm & NM_802_11_DEVICE_CAP_CIPHER_CCMP) {
598 ret | TDENetworkWiFiClientFlags::CipherCCMP;
600 if (nm & NM_802_11_DEVICE_CAP_WPA) {
601 ret | TDENetworkWiFiClientFlags::CipherWPA;
603 if (nm & NM_802_11_DEVICE_CAP_RSN) {
604 ret | TDENetworkWiFiClientFlags::CipherRSN;
610 TDEBluetoothConnectionType::TDEBluetoothConnectionType nmBluetoothModeToTDEBluetoothMode(TQString nm) {
611 TDEBluetoothConnectionType::TDEBluetoothConnectionType ret = TDEBluetoothConnectionType::PAN;
613 if (nm.lower() ==
"dun") {
614 ret = TDEBluetoothConnectionType::DUN;
616 else if (nm.lower() ==
"panu") {
617 ret = TDEBluetoothConnectionType::PAN;
623 TQString tdeBluetoothModeToNMBluetoothMode(TDEBluetoothConnectionType::TDEBluetoothConnectionType type) {
626 if (type == TDEBluetoothConnectionType::DUN) {
629 else if (type == TDEBluetoothConnectionType::PAN) {
636 TDEGSMNetworkType::TDEGSMNetworkType nmGSMModeToTDEGSMMode(TQ_INT32 nm) {
637 TDEGSMNetworkType::TDEGSMNetworkType ret = TDEGSMNetworkType::Any;
639 if (nm == NM_GSM_3G_ONLY) {
640 ret = TDEGSMNetworkType::Only3G;
642 else if (nm == NM_GSM_GPRS_EDGE_ONLY) {
643 ret = TDEGSMNetworkType::GPRSEdge;
645 else if (nm == NM_GSM_PREFER_3G) {
646 ret = TDEGSMNetworkType::Prefer3G;
648 else if (nm == NM_GSM_PREFER_2G) {
649 ret = TDEGSMNetworkType::Prefer2G;
655 TQ_INT32 tdeGSMModeToNMGSMMode(TDEGSMNetworkType::TDEGSMNetworkType type) {
658 if (type == TDEGSMNetworkType::Only3G) {
659 ret = NM_GSM_3G_ONLY;
661 else if (type == TDEGSMNetworkType::GPRSEdge) {
662 ret = NM_GSM_GPRS_EDGE_ONLY;
664 else if (type == TDEGSMNetworkType::Prefer3G) {
665 ret = NM_GSM_PREFER_3G;
667 else if (type == TDEGSMNetworkType::Prefer2G) {
668 ret = NM_GSM_PREFER_2G;
674 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand nmWiFiFrequencyBandToTDEWiFiFrequencyBand(TQString nm) {
675 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand ret = TDEWiFiFrequencyBand::Other;
677 if (nm.lower() ==
"") {
678 ret = TDEWiFiFrequencyBand::None;
680 else if (nm.lower() ==
"bg") {
681 ret = TDEWiFiFrequencyBand::Band2_4GHz;
683 else if (nm.lower() ==
"a") {
684 ret = TDEWiFiFrequencyBand::Band5GHz;
690 TQString tdeWiFiFrequencyBandToNMWiFiFrequencyBand(TDEWiFiFrequencyBand::TDEWiFiFrequencyBand mode) {
693 if (mode == TDEWiFiFrequencyBand::None) {
694 ret = TQString::null;
696 else if (mode == TDEWiFiFrequencyBand::Band2_4GHz) {
699 else if (mode == TDEWiFiFrequencyBand::Band5GHz) {
706 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType nmWiFiKeyTypeToTDEWiFiKeyType(TQString nm) {
707 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType ret = TDENetworkWiFiKeyType::Other;
709 if (nm.lower() ==
"none") {
710 ret = TDENetworkWiFiKeyType::WEP;
712 else if (nm.lower() ==
"ieee8021x") {
713 ret = TDENetworkWiFiKeyType::DynamicWEP;
715 else if (nm.lower() ==
"wpa-none") {
716 ret = TDENetworkWiFiKeyType::WPAAdHoc;
718 else if (nm.lower() ==
"wpa-psk") {
719 ret = TDENetworkWiFiKeyType::WPAInfrastructure;
721 else if (nm.lower() ==
"wpa-eap") {
722 ret = TDENetworkWiFiKeyType::WPAEnterprise;
728 TQString tdeWiFiKeyTypeToNMWiFiKeyType(TDENetworkWiFiKeyType::TDENetworkWiFiKeyType type) {
731 if (type == TDENetworkWiFiKeyType::WEP) {
734 else if (type == TDENetworkWiFiKeyType::DynamicWEP) {
737 else if (type == TDENetworkWiFiKeyType::WPAAdHoc) {
740 else if (type == TDENetworkWiFiKeyType::WPAInfrastructure) {
743 else if (type == TDENetworkWiFiKeyType::WPAEnterprise) {
750 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType nmWiFiAuthTypeToTDEWiFiAuthType(TQString nm) {
751 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType ret = TDENetworkWiFiAuthType::Other;
753 if (nm.lower() ==
"open") {
754 ret = TDENetworkWiFiAuthType::Open;
756 else if (nm.lower() ==
"shared") {
757 ret = TDENetworkWiFiAuthType::Shared;
759 else if (nm.lower() ==
"leap") {
760 ret = TDENetworkWiFiAuthType::LEAP;
766 TQString tdeWiFiAuthTypeToNMWiFiAuthType(TDENetworkWiFiAuthType::TDENetworkWiFiAuthType type) {
769 if (type == TDENetworkWiFiAuthType::Open) {
772 else if (type == TDENetworkWiFiAuthType::Shared) {
775 else if (type == TDENetworkWiFiAuthType::LEAP) {
782 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags nmWiFiWPAVersionToTDEWiFiWPAVersion(TQStringList nm) {
783 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags ret = TDENetworkWiFiWPAVersionFlags::None;
785 if ((nm.contains(
"wpa") && nm.contains(
"rsn")) || (nm.count() < 1)) {
786 ret |= TDENetworkWiFiWPAVersionFlags::Any;
788 else if (nm.contains(
"wpa")) {
789 ret |= TDENetworkWiFiWPAVersionFlags::WPA;
791 else if (nm.contains(
"rsn")) {
792 ret |= TDENetworkWiFiWPAVersionFlags::RSN;
798 TQStringList tdeWiFiWPAVersionToNMWiFiWPAVersion(TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags type) {
801 if (type & TDENetworkWiFiWPAVersionFlags::WPA) {
804 if (type & TDENetworkWiFiWPAVersionFlags::RSN) {
811 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher nmWiFiCipherToTDEWiFiCipher(TQString nm) {
812 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher ret = TDENetworkWiFiConnectionCipher::None;
814 if (nm.lower() ==
"wep40") {
815 ret = TDENetworkWiFiConnectionCipher::CipherWEP40;
817 else if (nm.lower() ==
"wep104") {
818 ret = TDENetworkWiFiConnectionCipher::CipherWEP104;
820 else if (nm.lower() ==
"tkip") {
821 ret = TDENetworkWiFiConnectionCipher::CipherTKIP;
823 else if (nm.lower() ==
"ccmp") {
824 ret = TDENetworkWiFiConnectionCipher::CipherCCMP;
830 TQString tdeWiFiCipherToNMWiFiCipher(TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher) {
833 if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP40) {
836 else if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP104) {
839 else if (cipher == TDENetworkWiFiConnectionCipher::CipherTKIP) {
842 else if (cipher == TDENetworkWiFiConnectionCipher::CipherCCMP) {
849 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType nmSlaveTypeToTDESlaveType(TQString nm) {
850 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType ret = TDENetworkSlaveDeviceType::None;
852 if (nm.lower() ==
"bond") {
853 ret = TDENetworkSlaveDeviceType::Bond;
859 TQString tdeSlaveTypeToNMSlaveType(TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slavetype) {
862 if (slavetype == TDENetworkSlaveDeviceType::Bond) {
869 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags nmPasswordFlagsToTDEPasswordFlags(
unsigned int nm) {
870 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags ret = TDENetworkPasswordHandlingFlags::None;
872 if (nm & NM_PASSWORD_SECRET_AGENTOWNED) {
873 ret |= TDENetworkPasswordHandlingFlags::ExternalStorage;
875 if (nm & NM_PASSWORD_SECRET_NOTSAVED) {
876 ret |= TDENetworkPasswordHandlingFlags::NoSave;
878 if (nm & NM_PASSWORD_SECRET_NOTREQUIRED) {
879 ret |= TDENetworkPasswordHandlingFlags::NoPrompt;
885 unsigned int tdePasswordFlagsToNMPasswordFlags(TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags flags) {
886 unsigned int ret = 0;
888 if (flags & TDENetworkPasswordHandlingFlags::ExternalStorage) {
889 ret |= NM_PASSWORD_SECRET_AGENTOWNED;
891 if (flags & TDENetworkPasswordHandlingFlags::NoSave) {
892 ret |= NM_PASSWORD_SECRET_NOTSAVED;
894 if (flags & TDENetworkPasswordHandlingFlags::NoPrompt) {
895 ret |= NM_PASSWORD_SECRET_NOTREQUIRED;
901 TDENetworkVLANFlags::TDENetworkVLANFlags nmVLANFlagsToTDEVLANFlags(
unsigned int nm) {
902 TDENetworkVLANFlags::TDENetworkVLANFlags ret = TDENetworkVLANFlags::None;
904 if (nm & NM_VLAN_REORDER_PACKET_HEADERS) {
905 ret |= TDENetworkVLANFlags::ReorderPacketHeaders;
907 if (nm & NM_VLAN_USE_GVRP) {
908 ret |= TDENetworkVLANFlags::UseGVRP;
910 if (nm & NM_VLAN_LOOSE_BINDING) {
911 ret |= TDENetworkVLANFlags::LooseBinding;
917 unsigned int tdeVLANFlagsToNMVLANFlags(TDENetworkVLANFlags::TDENetworkVLANFlags flags) {
918 unsigned int ret = 0;
920 if (flags & TDENetworkVLANFlags::ReorderPacketHeaders) {
921 ret |= NM_VLAN_REORDER_PACKET_HEADERS;
923 if (flags & TDENetworkVLANFlags::UseGVRP) {
924 ret |= NM_VLAN_USE_GVRP;
926 if (flags & TDENetworkVLANFlags::LooseBinding) {
927 ret |= NM_VLAN_LOOSE_BINDING;
933 TDENetworkParity::TDENetworkParity nmParityToTDEParity(
char nm) {
934 TDENetworkParity::TDENetworkParity ret = TDENetworkParity::None;
937 ret = TDENetworkParity::Even;
939 else if (nm ==
'o') {
940 ret = TDENetworkParity::Odd;
946 char tdeParityToNMParity(TDENetworkParity::TDENetworkParity parity) {
949 if (parity == TDENetworkParity::Even) {
952 else if (parity == TDENetworkParity::Odd) {
959 TDENetworkWepKeyType::TDENetworkWepKeyType nmWepKeyTypeToTDEWepKeyType(
unsigned int nm, TQString key=TQString::null) {
960 TDENetworkWepKeyType::TDENetworkWepKeyType ret = TDENetworkWepKeyType::Hexadecimal;
962 if (nm == NM_WEP_TYPE_HEXADECIMAL) {
964 ret = TDENetworkWepKeyType::Hexadecimal;
967 if ((
key.length() == 10) || (
key.length() == 26)) {
968 ret = TDENetworkWepKeyType::Hexadecimal;
971 ret = TDENetworkWepKeyType::Ascii;
975 else if (nm == NM_WEP_TYPE_PASSPHRASE) {
976 ret = TDENetworkWepKeyType::Passphrase;
982 unsigned int tdeWepKeyTypeToNMWepKeyType(TDENetworkWepKeyType::TDENetworkWepKeyType type) {
983 unsigned int ret = 0;
985 if (type == TDENetworkWepKeyType::Hexadecimal) {
986 ret = NM_WEP_TYPE_HEXADECIMAL;
988 else if (type == TDENetworkWepKeyType::Ascii) {
989 ret = NM_WEP_TYPE_HEXADECIMAL;
991 else if (type == TDENetworkWepKeyType::Passphrase) {
992 ret = NM_WEP_TYPE_PASSPHRASE;
998 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags nmCapabilityFlagsToTDECapabilityFlags(
unsigned int nm) {
999 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags ret = TDENetworkDeviceCapabilityFlags::None;
1001 if (nm & NM_DEVICE_CAP_NM_SUPPORTED) {
1002 ret |= TDENetworkDeviceCapabilityFlags::Supported;
1004 if (nm & NM_DEVICE_CAP_CARRIER_DETECT) {
1005 ret |= TDENetworkDeviceCapabilityFlags::CanDetectLink;
1011 unsigned int tdeCapabilityFlagsToNMCapabilityFlags(TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags flags) {
1012 unsigned int ret = 0;
1014 if (flags & TDENetworkDeviceCapabilityFlags::Supported) {
1015 ret |= NM_DEVICE_CAP_NM_SUPPORTED;
1017 if (flags & TDENetworkDeviceCapabilityFlags::CanDetectLink) {
1018 ret |= NM_DEVICE_CAP_CARRIER_DETECT;
1024 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags nmAPSecFlagsToTDEAPSecFlags(
unsigned int genflags,
unsigned int nm) {
1025 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags ret = TDENetworkWiFiAPFlags::None;
1027 if (genflags & NM_ACCESS_POINT_CAP_PRIVACY) {
1028 ret |= TDENetworkWiFiAPFlags::PrivacySupport;
1031 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP40) {
1032 ret |= TDENetworkWiFiAPFlags::PairWEP40;
1034 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP104) {
1035 ret |= TDENetworkWiFiAPFlags::PairWEP104;
1037 if (nm & NM_ACCESS_POINT_SEC_PAIR_TKIP) {
1038 ret |= TDENetworkWiFiAPFlags::PairTKIP;
1040 if (nm & NM_ACCESS_POINT_SEC_PAIR_CCMP) {
1041 ret |= TDENetworkWiFiAPFlags::PairCCMP;
1043 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP40) {
1044 ret |= TDENetworkWiFiAPFlags::GroupWEP40;
1046 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP104) {
1047 ret |= TDENetworkWiFiAPFlags::GroupWEP104;
1049 if (nm & NM_ACCESS_POINT_SEC_GROUP_TKIP) {
1050 ret |= TDENetworkWiFiAPFlags::GroupTKIP;
1052 if (nm & NM_ACCESS_POINT_SEC_GROUP_CCMP) {
1053 ret |= TDENetworkWiFiAPFlags::GroupCCMP;
1055 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_PSK) {
1056 ret |= TDENetworkWiFiAPFlags::KeyManagementPSK;
1058 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X) {
1059 ret |= TDENetworkWiFiAPFlags::KeyManagement80211;
1065 unsigned int tdeAPSecFlagsToNMAPGenSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1066 unsigned int ret = 0;
1068 if (flags & TDENetworkWiFiAPFlags::PrivacySupport) {
1069 ret |= NM_ACCESS_POINT_CAP_PRIVACY;
1075 unsigned int tdeAPSecFlagsToNMAPSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1076 unsigned int ret = 0;
1078 if (flags & TDENetworkWiFiAPFlags::PairWEP40) {
1079 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP40;
1081 if (flags & TDENetworkWiFiAPFlags::PairWEP104) {
1082 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP104;
1084 if (flags & TDENetworkWiFiAPFlags::PairTKIP) {
1085 ret |= NM_ACCESS_POINT_SEC_PAIR_TKIP;
1087 if (flags & TDENetworkWiFiAPFlags::PairCCMP) {
1088 ret |= NM_ACCESS_POINT_SEC_PAIR_CCMP;
1090 if (flags & TDENetworkWiFiAPFlags::GroupWEP40) {
1091 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP40;
1093 if (flags & TDENetworkWiFiAPFlags::GroupWEP104) {
1094 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP104;
1096 if (flags & TDENetworkWiFiAPFlags::GroupTKIP) {
1097 ret |= NM_ACCESS_POINT_SEC_GROUP_TKIP;
1099 if (flags & TDENetworkWiFiAPFlags::GroupCCMP) {
1100 ret |= NM_ACCESS_POINT_SEC_GROUP_CCMP;
1102 if (flags & TDENetworkWiFiAPFlags::KeyManagementPSK) {
1103 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_PSK;
1105 if (flags & TDENetworkWiFiAPFlags::KeyManagement80211) {
1106 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X;
1112 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode nmIBTransportToTDEIBTransport(TQString nm) {
1113 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode ret = TDENetworkInfinibandTransportMode::Other;
1115 if (nm.lower() ==
"datagram") {
1116 ret = TDENetworkInfinibandTransportMode::Datagram;
1118 else if (nm.lower() ==
"connected") {
1119 ret = TDENetworkInfinibandTransportMode::Connected;
1125 TQString tdeIBTransportToNMIBTransport(TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode mode) {
1128 if (mode == TDENetworkInfinibandTransportMode::Datagram) {
1131 else if (mode == TDENetworkInfinibandTransportMode::Connected) {
1138 TQString TDENetworkConnectionManager_BackendNM::deviceInterfaceString(TQString deviceNode) {
1139 if (d->m_networkManagerProxy) {
1140 TQT_DBusObjectPathList devices;
1141 TQT_DBusError error;
1143 ret = d->m_networkManagerProxy->GetDevices(devices, error);
1145 TQT_DBusObjectPathList::iterator it;
1146 for (it = devices.begin(); it != devices.end(); ++it) {
1147 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, (*it));
1148 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1149 TQString deviceInterface = genericDevice.getInterface(error);
1150 if (error.isValid()) {
1152 PRINT_ERROR((error.name() +
": " + error.message()))
1155 else if (deviceInterface == deviceNode) {
1163 PRINT_ERROR((error.name() +
": " + error.message()))
1172 TQString tdeDeviceUUIDForGenericDevice(TQT_DBusObjectPath path) {
1173 TQT_DBusError error;
1174 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, path);
1175 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1176 TQString deviceInterface = genericDevice.getInterface(error);
1177 if (error.isValid()) {
1178 return TQString::null;
1181 TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
1183 return TQString::null;
1186 TDEGenericHardwareList devices = hwdevices->listByDeviceClass(TDEGenericDeviceType::Network);
1187 for (TDEGenericHardwareList::iterator it = devices.begin(); it != devices.end(); ++it) {
1188 TDENetworkDevice* dev =
dynamic_cast<TDENetworkDevice*
>(*it);
1190 if (deviceInterface == dev->deviceNode()) {
1191 return dev->uniqueID();
1196 return TQString::null;
1199 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(TDENetworkConnectionManager_BackendNMPrivate* parent) : m_parent(parent) {
1203 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::~TDENetworkConnectionManager_BackendNM_DBusSignalReceiver() {
1207 void TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::dbusSignal(
const TQT_DBusMessage& message) {
1208 if (message.type() == TQT_DBusMessage::SignalMessage) {
1209 TQString
interface = message.interface();
1210 TQString sender = message.sender();
1211 TQString member = message.member();
1212 TQString path = message.path();
1216 if (interface == NM_VPN_DBUS_CONNECTION_SERVICE) {
1217 if (member ==
"VpnStateChanged") {
1219 TQ_UINT32 state = message[0].toUInt32();
1220 TQ_UINT32 reason = message[1].toUInt32();
1221 if (state == NM_VPN_STATE_FAILED) {
1222 m_parent->internalProcessVPNFailure(reason);
1226 else if (interface == NM_DBUS_DEVICE_SERVICE) {
1227 if (path == m_parent->m_dbusDeviceString) {
1228 if (member ==
"StateChanged") {
1230 TQ_UINT32 new_state = message[0].toUInt32();
1231 TQ_UINT32 old_state = message[1].toUInt32();
1232 TQ_UINT32 reason = message[2].toUInt32();
1233 m_parent->internalProcessDeviceStateChanged(new_state, old_state, reason);
1240 TDENetworkConnectionManager_BackendNM::TDENetworkConnectionManager_BackendNM(TDENetworkDevice* networkDevice) : TDENetworkConnectionManager(networkDevice) {
1241 d =
new TDENetworkConnectionManager_BackendNMPrivate(
this);
1244 d->m_networkManagerProxy =
new DBus::NetworkManagerProxy(NM_DBUS_SERVICE, NM_DBUS_PATH);
1245 d->m_networkManagerProxy->setConnection(TQT_DBusConnection::systemBus());
1246 d->m_networkManagerSettings =
new DBus::SettingsInterface(NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS);
1247 d->m_networkManagerSettings->setConnection(TQT_DBusConnection::systemBus());
1248 d->m_vpnProxy =
new DBus::VPNPluginProxy(NM_VPN_DBUS_PLUGIN_SERVICE, NM_VPN_DBUS_PLUGIN_PATH);
1249 d->m_vpnProxy->setConnection(TQT_DBusConnection::systemBus());
1251 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
1252 if (d->m_dbusDeviceString !=
"") {
1253 d->m_networkDeviceProxy =
new DBus::DeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1254 d->m_networkDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1255 if (deviceType() == TDENetworkDeviceType::WiFi) {
1256 d->m_wiFiDeviceProxy =
new DBus::WiFiDeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1257 d->m_wiFiDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1262 connect(d->m_networkManagerProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessGlobalStateChanged(TQ_UINT32)));
1265 if (d->m_vpnProxy) {
1266 connect(d->m_vpnProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessVPNStateChanged(TQ_UINT32)));
1267 connect(d->m_vpnProxy, SIGNAL(LoginBanner(
const TQString&)), d, SLOT(internalProcessVPNLoginBanner(
const TQString&)));
1268 connect(d->m_vpnProxy, SIGNAL(Failure(TQ_UINT32)), d, SLOT(internalProcessVPNFailure(TQ_UINT32)));
1272 if (d->m_networkDeviceProxy) {
1273 connect(d->m_networkDeviceProxy, SIGNAL(StateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)), d, SLOT(internalProcessDeviceStateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)));
1275 if (d->m_wiFiDeviceProxy) {
1276 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointAdded(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath&)));
1277 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointRemoved(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath&)));
1278 connect(d->m_wiFiDeviceProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)), d, SLOT(internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1282 m_connectionList =
new TDENetworkConnectionList;
1283 m_hwNeighborList =
new TDENetworkHWNeighborList;
1289 TDENetworkConnectionManager_BackendNM::~TDENetworkConnectionManager_BackendNM() {
1291 clearTDENetworkConnectionList();
1292 delete m_connectionList;
1293 clearTDENetworkHWNeighborList();
1294 delete m_hwNeighborList;
1297 if (d->m_networkManagerProxy)
delete d->m_networkManagerProxy;
1298 if (d->m_networkManagerSettings)
delete d->m_networkManagerSettings;
1299 if (d->m_networkDeviceProxy)
delete d->m_networkDeviceProxy;
1304 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessGlobalStateChanged(TQ_UINT32 state) {
1305 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1308 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNStateChanged(TQ_UINT32 state) {
1309 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1312 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNLoginBanner(
const TQString& banner) {
1313 m_parent->internalVpnEvent(TDENetworkVPNEventType::LoginBanner, banner);
1316 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNFailure(TQ_UINT32 reason) {
1319 m_parent->internalVpnEvent(TDENetworkVPNEventType::Failure, TQString(
"VPN connection attempt failed!<br>NetworkManager returned error %1.").arg(reason));
1322 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessDeviceStateChanged(TQ_UINT32 newState, TQ_UINT32 oldState, TQ_UINT32 reason) {
1325 if (m_prevDeviceState == newState) return;
1326 m_prevDeviceState = newState;
1328 if (newState == NM_DEVICE_STATE_FAILED) {
1329 TQString errorString;
1330 if (reason == NM_DEVICE_STATE_REASON_NONE) {
1331 errorString = TQString(
"Connection attempt failed!");
1333 else if (reason == NM_DEVICE_STATE_REASON_UNKNOWN) {
1334 errorString = TQString(
"Connection attempt failed!<br>Unknown error detected.");
1336 else if (reason == NM_DEVICE_STATE_REASON_NOW_MANAGED) {
1337 errorString = TQString(
"Connection attempt failed!<br>Network device is now managed.");
1339 else if (reason == NM_DEVICE_STATE_REASON_NOW_UNMANAGED) {
1340 errorString = TQString(
"Connection attempt failed!<br>Network device is now unmanaged.");
1342 else if (reason == NM_DEVICE_STATE_REASON_CONFIG_FAILED) {
1343 errorString = TQString(
"Connection attempt failed!<br>Configuration failed.");
1345 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE) {
1346 errorString = TQString(
"Connection attempt failed!<br>IP configuration unavailable.");
1348 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED) {
1349 errorString = TQString(
"Connection attempt failed!<br>IP configuration expired.");
1351 else if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
1352 errorString =
i18n(
"Connection attempt failed!<br>Secrets were required to establish a connection, but no secrets were available.");
1354 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT) {
1355 errorString = TQString(
"Connection attempt failed!<br>The supplicant was disconnected while attempting to establish a wireless connection.");
1357 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED) {
1358 errorString = TQString(
"Connection attempt failed!<br>Supplicant configuration failed while attempting to establish a wireless connection.");
1360 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED) {
1361 errorString =
i18n(
"Connection attempt failed!<br>The supplicant failed while attempting to establish a wireless connection.");
1363 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT) {
1364 errorString =
i18n(
"Connection attempt failed!<br>The supplicant timed out while attempting to establish a wireless connection.");
1366 else if (reason == NM_DEVICE_STATE_REASON_PPP_START_FAILED) {
1367 errorString =
i18n(
"Connection attempt failed!<br>The PPP client failed to start.");
1369 else if (reason == NM_DEVICE_STATE_REASON_PPP_DISCONNECT) {
1370 errorString =
i18n(
"Connection attempt failed!<br>The PPP client was disconnected.");
1372 else if (reason == NM_DEVICE_STATE_REASON_PPP_FAILED) {
1373 errorString =
i18n(
"Connection attempt failed!<br>Unknown PPP failure.");
1375 else if (reason == NM_DEVICE_STATE_REASON_DHCP_START_FAILED) {
1376 errorString =
i18n(
"Connection attempt failed!<br>The DHCP client failed to start.");
1378 else if (reason == NM_DEVICE_STATE_REASON_DHCP_ERROR) {
1379 errorString =
i18n(
"Connection attempt failed!<br>The DHCP client encountered an error.");
1381 else if (reason == NM_DEVICE_STATE_REASON_DHCP_FAILED) {
1382 errorString =
i18n(
"Connection attempt failed!<br>Uknown DHCP failure.");
1384 else if (reason == NM_DEVICE_STATE_REASON_SHARED_START_FAILED) {
1385 errorString =
i18n(
"Connection attempt failed!<br>The connection sharing service failed to start.");
1387 else if (reason == NM_DEVICE_STATE_REASON_SHARED_FAILED) {
1388 errorString =
i18n(
"Connection attempt failed!<br>The connection sharing service encountered an error.");
1390 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED) {
1391 errorString =
i18n(
"Connection attempt failed!<br>The AutoIP service failed to start.");
1393 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_ERROR) {
1394 errorString =
i18n(
"Connection attempt failed!<br>The AutoIP service encountered an error.");
1396 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_FAILED) {
1397 errorString =
i18n(
"Connection attempt failed!<br>Unknown AutoIP failure.");
1399 else if (reason == NM_DEVICE_STATE_REASON_MODEM_BUSY) {
1400 errorString =
i18n(
"Connection attempt failed!<br>Modem was busy.");
1402 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE) {
1403 errorString =
i18n(
"Connection attempt failed!<br>No dial tone.");
1405 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER) {
1406 errorString =
i18n(
"Connection attempt failed!<br>No carrier detected.");
1408 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT) {
1409 errorString =
i18n(
"Connection attempt failed!<br>Modem timed out while dialing.");
1411 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED) {
1412 errorString =
i18n(
"Connection attempt failed!<br>The modem failed to dial.");
1414 else if (reason == NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED) {
1415 errorString =
i18n(
"Connection attempt failed!<br>Modem initialization failed.");
1417 else if (reason == NM_DEVICE_STATE_REASON_GSM_APN_FAILED) {
1418 errorString =
i18n(
"Connection attempt failed!<br>GSM APN failure.");
1420 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING) {
1421 errorString =
i18n(
"Connection attempt failed!<br>GSM registration failed to search for networks.");
1423 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED) {
1424 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt was rejected.");
1426 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT) {
1427 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt timed out.");
1429 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED) {
1430 errorString =
i18n(
"Connection attempt failed!<br>GSM registration attempt failed.");
1432 else if (reason == NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED) {
1433 errorString =
i18n(
"Connection attempt failed!<br>GSM PIN check failed.");
1435 else if (reason == NM_DEVICE_STATE_REASON_FIRMWARE_MISSING) {
1436 errorString =
i18n(
"Connection attempt failed!<br>Network device firmware is missing.");
1438 else if (reason == NM_DEVICE_STATE_REASON_REMOVED) {
1439 errorString =
i18n(
"Connection attempt failed!<br>Network device was removed.");
1441 else if (reason == NM_DEVICE_STATE_REASON_SLEEPING) {
1442 errorString =
i18n(
"Connection attempt failed!<br>Network device is sleeping.");
1444 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_REMOVED) {
1445 errorString =
i18n(
"Connection attempt failed!<br>Connection was removed.");
1447 else if (reason == NM_DEVICE_STATE_REASON_USER_REQUESTED) {
1448 errorString =
i18n(
"Connection attempt failed!<br>User requested device disconnection.");
1450 else if (reason == NM_DEVICE_STATE_REASON_CARRIER) {
1451 errorString =
i18n(
"Connection attempt failed!<br>Carrier or link status changed.");
1453 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED) {
1454 errorString =
i18n(
"Connection attempt failed!<br>Device and/or connection already active.");
1456 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE) {
1457 errorString =
i18n(
"Connection attempt failed!<br>The supplicant is now available.");
1459 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND) {
1460 errorString =
i18n(
"Connection attempt failed!<br>Requested modem was not found.");
1462 else if (reason == NM_DEVICE_STATE_REASON_BT_FAILED) {
1463 errorString =
i18n(
"Connection attempt failed!<br>Bluetooth connection timeout.");
1465 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED) {
1466 errorString =
i18n(
"Connection attempt failed!<br>GSM SIM not inserted.");
1468 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED) {
1469 errorString =
i18n(
"Connection attempt failed!<br>GSM PIN required.");
1471 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED) {
1472 errorString =
i18n(
"Connection attempt failed!<br>GSM PUK required.");
1474 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_WRONG) {
1475 errorString =
i18n(
"Connection attempt failed!<br>GSM SIM incorrect.");
1477 else if (reason == NM_DEVICE_STATE_REASON_INFINIBAND_MODE) {
1478 errorString =
i18n(
"Connection attempt failed!<br>Incorrect Infiniband mode.");
1480 else if (reason == NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED) {
1481 errorString =
i18n(
"Connection attempt failed!<br>Dependency failure.");
1483 else if (reason == NM_DEVICE_STATE_REASON_BR2684_FAILED) {
1484 errorString =
i18n(
"Connection attempt failed!<br>Unknown bridge failure.");
1486 else if (reason == NM_DEVICE_STATE_REASON_MODEM_MANAGER_UNAVAILABLE) {
1487 errorString =
i18n(
"Connection attempt failed!<br>ModemManager not available.");
1489 else if (reason == NM_DEVICE_STATE_REASON_SSID_NOT_FOUND) {
1490 errorString =
i18n(
"Connection attempt failed!<br>SSID not found.");
1492 else if (reason == NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED) {
1493 errorString =
i18n(
"Connection attempt failed!<br>Secondary connection failure.");
1498 errorString = TQString(
"Connection attempt failed!<br>NetworkManager returned error %1.").arg(reason);
1500 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::Failure, errorString);
1503 m_parent->internalNetworkDeviceStateChanged(nmDeviceStateToTDEDeviceState(newState), m_parent->deviceNode());
1506 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath& dbuspath) {
1507 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1509 if (!m_accessPointProxyList.contains(dbuspath)) {
1511 DBus::AccessPointProxy* apProxy =
new DBus::AccessPointProxy(NM_DBUS_SERVICE, dbuspath);
1512 apProxy->setConnection(TQT_DBusConnection::systemBus());
1513 connect(apProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)),
this, SLOT(internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1514 m_accessPointProxyList[dbuspath] = (apProxy);
1517 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Discovered);
1523 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath& dbuspath) {
1524 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1527 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Lost);
1531 DBus::AccessPointProxy* apProxy = m_accessPointProxyList[dbuspath];
1532 m_accessPointProxyList.remove(dbuspath);
1539 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1540 if (m_wiFiDeviceProxy) {
1541 if (props.contains(
"ActiveAccessPoint")) {
1542 TQT_DBusError error;
1543 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(m_wiFiDeviceProxy->getActiveAccessPoint(error));
1545 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::AccessPointChanged);
1548 else if (props.contains(
"Bitrate")) {
1549 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::BitRateChanged, TQString::null);
1554 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1555 const DBus::AccessPointProxy* apProxy =
dynamic_cast<const DBus::AccessPointProxy*
>(sender());
1557 TQT_DBusError error;
1558 TDEMACAddress BSSID;
1559 BSSID.fromString(apProxy->getHwAddress(error));
1560 if (props.contains(
"Strength")) {
1561 m_parent->internalAccessPointStatusChanged(BSSID, TDENetworkAPEventType::SignalStrengthChanged);
1566 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::deviceType() {
1567 if (!m_networkDevice) {
1568 return TDENetworkDeviceType::BackendOnly;
1571 if (d->m_dbusDeviceString !=
"") {
1573 TQT_DBusError error;
1574 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
1575 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1576 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1577 TDENetworkDeviceType::TDENetworkDeviceType ret = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error));
1578 if (error.isValid()) {
1580 PRINT_ERROR((error.name() +
": " + error.message()))
1581 return TDENetworkDeviceType::Other;
1589 PRINT_ERROR(TQString(
"Invalid DBUS device string '%1'").arg(d->m_dbusDeviceString))
1590 return TDENetworkDeviceType::Other;
1595 TDENetworkConnectionType::TDENetworkConnectionType TDENetworkConnectionManager_BackendNM::connectionType(TQString dbusPath) {
1596 TDENetworkConnectionType::TDENetworkConnectionType connType = TDENetworkConnectionType::Other;
1598 TQT_DBusError error;
1601 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1602 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1603 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1605 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1606 if (ret && error.isValid()) {
1608 PRINT_ERROR((error.name() +
": " + error.message()))
1612 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1613 TQTimer nmCallTimeoutTimer;
1614 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
1615 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1616 tqApp->processEvents();
1617 if (!nmCallTimeoutTimer.isActive()) {
1618 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1622 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1623 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1624 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1625 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1627 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1628 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1629 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1633 TQT_DBusTQStringDataMap::const_iterator it2;
1634 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1635 TQString outerKeyValue = it2.key();
1636 TQT_DBusData dataValue = it2.data();
1638 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
1639 TQT_DBusTQStringDataMap::const_iterator it3;
1640 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
1641 TQString keyValue = it3.key();
1642 TQT_DBusData dataValue = it3.data();
1643 if (dataValue.type() == TQT_DBusData::Variant) {
1644 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
1645 TQT_DBusData dataValue2 = dataValueVariant.value;
1646 if (dataValue2.type() != TQT_DBusData::Variant) {
1647 if (outerKeyValue.lower() ==
"connection") {
1648 if (keyValue.lower() ==
"type") {
1649 connType = nmConnectionTypeToTDEConnectionType(dataValue2.toString());
1661 TQString TDENetworkConnectionManager_BackendNM::backendName() {
1662 return i18n(
"NetworkManager");
1665 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags TDENetworkConnectionManager_BackendNM::backendStatus() {
1666 if (d->m_networkManagerProxy) {
1668 TQT_DBusError error;
1669 ret = d->m_networkManagerProxy->getState(error);
1670 if (error.isValid()) {
1672 PRINT_ERROR((error.name() +
": " + error.message()))
1673 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1676 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags globalFlags = nmGlobalStateToTDEGlobalState(ret);
1677 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags vpnFlags = TDENetworkGlobalManagerFlags::Unknown;
1678 if (d->m_vpnProxy) {
1679 ret = d->m_vpnProxy->getState(error);
1680 if (error.isValid()) {
1682 bool print_error =
true;
1683 if (error.name() ==
"org.freedesktop.DBus.Error.ServiceUnknown") {
1684 if (d->vpn_service_error_notified) {
1685 print_error =
false;
1688 d->vpn_service_error_notified =
true;
1692 PRINT_ERROR(TQString(
"Attempting to access the network-manager VPN service returned: %1").arg(error.name() +
": " + error.message()))
1694 vpnFlags = TDENetworkGlobalManagerFlags::VPNUnknown;
1697 vpnFlags = nmVPNStateToTDEGlobalState(ret);
1700 return globalFlags | vpnFlags;
1704 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1708 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceInformation() {
1709 TQT_DBusError error;
1710 TDENetworkDeviceInformation ret;
1712 if (d->m_networkDeviceProxy) {
1713 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1714 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1715 ret.backendDriver = d->m_networkDeviceProxy->getDriver(error);
1716 ret.backendDriverVersion = d->m_networkDeviceProxy->getDriverVersion(error);
1717 ret.firmwareVersion = d->m_networkDeviceProxy->getFirmwareVersion(error);
1718 ret.capabilityFlags = nmCapabilityFlagsToTDECapabilityFlags(d->m_networkDeviceProxy->getCapabilities(error));
1720 ret.managed = d->m_networkDeviceProxy->getManaged(error);
1721 ret.autoConnect = d->m_networkDeviceProxy->getAutoconnect(error);
1722 ret.firmwareMissing = d->m_networkDeviceProxy->getFirmwareMissing(error);
1723 ret.deviceType = nmDeviceTypeToTDEDeviceType(d->m_networkDeviceProxy->getDeviceType(error));
1724 if (error.isValid()) {
1726 bool print_error =
true;
1727 if (error.name() ==
"org.freedesktop.DBus.Error.AccessDenied") {
1728 if (error.message().contains(
"org.freedesktop.NetworkManager.Device")) {
1731 ret.autoConnect =
true;
1732 if (d->device_autoconnect_error_notified) {
1733 print_error =
false;
1736 d->device_autoconnect_error_notified =
true;
1741 PRINT_ERROR((error.name() +
": " + error.message()))
1745 error = TQT_DBusError();
1749 if ((deviceType() == TDENetworkDeviceType::WiFi) && (d->m_wiFiDeviceProxy)) {
1750 ret.wiFiInfo.valid =
true;
1751 ret.wiFiInfo.hwAddress.fromString(d->m_wiFiDeviceProxy->getHwAddress(error));
1752 ret.wiFiInfo.permanentHWAddress.fromString(d->m_wiFiDeviceProxy->getPermHwAddress(error));
1753 ret.wiFiInfo.operatingMode = nmWiFiModeToTDEWiFiMode(d->m_wiFiDeviceProxy->getMode(error));
1754 ret.wiFiInfo.bitrate = d->m_wiFiDeviceProxy->getBitrate(error);
1755 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(d->m_wiFiDeviceProxy->getActiveAccessPoint(error));
1756 if (error.isValid()) {
1757 PRINT_ERROR((error.name() +
": " + error.message()))
1760 error = TQT_DBusError();
1763 ret.wiFiInfo.activeAccessPointBSSID = apInfo->BSSID;
1764 TDENetworkWiFiAPInfo* neighborListAPInfo = findAccessPointByBSSID(ret.wiFiInfo.activeAccessPointBSSID);
1765 if (neighborListAPInfo) {
1766 *neighborListAPInfo = *apInfo;
1771 ret.wiFiInfo.activeAccessPointBSSID = TDEMACAddress();
1773 ret.wiFiInfo.wirelessFlags = tdeWiFiFlagsToNMWiFiFlags(d->m_wiFiDeviceProxy->getWirelessCapabilities(error));
1776 ret.wiFiInfo.valid =
false;
1780 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1781 if (!error.isValid()) {
1782 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1783 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1784 ret.activeConnectionUUID = activeConnection.getUuid(error);
1785 if (error.isValid()) {
1786 ret.activeConnectionUUID = TQString::null;
1796 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceStatus() {
1797 TQT_DBusError error;
1798 TDENetworkDeviceInformation ret;
1800 if (d->m_networkDeviceProxy) {
1801 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1802 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1805 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1806 if (!error.isValid()) {
1807 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1808 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1809 ret.activeConnectionUUID = activeConnection.getUuid(error);
1810 if (error.isValid()) {
1811 ret.activeConnectionUUID = TQString::null;
1821 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncReply(
int asyncCallId,
const TQT_DBusDataMap<TQString>& settings) {
1822 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1823 nmConnectionSettingsAsyncSettingsResponse[asyncCallId] = settings;
1826 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncReply(
int asyncCallId) {
1827 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1830 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncReply(
int asyncCallId,
const TQT_DBusObjectPath& path) {
1831 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1832 nmAddConnectionAsyncResponse[asyncCallId] = path;
1835 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1836 nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallId] = error;
1839 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1840 nmConnectionSettingsUpdateAsyncSettingsErrorResponse[asyncCallId] = error;
1843 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1844 nmAddConnectionAsyncErrorResponse[asyncCallId] = error;
1847 void TDENetworkConnectionManager_BackendNM::loadConnectionInformation() {
1848 if (d->nonReentrantCallActive)
return;
1850 d->nonReentrantCallActive =
true;
1852 TDEMACAddress deviceMACAddress;
1853 deviceMACAddress.fromString(this->deviceMACAddress());
1855 if (d->m_networkManagerSettings) {
1856 clearTDENetworkConnectionList();
1857 TQT_DBusObjectPathList connections;
1858 TQT_DBusError error;
1861 ret = d->m_networkManagerSettings->ListConnections(connections, error);
1863 TQT_DBusObjectPathList::iterator it;
1864 for (it = connections.begin(); it != connections.end(); ++it) {
1865 TDENetworkConnection* connection;
1866 TDEWiredEthernetConnection* ethernetConnection = NULL;
1867 TDEWiredInfinibandConnection* infinibandConnection = NULL;
1868 TDEWiFiConnection* wiFiConnection = NULL;
1869 TDEVPNConnection* vpnConnection = NULL;
1870 TDEWiMaxConnection* wiMaxConnection = NULL;
1871 TDEVLANConnection* vlanConnection = NULL;
1872 TDEOLPCMeshConnection* olpcMeshConnection = NULL;
1873 TDEBluetoothConnection* bluetoothConnection = NULL;
1874 TDEModemConnection* modemConnection = NULL;
1875 TDENetworkConnectionType::TDENetworkConnectionType connType = connectionType((*it));
1876 if (connType == TDENetworkConnectionType::WiredEthernet) {
1877 connection = ethernetConnection =
new TDEWiredEthernetConnection;
1879 else if (connType == TDENetworkConnectionType::Infiniband) {
1880 connection = infinibandConnection =
new TDEWiredInfinibandConnection;
1882 else if (connType == TDENetworkConnectionType::WiFi) {
1883 connection = wiFiConnection =
new TDEWiFiConnection;
1885 else if (connType == TDENetworkConnectionType::VPN) {
1886 connection = vpnConnection =
new TDEVPNConnection;
1888 else if (connType == TDENetworkConnectionType::WiMax) {
1889 connection = wiMaxConnection =
new TDEWiMaxConnection;
1891 else if (connType == TDENetworkConnectionType::VLAN) {
1892 connection = vlanConnection =
new TDEVLANConnection;
1894 else if (connType == TDENetworkConnectionType::OLPCMesh) {
1895 connection = olpcMeshConnection =
new TDEOLPCMeshConnection;
1897 else if (connType == TDENetworkConnectionType::Bluetooth) {
1898 connection = bluetoothConnection =
new TDEBluetoothConnection;
1900 else if (connType == TDENetworkConnectionType::Modem) {
1901 connection = modemConnection =
new TDEModemConnection;
1904 connection =
new TDENetworkConnection;
1907 connection->ipConfig.connectionFlags = TDENetworkIPConfigurationFlags::IPV4DHCPIP | \
1908 TDENetworkIPConfigurationFlags::IPV4DHCPDNS | \
1909 TDENetworkIPConfigurationFlags::IPV4DHCPRoutes | \
1910 TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute | \
1911 TDENetworkIPConfigurationFlags::IPV6DHCPIP | \
1912 TDENetworkIPConfigurationFlags::IPV6DHCPDNS | \
1913 TDENetworkIPConfigurationFlags::IPV6DHCPRoutes | \
1914 TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
1919 connection->autoConnect =
true;
1921 if (wiFiConnection) {
1922 wiFiConnection->securitySettings.authType = TDENetworkWiFiAuthType::Open;
1925 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1926 printf(
"[network-manager comm debug] %s\n", (*it).data()); fflush(stdout);
1927 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1930 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
1931 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1932 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1933 connect(&connectionSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processConnectionSettingsAsyncError(
int,
const TQT_DBusError)));
1935 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1936 if (ret && error.isValid()) {
1938 PRINT_ERROR((error.name() +
": " + error.message()))
1942 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1943 TQTimer nmCallTimeoutTimer;
1944 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
1945 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1946 tqApp->processEvents();
1947 if (!nmCallTimeoutTimer.isActive()) {
1948 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1952 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1953 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1954 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1955 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1957 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1958 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1959 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1962 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1963 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
1964 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
1965 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1968 TQT_DBusTQStringDataMap::const_iterator it2;
1969 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1970 TQString outerKeyValue = it2.key();
1971 TQT_DBusData dataValue = it2.data();
1972 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1973 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
1974 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1975 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
1976 TQT_DBusTQStringDataMap::const_iterator it3;
1977 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
1978 TQString keyValue = it3.key();
1979 TQT_DBusData dataValue = it3.data();
1980 if (dataValue.type() != TQT_DBusData::Variant) {
1981 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1982 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
1983 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1987 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
1988 TQT_DBusData dataValue2 = dataValueVariant.value;
1989 if (dataValue2.type() != TQT_DBusData::Variant) {
1990 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1991 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);
1992 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
1994 if (outerKeyValue.lower() ==
"connection") {
1995 if (keyValue.lower() ==
"id") {
1996 connection->friendlyName = dataValue2.toString();
1998 else if (keyValue.lower() ==
"uuid") {
1999 connection->UUID = dataValue2.toString().lower();
2001 else if (keyValue.lower() ==
"permissions") {
2002 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2003 TQT_DBusDataValueList::const_iterator it4;
2004 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2005 TQT_DBusData innerDataValue = *it4;
2006 TQString authString = innerDataValue.toString();
2007 TQStringList pieces = TQStringList::split(
":", authString);
2008 if (pieces[0].lower() ==
"user") {
2009 connection->authorizedUsers.append(pieces[1]);
2013 else if (keyValue.lower() ==
"autoconnect") {
2014 connection->autoConnect = dataValue2.toBool();
2016 else if (keyValue.lower() ==
"read-only") {
2017 connection->readOnly = dataValue2.toBool();
2019 else if (keyValue.lower() ==
"master") {
2020 connection->masterConnectionUUID = dataValue2.toString().lower();
2022 else if (keyValue.lower() ==
"slave-type") {
2023 connection->slaveType = nmSlaveTypeToTDESlaveType(dataValue2.toString());
2025 else if (keyValue.lower() ==
"timestamp") {
2026 connection->lastKnownConnection.setTime_t(dataValue2.toUInt64());
2029 else if (outerKeyValue.lower() ==
"802-1x") {
2030 if (keyValue.lower() ==
"eap") {
2031 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2032 TQT_DBusDataValueList::const_iterator it4;
2034 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2035 TQT_DBusData innerDataValue = *it4;
2038 connection->eapConfig.type = nmEAPTypeToTDEEAPType(innerDataValue.toString());
2043 else if (keyValue.lower() ==
"identity") {
2044 connection->eapConfig.userName = dataValue2.toString();
2046 else if (keyValue.lower() ==
"anonymous-identity") {
2047 connection->eapConfig.anonymousUserName = dataValue2.toString();
2049 else if (keyValue.lower() ==
"pac-file") {
2050 connection->eapConfig.pacFileName = dataValue2.toString();
2052 else if (keyValue.lower() ==
"ca-cert") {
2053 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2054 TQT_DBusDataValueList::const_iterator it4;
2056 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2057 TQT_DBusData innerDataValue = *it4;
2059 connection->eapConfig.caCertificate.resize(count+1);
2060 connection->eapConfig.caCertificate[count] = innerDataValue.toByte();
2063 else if (keyValue.lower() ==
"ca-path") {
2064 connection->eapConfig.additionalCAFilesPath = dataValue2.toString();
2066 else if (keyValue.lower() ==
"subject-match") {
2067 connection->eapConfig.authServerCertSubjectMatch = dataValue2.toString();
2069 else if (keyValue.lower() ==
"altsubject-matches") {
2070 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2071 TQT_DBusDataValueList::const_iterator it4;
2072 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2073 TQT_DBusData innerDataValue = *it4;
2074 connection->eapConfig.alternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2077 else if (keyValue.lower() ==
"client-cert") {
2078 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2079 TQT_DBusDataValueList::const_iterator it4;
2081 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2082 TQT_DBusData innerDataValue = *it4;
2084 connection->eapConfig.clientCertificate.resize(count+1);
2085 connection->eapConfig.clientCertificate[count] = innerDataValue.toByte();
2088 else if (keyValue.lower() ==
"phase1-peapver") {
2089 connection->eapConfig.forcePEAPVersion = dataValue2.toString();
2091 else if (keyValue.lower() ==
"phase1-peaplabel") {
2092 connection->eapConfig.forcePEAPLabel = dataValue2.toString();
2094 else if (keyValue.lower() ==
"phase1-fast-provisioning") {
2095 connection->eapConfig.fastProvisioningFlags = nmEAPFastFlagsToTDEEAPFastFlags(dataValue2.toString());
2097 else if (keyValue.lower() ==
"phase2-auth") {
2098 connection->eapConfig.phase2NonEAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2100 else if (keyValue.lower() ==
"phase2-autheap") {
2101 connection->eapConfig.phase2EAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2103 else if (keyValue.lower() ==
"phase2-ca-cert") {
2104 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2105 TQT_DBusDataValueList::const_iterator it4;
2107 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2108 TQT_DBusData innerDataValue = *it4;
2110 connection->eapConfig.phase2CaCertificate.resize(count+1);
2111 connection->eapConfig.phase2CaCertificate[count] = innerDataValue.toByte();
2114 else if (keyValue.lower() ==
"phase2-ca-path") {
2115 connection->eapConfig.phase2CaFilesPath = dataValue2.toString();
2117 else if (keyValue.lower() ==
"phase2-subject-match") {
2118 connection->eapConfig.phase2AuthServerCertSubjectMatch = dataValue2.toString();
2120 else if (keyValue.lower() ==
"phase2-altsubject-matches") {
2121 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2122 TQT_DBusDataValueList::const_iterator it4;
2123 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2124 TQT_DBusData innerDataValue = *it4;
2125 connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2128 else if (keyValue.lower() ==
"phase2-client-cert") {
2129 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2130 TQT_DBusDataValueList::const_iterator it4;
2132 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2133 TQT_DBusData innerDataValue = *it4;
2135 connection->eapConfig.phase2ClientCertificate.resize(count+1);
2136 connection->eapConfig.phase2ClientCertificate[count] = innerDataValue.toByte();
2139 else if (keyValue.lower() ==
"password-flags") {
2140 connection->eapConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2142 else if (keyValue.lower() ==
"password-raw-flags") {
2143 connection->eapConfig.binaryPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2145 else if (keyValue.lower() ==
"private-key") {
2146 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2147 TQT_DBusDataValueList::const_iterator it4;
2149 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2150 TQT_DBusData innerDataValue = *it4;
2152 connection->eapConfig.privateKey.resize(count+1);
2153 connection->eapConfig.privateKey[count] = innerDataValue.toByte();
2156 else if (keyValue.lower() ==
"private-key-password-flags") {
2157 connection->eapConfig.privateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2159 else if (keyValue.lower() ==
"phase2-private-key") {
2160 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2161 TQT_DBusDataValueList::const_iterator it4;
2163 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2164 TQT_DBusData innerDataValue = *it4;
2166 connection->eapConfig.phase2PrivateKey.resize(count+1);
2167 connection->eapConfig.phase2PrivateKey[count] = innerDataValue.toByte();
2170 else if (keyValue.lower() ==
"phase2-private-key-password-flags") {
2171 connection->eapConfig.phase2PrivateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2173 else if (keyValue.lower() ==
"system-ca-certs") {
2174 connection->eapConfig.forceSystemCaCertificates = dataValue2.toBool();
2176 connection->eapConfig.valid =
true;
2178 else if (outerKeyValue.lower() ==
"802-3-ethernet") {
2179 if (keyValue.lower() ==
"duplex") {
2180 connection->fullDuplex = (dataValue2.toString().lower() ==
"full")?
true:
false;
2182 else if (keyValue.lower() ==
"mac-address") {
2183 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2184 TQT_DBusDataValueList::const_iterator it4;
2185 TDENetworkByteList macAddress;
2186 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2187 TQT_DBusData innerDataValue = *it4;
2188 macAddress.append(innerDataValue.toByte());
2190 connection->lockedHWAddress.setAddress(macAddress);
2192 else if (keyValue.lower() ==
"cloned-mac-address") {
2193 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2194 TQT_DBusDataValueList::const_iterator it4;
2195 TDENetworkByteList macAddress;
2196 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2197 TQT_DBusData innerDataValue = *it4;
2198 macAddress.append(innerDataValue.toByte());
2200 connection->manualHWAddress.setAddress(macAddress);
2202 else if (keyValue.lower() ==
"mtu") {
2203 connection->mtu = dataValue2.toUInt32();
2206 else if (outerKeyValue.lower() ==
"infiniband") {
2207 if (keyValue.lower() ==
"mac-address") {
2208 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2209 TQT_DBusDataValueList::const_iterator it4;
2210 TDENetworkByteList macAddress;
2211 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2212 TQT_DBusData innerDataValue = *it4;
2213 macAddress.append(innerDataValue.toByte());
2215 connection->lockedHWAddress.setAddress(macAddress);
2217 else if (keyValue.lower() ==
"mtu") {
2218 connection->mtu = dataValue2.toUInt32();
2220 else if (keyValue.lower() ==
"transport-mode") {
2221 infinibandConnection->transportMode = nmIBTransportToTDEIBTransport(dataValue2.toString());
2224 else if (outerKeyValue.lower() ==
"802-11-wireless") {
2225 if (keyValue.lower() ==
"ssid") {
2226 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2227 TQT_DBusDataValueList::const_iterator it4;
2229 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2230 TQT_DBusData innerDataValue = *it4;
2231 wiFiConnection->SSID.resize(count+1);
2232 wiFiConnection->SSID[count] = innerDataValue.toByte();
2236 else if (keyValue.lower() ==
"mac-address") {
2237 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2238 TQT_DBusDataValueList::const_iterator it4;
2239 TDENetworkByteList macAddress;
2240 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2241 TQT_DBusData innerDataValue = *it4;
2242 macAddress.append(innerDataValue.toByte());
2244 connection->lockedHWAddress.setAddress(macAddress);
2246 else if (keyValue.lower() ==
"cloned-mac-address") {
2247 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2248 TQT_DBusDataValueList::const_iterator it4;
2249 TDENetworkByteList macAddress;
2250 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2251 TQT_DBusData innerDataValue = *it4;
2252 macAddress.append(innerDataValue.toByte());
2254 connection->manualHWAddress.setAddress(macAddress);
2256 else if (keyValue.lower() ==
"mtu") {
2257 connection->mtu = dataValue2.toUInt32();
2259 else if (keyValue.lower() ==
"mode") {
2260 wiFiConnection->operatingMode = nmWiFiModeToTDEWiFiMode(dataValue2.toString());
2262 else if (keyValue.lower() ==
"band") {
2263 wiFiConnection->bandRestriction = nmWiFiFrequencyBandToTDEWiFiFrequencyBand(dataValue2.toString());
2265 else if (keyValue.lower() ==
"channel") {
2266 wiFiConnection->channelRestriction = dataValue2.toUInt32();
2267 if (wiFiConnection->channelRestriction == 0) wiFiConnection->channelRestriction = -1;
2269 else if (keyValue.lower() ==
"rate") {
2270 wiFiConnection->bitRateRestriction = dataValue2.toUInt32()*1000;
2271 if (wiFiConnection->bitRateRestriction == 0) wiFiConnection->bitRateRestriction = -1;
2273 else if (keyValue.lower() ==
"tx-power") {
2274 wiFiConnection->powerRestriction = dataValue2.toUInt32();
2275 if (wiFiConnection->powerRestriction == 0) wiFiConnection->powerRestriction = -1;
2277 else if (keyValue.lower() ==
"bssid") {
2278 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2279 TQT_DBusDataValueList::const_iterator it4;
2280 TDENetworkByteList macAddress;
2281 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2282 TQT_DBusData innerDataValue = *it4;
2283 macAddress.append(innerDataValue.toByte());
2285 wiFiConnection->accessPointRestriction.setAddress(macAddress);
2287 else if (keyValue.lower() ==
"mac-address-blacklist") {
2288 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2289 TQT_DBusDataValueList::const_iterator it4;
2290 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2291 TQT_DBusData innerDataValue = *it4;
2292 TDEMACAddress hwAddress;
2293 hwAddress.fromString(innerDataValue.toString());
2294 wiFiConnection->blacklistedBSSIDs.append(hwAddress);
2297 else if (keyValue.lower() ==
"seen-bssids") {
2298 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2299 TQT_DBusDataValueList::const_iterator it4;
2300 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2301 TQT_DBusData innerDataValue = *it4;
2302 TDEMACAddress hwAddress;
2303 hwAddress.fromString(innerDataValue.toString());
2304 wiFiConnection->heardBSSIDs.append(hwAddress);
2307 else if (keyValue.lower() ==
"security") {
2309 if (setting.lower() ==
"802-11-wireless-security") {
2310 wiFiConnection->securityRequired =
true;
2313 wiFiConnection->securityRequired =
false;
2316 else if (keyValue.lower() ==
"hidden") {
2317 wiFiConnection->isHiddenNetwork = dataValue2.toBool();
2320 else if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
2321 if (keyValue.lower() ==
"key-mgmt") {
2322 wiFiConnection->securitySettings.keyType = nmWiFiKeyTypeToTDEWiFiKeyType(dataValue2.toString());
2324 else if (keyValue.lower() ==
"wep-tx-keyidx") {
2325 wiFiConnection->securitySettings.wepKeyIndex = dataValue2.toUInt32();
2327 else if (keyValue.lower() ==
"auth-alg") {
2328 wiFiConnection->securitySettings.authType = nmWiFiAuthTypeToTDEWiFiAuthType(dataValue2.toString());
2330 else if (keyValue.lower() ==
"proto") {
2331 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2332 TQT_DBusDataValueList::const_iterator it4;
2333 TQStringList strings;
2334 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2335 TQT_DBusData innerDataValue = *it4;
2336 strings.append(innerDataValue.toString());
2338 wiFiConnection->securitySettings.wpaVersion = nmWiFiWPAVersionToTDEWiFiWPAVersion(strings);
2340 else if (keyValue.lower() ==
"pairwise") {
2341 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2342 TQT_DBusDataValueList::const_iterator it4;
2343 TQStringList strings;
2344 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2345 TQT_DBusData innerDataValue = *it4;
2346 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2348 if ((wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2349 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2350 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2351 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2352 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2355 else if (keyValue.lower() ==
"group") {
2356 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2357 TQT_DBusDataValueList::const_iterator it4;
2358 TQStringList strings;
2359 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2360 TQT_DBusData innerDataValue = *it4;
2361 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2363 if ((wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2364 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2365 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2366 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2367 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2370 else if (keyValue.lower() ==
"leap-username") {
2371 wiFiConnection->securitySettings.leapUsername = dataValue2.toString();
2373 else if (keyValue.lower() ==
"wep-key-flags") {
2374 wiFiConnection->securitySettings.wepKeyFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2376 else if (keyValue.lower() ==
"wep-key-type") {
2377 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(dataValue2.toUInt32());
2379 else if (keyValue.lower() ==
"psk-flags") {
2380 wiFiConnection->securitySettings.pskFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2382 else if (keyValue.lower() ==
"leap-password-flags") {
2383 wiFiConnection->securitySettings.leapPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2385 wiFiConnection->securitySettings.valid =
true;
2387 else if (outerKeyValue.lower() ==
"vpn") {
2388 if (keyValue.lower() ==
"service-type") {
2389 TQString plugin = dataValue2.toString();
2390 plugin.replace(
"org.freedesktop.NetworkManager.",
"");
2391 vpnConnection->vpnPluginID = plugin;
2393 else if (keyValue.lower() ==
"user-name") {
2394 vpnConnection->lockedUserName = dataValue2.toString();
2396 else if (keyValue.lower() ==
"data") {
2397 vpnConnection->pluginData.clear();
2398 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
2399 TQT_DBusTQStringDataMap::const_iterator it4;
2400 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
2401 TQString keyValue4 = it4.key();
2402 TQT_DBusData dataValue4 = it4.data();
2403 if (dataValue4.type() == TQT_DBusData::String) {
2404 vpnConnection->pluginData[keyValue4] = dataValue4.toString();
2409 else if (outerKeyValue.lower() ==
"wimax") {
2410 if (keyValue.lower() ==
"mac-address") {
2411 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2412 TQT_DBusDataValueList::const_iterator it4;
2413 TDENetworkByteList macAddress;
2414 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2415 TQT_DBusData innerDataValue = *it4;
2416 macAddress.append(innerDataValue.toByte());
2418 connection->lockedHWAddress.setAddress(macAddress);
2420 else if (keyValue.lower() ==
"network-name") {
2421 wiMaxConnection->networkServiceProvider = dataValue2.toString();
2424 else if (outerKeyValue.lower() ==
"vlan") {
2425 if (keyValue.lower() ==
"interface-name") {
2426 vlanConnection->kernelName = dataValue2.toString();
2428 else if (keyValue.lower() ==
"parent") {
2429 vlanConnection->parentConnectionUUID = dataValue2.toString();
2431 else if (keyValue.lower() ==
"id") {
2432 vlanConnection->vlanID = dataValue2.toUInt32();
2434 else if (keyValue.lower() ==
"flags") {
2435 vlanConnection->vlanFlags = nmVLANFlagsToTDEVLANFlags(dataValue2.toUInt32());
2437 else if (keyValue.lower() ==
"ingress-priority-map") {
2438 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2439 TQT_DBusDataValueList::const_iterator it4;
2440 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2441 TQT_DBusData innerDataValue = *it4;
2442 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(),
true);
2443 vlanConnection->ingressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2446 else if (keyValue.lower() ==
"egress-priority-map") {
2447 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2448 TQT_DBusDataValueList::const_iterator it4;
2449 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2450 TQT_DBusData innerDataValue = *it4;
2451 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(),
true);
2452 vlanConnection->egressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2456 else if (outerKeyValue.lower() ==
"serial") {
2457 if (keyValue.lower() ==
"baud") {
2458 connection->serialConfig.baudRate = dataValue2.toUInt32();
2460 else if (keyValue.lower() ==
"bits") {
2461 connection->serialConfig.byteWidth = dataValue2.toUInt32();
2463 else if (keyValue.lower() ==
"parity") {
2464 connection->serialConfig.parity = nmParityToTDEParity(dataValue2.toByte());
2466 else if (keyValue.lower() ==
"stopbits") {
2467 connection->serialConfig.stopBits = dataValue2.toUInt32();
2469 else if (keyValue.lower() ==
"send-delay") {
2470 connection->serialConfig.txDelay = dataValue2.toUInt64();
2472 connection->serialConfig.valid =
true;
2474 else if (outerKeyValue.lower() ==
"ppp") {
2475 if (keyValue.lower() ==
"noauth") {
2476 connection->pppConfig.requireServerAuthentication = !(dataValue2.toBool());
2478 else if (keyValue.lower() ==
"refuse-eap") {
2479 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableEAP;
2480 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableEAP;
2482 else if (keyValue.lower() ==
"refuse-pap") {
2483 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisablePAP;
2484 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisablePAP;
2486 else if (keyValue.lower() ==
"refuse-chap") {
2487 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableCHAP;
2488 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableCHAP;
2490 else if (keyValue.lower() ==
"refuse-mschap") {
2491 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAP;
2492 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAP;
2494 else if (keyValue.lower() ==
"refuse-mschapv2") {
2495 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAPv2;
2496 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAPv2;
2498 else if (keyValue.lower() ==
"nobsdcomp") {
2499 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowBSDCompression;
2500 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowBSDCompression;
2502 else if (keyValue.lower() ==
"nodeflate") {
2503 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowDeflateCompression;
2504 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowDeflateCompression;
2506 else if (keyValue.lower() ==
"no-vj-comp") {
2507 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowVJCompression;
2508 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowVJCompression;
2510 else if (keyValue.lower() ==
"require-mppe") {
2511 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE;
2512 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE;
2514 else if (keyValue.lower() ==
"require-mppe-128") {
2515 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE128;
2516 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE128;
2518 else if (keyValue.lower() ==
"mppe-stateful") {
2519 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::StatefulMPPE;
2520 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::StatefulMPPE;
2522 else if (keyValue.lower() ==
"crtscts") {
2523 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::UseHardwareFlowControl;
2524 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::UseHardwareFlowControl;
2526 else if (keyValue.lower() ==
"baud") {
2527 connection->pppConfig.baudRate = dataValue2.toUInt32();
2529 else if (keyValue.lower() ==
"mru") {
2530 connection->pppConfig.mru = dataValue2.toUInt32();
2532 else if (keyValue.lower() ==
"mtu") {
2533 connection->pppConfig.mtu = dataValue2.toUInt32();
2535 else if (keyValue.lower() ==
"lcp-echo-interval") {
2536 connection->pppConfig.lcpEchoPingInterval = dataValue2.toUInt32();
2538 else if (keyValue.lower() ==
"lcp-echo-failure") {
2539 connection->pppConfig.lcpEchoFailureThreshold = dataValue2.toUInt32();
2541 connection->pppConfig.valid =
true;
2543 else if (outerKeyValue.lower() ==
"pppoe") {
2544 if (keyValue.lower() ==
"service") {
2545 connection->pppoeConfig.networkServiceProvider = dataValue2.toString();
2547 else if (keyValue.lower() ==
"username") {
2548 connection->pppoeConfig.username = dataValue2.toString();
2550 else if (keyValue.lower() ==
"password-flags") {
2551 connection->pppoeConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2553 connection->pppoeConfig.secretsValid =
true;
2555 else if ((outerKeyValue.lower() ==
"802-11-olpc-mesh") && (olpcMeshConnection)) {
2556 if (keyValue.lower() ==
"ssid") {
2557 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2558 TQT_DBusDataValueList::const_iterator it4;
2560 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2561 TQT_DBusData innerDataValue = *it4;
2562 olpcMeshConnection->SSID.resize(count+1);
2563 olpcMeshConnection->SSID[count] = innerDataValue.toByte();
2567 else if (keyValue.lower() ==
"channel") {
2568 olpcMeshConnection->channel = dataValue2.toUInt32();
2570 else if (keyValue.lower() ==
"dhcp-anycast-address") {
2571 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2572 TQT_DBusDataValueList::const_iterator it4;
2574 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2575 TQT_DBusData innerDataValue = *it4;
2576 olpcMeshConnection->anycastDHCPHWAddress.resize(count+1);
2577 olpcMeshConnection->anycastDHCPHWAddress[count] = innerDataValue.toByte();
2582 else if ((outerKeyValue.lower() ==
"bluetooth") && (bluetoothConnection)) {
2583 if (keyValue.lower() ==
"bdaddr") {
2584 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2585 TQT_DBusDataValueList::const_iterator it4;
2586 TDENetworkByteList macAddress;
2587 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2588 TQT_DBusData innerDataValue = *it4;
2589 macAddress.append(innerDataValue.toByte());
2591 connection->lockedHWAddress.setAddress(macAddress);
2593 else if (keyValue.lower() ==
"type") {
2594 bluetoothConnection->type = nmBluetoothModeToTDEBluetoothMode(dataValue2.toString());
2597 else if ((outerKeyValue.lower() ==
"cdma") && (modemConnection)) {
2598 if (keyValue.lower() ==
"number") {
2599 modemConnection->cdmaConfig.providerDataNumber = dataValue2.toString();
2601 else if (keyValue.lower() ==
"username") {
2602 modemConnection->cdmaConfig.username = dataValue2.toString();
2604 else if (keyValue.lower() ==
"password-flags") {
2605 modemConnection->cdmaConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2607 modemConnection->type = TDEModemConnectionType::CDMA;
2608 modemConnection->cdmaConfig.valid =
true;
2610 else if ((outerKeyValue.lower() ==
"gsm") && (modemConnection)) {
2611 if (keyValue.lower() ==
"number") {
2612 modemConnection->gsmConfig.providerDataNumber = dataValue2.toString();
2614 else if (keyValue.lower() ==
"username") {
2615 modemConnection->gsmConfig.username = dataValue2.toString();
2617 else if (keyValue.lower() ==
"password-flags") {
2618 modemConnection->gsmConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2620 else if (keyValue.lower() ==
"apn") {
2621 modemConnection->gsmConfig.accessPointName = dataValue2.toString();
2623 else if (keyValue.lower() ==
"network-id") {
2624 modemConnection->gsmConfig.networkID = dataValue2.toString();
2626 else if (keyValue.lower() ==
"network-type") {
2627 modemConnection->gsmConfig.networkType = nmGSMModeToTDEGSMMode(dataValue2.toInt32());
2629 else if (keyValue.lower() ==
"pin-flags") {
2630 modemConnection->gsmConfig.pinFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2632 else if (keyValue.lower() ==
"allowed-bands") {
2633 modemConnection->gsmConfig.allowedFrequencyBands = dataValue2.toUInt32();
2635 else if (keyValue.lower() ==
"home-only") {
2636 modemConnection->gsmConfig.allowRoaming = !dataValue2.toBool();
2638 modemConnection->type = TDEModemConnectionType::GSM;
2639 modemConnection->gsmConfig.valid =
true;
2641 else if (outerKeyValue.lower() ==
"ipv4") {
2642 if (keyValue.lower() ==
"addresses") {
2643 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2644 TQT_DBusDataValueList::const_iterator it4;
2645 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2646 TQT_DBusData innerDataValue = *it4;
2647 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2648 TQT_DBusDataValueList::const_iterator it5;
2650 TDENetworkSingleIPConfiguration ipConfig;
2651 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2652 TQT_DBusData innerMostDataValue = *it5;
2655 ipConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2657 else if (state == 1) {
2659 ipConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2661 else if (state == 2) {
2663 ipConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2667 ipConfig.valid =
true;
2668 connection->ipConfig.ipConfigurations.append(ipConfig);
2671 else if (keyValue.lower() ==
"dhcp-client-id") {
2672 connection->ipConfig.dhcpClientIdentifier = dataValue2.toString();
2674 else if (keyValue.lower() ==
"dns") {
2675 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2676 TQT_DBusDataValueList::const_iterator it4;
2677 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2678 TQT_DBusData innerDataValue = *it4;
2679 connection->ipConfig.resolvers.append(TQHostAddress(reverseIPV4ByteOrder(innerDataValue.toUInt32())));
2682 else if (keyValue.lower() ==
"dns-search") {
2683 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2684 TQT_DBusDataValueList::const_iterator it4;
2685 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2686 TQT_DBusData innerDataValue = *it4;
2687 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
false));
2690 else if (keyValue.lower() ==
"ignore-auto-dns") {
2691 bool nm_static_dns = dataValue2.toBool();
2692 if (nm_static_dns) {
2693 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2696 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2699 else if (keyValue.lower() ==
"may-fail") {
2700 bool nm_may_fail = dataValue2.toBool();
2701 connection->requireIPV4 = !nm_may_fail;
2703 else if (keyValue.lower() ==
"method") {
2704 TQString nm_method = dataValue2.toString().lower();
2705 if (nm_method ==
"auto") {
2706 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2708 else if (nm_method ==
"manual") {
2709 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2711 else if (nm_method ==
"link-local") {
2712 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4LocalOnly;
2714 else if (nm_method ==
"shared") {
2715 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer;
2717 else if (nm_method ==
"disabled") {
2718 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4Disabled;
2721 else if (keyValue.lower() ==
"ignore-auto-routes") {
2722 bool nm_static_routes = dataValue2.toBool();
2723 if (nm_static_routes) {
2724 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2727 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2730 else if (keyValue.lower() ==
"never-default") {
2731 bool nm_can_default_route = !dataValue2.toBool();
2732 if (nm_can_default_route) {
2733 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2736 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2739 else if (keyValue.lower() ==
"routes") {
2740 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2741 TQT_DBusDataValueList::const_iterator it4;
2742 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2743 TQT_DBusData innerDataValue = *it4;
2744 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2745 TQT_DBusDataValueList::const_iterator it5;
2747 TDENetworkSingleRouteConfiguration routeConfig;
2748 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2749 TQT_DBusData innerMostDataValue = *it5;
2752 routeConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2754 else if (state == 1) {
2756 routeConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2758 else if (state == 2) {
2760 routeConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2762 else if (state == 3) {
2764 routeConfig.metric = innerMostDataValue.toUInt32();
2768 routeConfig.valid =
true;
2769 connection->ipConfig.routeConfigurations.append(routeConfig);
2772 connection->ipConfig.valid =
true;
2774 else if (outerKeyValue.lower() ==
"ipv6") {
2775 if (keyValue.lower() ==
"addresses") {
2776 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2777 TQT_DBusDataValueList::const_iterator it4;
2778 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2779 TQT_DBusData innerDataValue = *it4;
2780 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2781 TQT_DBusDataValueList::const_iterator it5;
2782 TDENetworkSingleIPConfiguration ipConfig;
2784 TQT_DBusDataValueList innerMostValueList;
2785 innerMostValueList = innerValueList[0].toTQValueList();
2786 TQ_UINT8 nm_v6address[16];
2787 unsigned char nm_addr_ptr = 0;
2788 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2789 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2790 TQT_DBusData innerMostDataValue = *it5;
2791 if (nm_addr_ptr < 16) {
2792 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2796 ipConfig.ipAddress = TQHostAddress(nm_v6address);
2799 ipConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2802 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2803 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2804 TQT_DBusData innerMostDataValue = *it5;
2805 if (nm_addr_ptr < 16) {
2806 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2810 ipConfig.gateway = TQHostAddress(nm_v6address);
2812 ipConfig.valid =
true;
2813 connection->ipConfig.ipConfigurations.append(ipConfig);
2816 else if (keyValue.lower() ==
"dns") {
2817 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2818 TQT_DBusDataValueList::const_iterator it4;
2819 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2820 TQT_DBusData innerDataValue = *it4;
2821 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2822 TQT_DBusDataValueList::const_iterator it5;
2823 TQ_UINT8 nm_v6address[16];
2824 unsigned char nm_addr_ptr = 0;
2825 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2826 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2827 TQT_DBusData innerMostDataValue = *it5;
2828 if (nm_addr_ptr < 16) {
2829 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2833 connection->ipConfig.resolvers.append(TQHostAddress(nm_v6address));
2836 else if (keyValue.lower() ==
"dns-search") {
2837 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2838 TQT_DBusDataValueList::const_iterator it4;
2839 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2840 TQT_DBusData innerDataValue = *it4;
2841 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2842 TQT_DBusDataValueList::const_iterator it5;
2843 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
true));
2846 else if (keyValue.lower() ==
"ignore-auto-dns") {
2847 bool nm_static_dns = dataValue2.toBool();
2848 if (nm_static_dns) {
2849 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2852 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2855 else if (keyValue.lower() ==
"may-fail") {
2856 bool nm_may_fail = dataValue2.toBool();
2857 connection->requireIPV6 = !nm_may_fail;
2859 else if (keyValue.lower() ==
"method") {
2860 TQString nm_method = dataValue2.toString().lower();
2861 if (nm_method ==
"auto") {
2862 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPIP;
2864 else if (nm_method ==
"manual") {
2865 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6DHCPIP;
2867 else if (nm_method ==
"link-local") {
2868 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6LocalOnly;
2870 else if (nm_method ==
"shared") {
2871 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer;
2873 else if (nm_method ==
"ignore") {
2874 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6Disabled;
2877 else if (keyValue.lower() ==
"ignore-auto-routes") {
2878 bool nm_static_routes = dataValue2.toBool();
2879 if (nm_static_routes) {
2880 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
2883 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
2886 else if (keyValue.lower() ==
"never-default") {
2887 bool nm_can_default_route = !dataValue2.toBool();
2888 if (nm_can_default_route) {
2889 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2892 connection->ipConfig.connectionFlags &= ~TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2895 else if (keyValue.lower() ==
"routes") {
2896 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2897 TQT_DBusDataValueList::const_iterator it4;
2898 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2899 TQT_DBusData innerDataValue = *it4;
2900 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2901 TQT_DBusDataValueList::const_iterator it5;
2902 TDENetworkSingleRouteConfiguration routeConfig;
2904 TQT_DBusDataValueList innerMostValueList;
2905 innerMostValueList = innerValueList[0].toTQValueList();
2906 TQ_UINT8 nm_v6address[16];
2907 unsigned char nm_addr_ptr = 0;
2908 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2909 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2910 TQT_DBusData innerMostDataValue = *it5;
2911 if (nm_addr_ptr < 16) {
2912 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2916 routeConfig.ipAddress = TQHostAddress(nm_v6address);
2919 routeConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2922 innerMostValueList = innerValueList[2].toTQValueList();
2924 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2925 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2926 TQT_DBusData innerMostDataValue = *it5;
2927 if (nm_addr_ptr < 16) {
2928 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2932 routeConfig.gateway = TQHostAddress(nm_v6address);
2935 routeConfig.metric = innerValueList[3].toUInt32();
2937 routeConfig.valid =
true;
2938 connection->ipConfig.routeConfigurations.append(routeConfig);
2941 connection->ipConfig.valid =
true;
2956 if ((deviceMACAddress == connection->lockedHWAddress) || (!connection->lockedHWAddress.isValid()) || (!deviceMACAddress.isValid())) {
2957 loadConnectionAllowedValues(connection);
2958 m_connectionList->append(connection);
2963 PRINT_ERROR((error.name() +
": " + error.message()))
2969 PRINT_ERROR((error.name() +
": " + error.message()))
2971 internalNetworkManagementEvent(TDENetworkGlobalEventType::ConnectionListChanged);
2974 d->nonReentrantCallActive =
false;
2977 void TDENetworkConnectionManager_BackendNM::loadConnectionAllowedValues(TDENetworkConnection* connection) {
2980 connection->eapConfig.allowedPhase2NonEAPMethods.clear();
2981 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MD5);
2982 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
2983 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::OTP);
2984 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::GTC);
2985 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::TLS);
2987 connection->eapConfig.allowedPhase2EAPMethods.clear();
2988 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::PAP);
2989 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::CHAP);
2990 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAP);
2991 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
2992 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::OTP);
2993 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::GTC);
2994 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::TLS);
2996 connection->eapConfig.allowedValid =
true;
3003 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecrets(TQString uuid) {
3004 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3006 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3011 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3012 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3017 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3020 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-1x");
3021 if (wiFiConnection) {
3022 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-11-wireless-security");
3024 if (vpnConnection) {
3025 ret = ret && loadConnectionSecretsForGroup(uuid,
"vpn");
3027 ret = ret && loadConnectionSecretsForGroup(uuid,
"pppoe");
3028 if (modemConnection) {
3029 ret = ret && loadConnectionSecretsForGroup(uuid,
"cdma");
3030 ret = ret && loadConnectionSecretsForGroup(uuid,
"gsm");
3035 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecretsForGroup(TQString uuid, TQString group) {
3036 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3038 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3043 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3044 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3049 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3050 TQT_DBusObjectPath existingConnection;
3051 TQT_DBusError error;
3053 TQT_DBusTQStringDataMap connectionSecretsMap(TQT_DBusData::String);
3054 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
3057 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3058 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3059 connect(&connectionSettings, SIGNAL(GetSecretsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3061 ret = connectionSettings.GetSecretsAsync(asyncCallID, group, error);
3062 if (ret && error.isValid()) {
3064 PRINT_ERROR((error.name() +
": " + error.message()))
3068 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3069 TQTimer nmCallTimeoutTimer;
3070 nmCallTimeoutTimer.start(NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS,
true);
3071 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3072 tqApp->processEvents();
3073 if (!nmCallTimeoutTimer.isActive()) {
3074 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3078 connectionSecretsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3079 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3080 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3081 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3083 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3084 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3085 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3088 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3089 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
3090 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSecretsMap));
3091 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3094 TQT_DBusTQStringDataMap::const_iterator it2;
3095 for (it2 = connectionSecretsMap.begin(); it2 != connectionSecretsMap.end(); ++it2) {
3096 TQString outerKeyValue = it2.key();
3097 TQT_DBusData dataValue = it2.data();
3098 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3099 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
3100 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3101 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
3102 TQT_DBusTQStringDataMap::const_iterator it3;
3103 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
3104 TQString keyValue = it3.key();
3105 TQT_DBusData dataValue = it3.data();
3106 if (dataValue.type() != TQT_DBusData::Variant) {
3107 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3108 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
3109 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3113 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
3114 TQT_DBusData dataValue2 = dataValueVariant.value;
3115 if (dataValue2.type() != TQT_DBusData::Variant) {
3116 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3117 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);
3118 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
3120 if (outerKeyValue.lower() ==
"802-1x") {
3121 if (keyValue.lower() ==
"password") {
3122 connection->eapConfig.password = dataValue2.toString();
3124 else if (keyValue.lower() ==
"password-raw") {
3125 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
3126 TQT_DBusDataValueList::const_iterator it4;
3128 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
3129 TQT_DBusData innerDataValue = *it4;
3131 connection->eapConfig.binaryPassword.resize(count+1);
3132 connection->eapConfig.binaryPassword[count] = innerDataValue.toByte();
3135 else if (keyValue.lower() ==
"private-key-password") {
3136 connection->eapConfig.privateKeyPassword = dataValue2.toString();
3138 else if (keyValue.lower() ==
"phase2-private-key-password") {
3139 connection->eapConfig.phase2PrivateKeyPassword = dataValue2.toString();
3141 connection->eapConfig.secretsValid =
true;
3143 if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
3144 if (keyValue.lower() ==
"wep-key0") {
3145 wiFiConnection->securitySettings.wepKey0 = dataValue2.toString();
3146 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey0);
3148 else if (keyValue.lower() ==
"wep-key1") {
3149 wiFiConnection->securitySettings.wepKey1 = dataValue2.toString();
3150 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey1);
3152 else if (keyValue.lower() ==
"wep-key2") {
3153 wiFiConnection->securitySettings.wepKey2 = dataValue2.toString();
3154 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey2);
3156 else if (keyValue.lower() ==
"wep-key3") {
3157 wiFiConnection->securitySettings.wepKey3 = dataValue2.toString();
3158 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey3);
3160 else if (keyValue.lower() ==
"psk") {
3161 wiFiConnection->securitySettings.psk = dataValue2.toString();
3163 else if (keyValue.lower() ==
"eap-password") {
3164 wiFiConnection->securitySettings.leapPassword = dataValue2.toString();
3167 if ((outerKeyValue.lower() ==
"vpn") && (vpnConnection)) {
3168 if (keyValue.lower() ==
"secrets") {
3169 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
3170 TQT_DBusTQStringDataMap::const_iterator it4;
3171 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
3172 vpnConnection->pluginSecrets.clear();
3173 TQString keyValue4 = it4.key();
3174 TQT_DBusData dataValue4 = it4.data();
3175 if (dataValue4.type() == TQT_DBusData::String) {
3176 vpnConnection->pluginSecrets[keyValue4] = dataValue4.toString();
3179 vpnConnection->secretsValid =
true;
3182 if (outerKeyValue.lower() ==
"pppoe") {
3183 if (keyValue.lower() ==
"password") {
3184 connection->pppoeConfig.password = dataValue2.toString();
3186 connection->pppoeConfig.secretsValid =
true;
3188 if (outerKeyValue.lower() ==
"cdma") {
3189 if (keyValue.lower() ==
"password") {
3190 modemConnection->cdmaConfig.password = dataValue2.toString();
3192 modemConnection->cdmaConfig.secretsValid =
true;
3194 if (outerKeyValue.lower() ==
"gsm") {
3195 if (keyValue.lower() ==
"password") {
3196 modemConnection->gsmConfig.password = dataValue2.toString();
3198 else if (keyValue.lower() ==
"pin") {
3199 modemConnection->gsmConfig.pin = dataValue2.toString();
3201 modemConnection->gsmConfig.secretsValid =
true;
3210 PRINT_ERROR(TQString(
"Unable to load secrets for connection with uuid '%1'").arg(uuid))
3215 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
3220 bool TDENetworkConnectionManager_BackendNM::saveConnection(TDENetworkConnection* connection) {
3221 bool timed_out =
false;
3222 bool command_failed =
false;
3225 PRINT_ERROR(TQString(
"connection cannot be NULL!"));
3230 if (connection->UUID ==
"") {
3231 bool unique =
false;
3233 connection->UUID = TQUuid::createUuid().toString();
3234 connection->UUID.replace(
"{",
"");
3235 connection->UUID.replace(
"}",
"");
3236 if (!findConnectionByUUID(connection->UUID)) {
3244 TDEWiredEthernetConnection* ethernetConnection =
dynamic_cast<TDEWiredEthernetConnection*
>(connection);
3245 TDEWiredInfinibandConnection* infinibandConnection =
dynamic_cast<TDEWiredInfinibandConnection*
>(connection);
3246 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3247 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3248 TDEWiMaxConnection* wiMaxConnection =
dynamic_cast<TDEWiMaxConnection*
>(connection);
3249 TDEVLANConnection* vlanConnection =
dynamic_cast<TDEVLANConnection*
>(connection);
3250 TDEOLPCMeshConnection* olpcMeshConnection =
dynamic_cast<TDEOLPCMeshConnection*
>(connection);
3251 TDEBluetoothConnection* bluetoothConnection =
dynamic_cast<TDEBluetoothConnection*
>(connection);
3252 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3253 TQT_DBusObjectPath existingConnection;
3254 TQT_DBusError error;
3257 TQT_DBusTQStringDataMap connectionSettingsMap(TQT_DBusData::String);
3259 ret = d->m_networkManagerSettings->GetConnectionByUuid(connection->UUID, existingConnection, error);
3262 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3263 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3264 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3266 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
3267 if (ret && error.isValid()) {
3269 PRINT_ERROR((error.name() +
": " + error.message()))
3273 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3274 TQTimer nmCallTimeoutTimer;
3275 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
3276 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3277 tqApp->processEvents();
3278 if (!nmCallTimeoutTimer.isActive()) {
3279 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3284 connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3285 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3286 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3287 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3289 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3290 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3291 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3300 TQT_DBusData dbusData;
3301 TQT_DBusData innerDbusData;
3302 TQMap<TQString, TQT_DBusData> outerMap = connectionSettingsMap.toTQMap();
3305 dbusData = outerMap[
"connection"];
3307 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3309 settingsMap[
"id"] = (TQT_DBusData::fromString(connection->friendlyName)).getAsVariantData();
3312 if (ethernetConnection) type =
"802-3-ethernet";
3313 else if (infinibandConnection) type =
"infiniband";
3314 else if (wiFiConnection) type =
"802-11-wireless";
3315 else if (vpnConnection) type =
"vpn";
3316 else if (wiMaxConnection) type =
"wimax";
3317 else if (vlanConnection) type =
"vlan";
3318 else if (olpcMeshConnection) type =
"802-11-olpc-mesh";
3319 else if (bluetoothConnection) type =
"bluetooth";
3320 else if (modemConnection) {
3321 if (modemConnection->type == TDEModemConnectionType::CDMA) {
3324 else if (modemConnection->type == TDEModemConnectionType::GSM) {
3328 if (!type.isNull()) settingsMap[
"type"] = (TQT_DBusData::fromString(type)).getAsVariantData();
3330 settingsMap[
"uuid"] = (TQT_DBusData::fromString(connection->UUID)).getAsVariantData();
3332 TQT_DBusDataValueList valueList;
3334 for (TQStringList::Iterator it = connection->authorizedUsers.begin(); it != connection->authorizedUsers.end(); ++it) {
3335 TQString assembledString = TQString(
"user:%1:").arg(*it);
3336 valueList.append(TQT_DBusData::fromString(assembledString));
3339 if (valueList.count() > 0) settingsMap[
"permissions"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3340 else settingsMap.remove(
"permissions");
3342 settingsMap[
"autoconnect"] = (TQT_DBusData::fromBool(connection->autoConnect)).getAsVariantData();
3343 settingsMap[
"read-only"] = (TQT_DBusData::fromBool(connection->readOnly)).getAsVariantData();
3344 UPDATE_STRING_SETTING_IF_VALID(connection->masterConnectionUUID,
"master", settingsMap)
3346 TQString slaveType = tdeSlaveTypeToNMSlaveType(connection->slaveType);
3347 if (slaveType !=
"") settingsMap[
"slave-type"] = (TQT_DBusData::fromString(slaveType)).getAsVariantData();
3348 else settingsMap.remove(
"slave-type");
3352 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3353 groupValid = (settingsMap.count() > 0);
3355 if (groupValid) outerMap.insert(
"connection", dbusData,
true);
else outerMap.remove(
"connection");
3358 dbusData = outerMap[
"802-1x"];
3360 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3362 if (connection->eapConfig.valid) {
3363 TQT_DBusDataValueList valueList;
3367 valueList.append(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.type)));
3369 settingsMap[
"eap"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3372 settingsMap.remove(
"eap");
3374 if (connection->eapConfig.valid) {
3375 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.userName,
"identity", settingsMap)
3376 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.anonymousUserName, "anonymous-identity", settingsMap)
3377 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.pacFileName, "pac-file", settingsMap)
3380 settingsMap.remove(
"identity");
3381 settingsMap.remove(
"anonymous-identity");
3382 settingsMap.remove(
"pac-file");
3384 if (connection->eapConfig.valid) {
3385 TQT_DBusDataValueList valueList;
3388 for (count=0; count<connection->eapConfig.caCertificate.count(); count++) {
3389 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.caCertificate[count]));
3392 if (valueList.count() > 0) settingsMap[
"ca-cert"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3393 else settingsMap.remove(
"ca-cert");
3396 settingsMap.remove(
"ca-cert");
3398 if (connection->eapConfig.valid) {
3399 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.additionalCAFilesPath,
"ca-path", settingsMap)
3400 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.authServerCertSubjectMatch, "subject-match", settingsMap)
3403 settingsMap.remove(
"ca-path");
3404 settingsMap.remove(
"subject-match");
3406 if (connection->eapConfig.valid) {
3407 TQT_DBusDataValueList valueList;
3409 for (TQStringList::Iterator it = connection->eapConfig.alternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.alternateAuthServerCertSubjectMatch.end(); ++it) {
3410 valueList.append(TQT_DBusData::fromString(*it));
3413 if (valueList.count() > 0) settingsMap[
"altsubject-matches"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3414 else settingsMap.remove(
"altsubject-matches");
3417 settingsMap.remove(
"altsubject-matches");
3419 if (connection->eapConfig.valid) {
3420 TQT_DBusDataValueList valueList;
3423 for (count=0; count<connection->eapConfig.clientCertificate.count(); count++) {
3424 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.clientCertificate[count]));
3427 if (valueList.count() > 0) settingsMap[
"client-cert"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3428 else settingsMap.remove(
"client-cert");
3431 settingsMap.remove(
"client-cert");
3433 if (connection->eapConfig.valid) {
3434 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPVersion,
"phase1-peapver", settingsMap)
3435 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPLabel, "phase1-peaplabel", settingsMap)
3436 UPDATE_STRING_SETTING_IF_VALID(tdeEAPFastFlagsToNMEAPFastFlags(connection->eapConfig.fastProvisioningFlags), "phase1-fast-provisioning", settingsMap)
3439 settingsMap.remove(
"phase1-peapver");
3440 settingsMap.remove(
"phase1-peaplabel");
3441 settingsMap.remove(
"phase1-fast-provisioning");
3443 if (connection->eapConfig.valid) {
3444 settingsMap[
"phase2-auth"] = (TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2NonEAPAuthMethod))).getAsVariantData();
3445 settingsMap[
"phase2-autheap"] = (TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2EAPAuthMethod))).getAsVariantData();
3448 settingsMap.remove(
"phase2-auth");
3449 settingsMap.remove(
"phase2-autheap");
3451 if (connection->eapConfig.valid) {
3452 TQT_DBusDataValueList valueList;
3455 for (count=0; count<connection->eapConfig.phase2CaCertificate.count(); count++) {
3456 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2CaCertificate[count]));
3459 if (valueList.count() > 0) settingsMap[
"phase2-ca-cert"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3460 else settingsMap.remove(
"phase2-ca-cert");
3463 settingsMap.remove(
"phase2-ca-cert");
3465 if (connection->eapConfig.valid) {
3466 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2CaFilesPath,
"phase2-ca-path", settingsMap)
3467 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2AuthServerCertSubjectMatch, "phase2-subject-match", settingsMap)
3470 settingsMap.remove(
"phase2-ca-path");
3471 settingsMap.remove(
"phase2-subject-match");
3473 if (connection->eapConfig.valid) {
3474 TQT_DBusDataValueList valueList;
3476 for (TQStringList::Iterator it = connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.end(); ++it) {
3477 valueList.append(TQT_DBusData::fromString(*it));
3480 if (valueList.count() > 0) settingsMap[
"phase2-altsubject-matches"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3481 else settingsMap.remove(
"phase2-altsubject-matches");
3484 settingsMap.remove(
"phase2-altsubject-matches");
3486 if (connection->eapConfig.valid) {
3487 TQT_DBusDataValueList valueList;
3490 for (count=0; count<connection->eapConfig.phase2ClientCertificate.count(); count++) {
3491 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2ClientCertificate[count]));
3494 if (valueList.count() > 0) settingsMap[
"phase2-client-cert"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3495 else settingsMap.remove(
"phase2-client-cert");
3498 settingsMap.remove(
"phase2-client-cert");
3500 if (connection->eapConfig.valid) {
3501 settingsMap[
"password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.passwordFlags))).getAsVariantData();
3502 settingsMap[
"password-raw-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.binaryPasswordFlags))).getAsVariantData();
3505 settingsMap.remove(
"password-flags");
3506 settingsMap.remove(
"password-raw-flags");
3508 if (connection->eapConfig.valid) {
3509 TQT_DBusDataValueList valueList;
3512 for (count=0; count<connection->eapConfig.privateKey.count(); count++) {
3513 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.privateKey[count]));
3516 if (valueList.count() > 0) settingsMap[
"private-key"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3517 else settingsMap.remove(
"private-key");
3520 settingsMap.remove(
"private-key");
3522 if (connection->eapConfig.valid) {
3523 settingsMap[
"private-key-password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.privateKeyPasswordFlags))).getAsVariantData();
3526 settingsMap.remove(
"private-key-password-flags");
3528 if (connection->eapConfig.valid) {
3529 TQT_DBusDataValueList valueList;
3532 for (count=0; count<connection->eapConfig.phase2PrivateKey.count(); count++) {
3533 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2PrivateKey[count]));
3536 if (valueList.count() > 0) settingsMap[
"phase2-private-key"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3537 else settingsMap.remove(
"phase2-private-key");
3540 settingsMap.remove(
"phase2-private-key");
3542 if (connection->eapConfig.valid) {
3543 settingsMap[
"phase2-private-key-password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.phase2PrivateKeyPasswordFlags))).getAsVariantData();
3546 settingsMap.remove(
"phase2-private-key-password-flags");
3548 if (connection->eapConfig.valid) {
3549 settingsMap[
"system-ca-certs"] = (TQT_DBusData::fromBool(connection->eapConfig.forceSystemCaCertificates)).getAsVariantData();
3552 settingsMap.remove(
"system-ca-certs");
3554 if (connection->eapConfig.secretsValid) {
3555 settingsMap[
"password"] = (TQT_DBusData::fromString(connection->eapConfig.password)).getAsVariantData();
3558 settingsMap.remove(
"password");
3560 if (connection->eapConfig.valid) {
3561 TQT_DBusDataValueList valueList;
3564 for (count=0; count<connection->eapConfig.binaryPassword.count(); count++) {
3565 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.binaryPassword[count]));
3568 if (valueList.count() > 0) settingsMap[
"password-raw"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3569 else settingsMap.remove(
"password-raw");
3572 settingsMap.remove(
"password-raw");
3574 if (connection->eapConfig.secretsValid) {
3575 settingsMap[
"private-key-password"] = (TQT_DBusData::fromString(connection->eapConfig.privateKeyPassword)).getAsVariantData();
3576 settingsMap[
"phase2-private-key-password"] = (TQT_DBusData::fromString(connection->eapConfig.phase2PrivateKeyPassword)).getAsVariantData();
3579 settingsMap.remove(
"private-key-password");
3580 settingsMap.remove(
"phase2-private-key-password");
3583 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3584 groupValid = (settingsMap.count() > 0);
3586 if (groupValid) outerMap.insert(
"802-1x", dbusData,
true);
else outerMap.remove(
"802-1x");
3589 dbusData = outerMap[
"802-3-ethernet"];
3590 if (ethernetConnection) {
3591 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3593 settingsMap[
"duplex"] = (TQT_DBusData::fromString((connection->fullDuplex)?
"full":
"half")).getAsVariantData();
3594 if (connection->lockedHWAddress.isValid()) {
3595 TDENetworkByteList address = connection->lockedHWAddress.address();
3596 TQT_DBusDataValueList valueList;
3597 TDENetworkByteList::iterator it;
3598 for (it = address.begin(); it != address.end(); ++it) {
3599 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3600 valueList.append(innerDataValue);
3602 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3603 settingsMap[
"mac-address"] = (nmHWAddress).getAsVariantData();
3606 settingsMap.remove(
"mac-address");
3608 if (connection->manualHWAddress.isValid()) {
3609 TDENetworkByteList address = connection->manualHWAddress.address();
3610 TQT_DBusDataValueList valueList;
3611 TDENetworkByteList::iterator it;
3612 for (it = address.begin(); it != address.end(); ++it) {
3613 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3614 valueList.append(innerDataValue);
3616 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3617 settingsMap[
"cloned-mac-address"] = (nmHWAddress).getAsVariantData();
3620 settingsMap.remove(
"cloned-mac-address");
3622 if (connection->mtu > 0) {
3623 settingsMap[
"mtu"] = (TQT_DBusData::fromUInt32(connection->mtu)).getAsVariantData();
3626 settingsMap.remove(
"mtu");
3629 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3630 groupValid = (settingsMap.count() > 0);
3632 if (groupValid) outerMap.insert(
"802-3-ethernet", dbusData,
true);
else outerMap.remove(
"802-3-ethernet");
3635 dbusData = outerMap[
"infiniband"];
3636 if (infinibandConnection) {
3637 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3639 if (connection->lockedHWAddress.isValid()) {
3640 TDENetworkByteList address = connection->lockedHWAddress.address();
3641 TQT_DBusDataValueList valueList;
3642 TDENetworkByteList::iterator it;
3643 for (it = address.begin(); it != address.end(); ++it) {
3644 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3645 valueList.append(innerDataValue);
3647 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3648 settingsMap[
"mac-address"] = (nmHWAddress).getAsVariantData();
3651 settingsMap.remove(
"mac-address");
3653 if (connection->mtu > 0) {
3654 settingsMap[
"mtu"] = (TQT_DBusData::fromUInt32(connection->mtu)).getAsVariantData();
3657 settingsMap.remove(
"mtu");
3659 UPDATE_STRING_SETTING_IF_VALID(tdeIBTransportToNMIBTransport(infinibandConnection->transportMode),
"transport-mode", settingsMap)
3661 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3662 groupValid = (settingsMap.count() > 0);
3664 if (groupValid) outerMap.insert(
"infiniband", dbusData,
true);
else outerMap.remove(
"infiniband");
3667 dbusData = outerMap[
"802-11-wireless"];
3668 if (wiFiConnection) {
3669 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3673 TQT_DBusDataValueList valueList;
3674 for (i=0; i<wiFiConnection->SSID.count(); i++) {
3675 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(wiFiConnection->SSID[i]);
3676 valueList.append(innerDataValue);
3678 settingsMap[
"ssid"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3680 if (connection->lockedHWAddress.isValid()) {
3681 TDENetworkByteList address = connection->lockedHWAddress.address();
3682 TQT_DBusDataValueList valueList;
3683 TDENetworkByteList::iterator it;
3684 for (it = address.begin(); it != address.end(); ++it) {
3685 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3686 valueList.append(innerDataValue);
3688 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3689 settingsMap[
"mac-address"] = (nmHWAddress).getAsVariantData();
3692 settingsMap.remove(
"mac-address");
3694 if (connection->manualHWAddress.isValid()) {
3695 TDENetworkByteList address = connection->manualHWAddress.address();
3696 TQT_DBusDataValueList valueList;
3697 TDENetworkByteList::iterator it;
3698 for (it = address.begin(); it != address.end(); ++it) {
3699 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3700 valueList.append(innerDataValue);
3702 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3703 settingsMap[
"cloned-mac-address"] = (nmHWAddress).getAsVariantData();
3706 settingsMap.remove(
"cloned-mac-address");
3708 if (connection->mtu > 0) {
3709 settingsMap[
"mtu"] = (TQT_DBusData::fromUInt32(connection->mtu)).getAsVariantData();
3712 settingsMap.remove(
"mtu");
3714 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiModeToNMWiFiMode(wiFiConnection->operatingMode),
"mode", settingsMap)
3715 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiFrequencyBandToNMWiFiFrequencyBand(wiFiConnection->bandRestriction), "band", settingsMap)
3716 if (wiFiConnection->channelRestriction > 0) {
3717 settingsMap[
"channel"] = (TQT_DBusData::fromUInt32(wiFiConnection->channelRestriction)).getAsVariantData();
3720 settingsMap.remove(
"channel");
3722 if (wiFiConnection->bitRateRestriction > 0) {
3723 settingsMap[
"rate"] = (TQT_DBusData::fromUInt32(wiFiConnection->bitRateRestriction/1000)).getAsVariantData();
3726 settingsMap.remove(
"rate");
3728 if (wiFiConnection->powerRestriction > 0) {
3729 settingsMap[
"tx-power"] = (TQT_DBusData::fromUInt32(wiFiConnection->powerRestriction)).getAsVariantData();
3732 settingsMap.remove(
"tx-power");
3734 if (wiFiConnection->accessPointRestriction.isValid()) {
3735 TDENetworkByteList address = wiFiConnection->accessPointRestriction.address();
3736 TQT_DBusDataValueList valueList;
3737 TDENetworkByteList::iterator it;
3738 for (it = address.begin(); it != address.end(); ++it) {
3739 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3740 valueList.append(innerDataValue);
3742 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3743 settingsMap[
"bssid"] = (nmHWAddress).getAsVariantData();
3746 settingsMap.remove(
"bssid");
3749 TQT_DBusDataValueList valueList;
3750 TDEMACAddressList::iterator it;
3751 for (it = wiFiConnection->blacklistedBSSIDs.begin(); it != wiFiConnection->blacklistedBSSIDs.end(); ++it) {
3752 valueList.append(TQT_DBusData::fromString((*it).toString()));
3754 if (valueList.count() > 0) settingsMap[
"mac-address-blacklist"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3757 TQT_DBusDataValueList valueList;
3758 TDEMACAddressList::iterator it;
3759 for (it = wiFiConnection->heardBSSIDs.begin(); it != wiFiConnection->heardBSSIDs.end(); ++it) {
3760 valueList.append(TQT_DBusData::fromString((*it).toString()));
3762 if (valueList.count() > 0) settingsMap[
"seen-bssids"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3765 if (wiFiConnection->securityRequired) {
3766 settingsMap[
"security"] = (TQT_DBusData::fromString(
"802-11-wireless-security")).getAsVariantData();
3769 settingsMap.remove(
"security");
3773 if (wiFiConnection->isHiddenNetwork) {
3774 settingsMap[
"hidden"] = (TQT_DBusData::fromBool(
true)).getAsVariantData();
3777 settingsMap.remove(
"hidden");
3781 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3782 groupValid = (settingsMap.count() > 0);
3784 if (groupValid) outerMap.insert(
"802-11-wireless", dbusData,
true);
else outerMap.remove(
"802-11-wireless");
3787 dbusData = outerMap[
"802-11-wireless-security"];
3788 if (wiFiConnection) {
3789 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3791 if (wiFiConnection->securityRequired) {
3792 if (wiFiConnection->securityRequired) {
3793 settingsMap[
"key-mgmt"] = (TQT_DBusData::fromString(tdeWiFiKeyTypeToNMWiFiKeyType(wiFiConnection->securitySettings.keyType))).getAsVariantData();
3795 if (wiFiConnection->securitySettings.wepKeyIndex > 0) {
3796 settingsMap[
"wep-tx-keyidx"] = (TQT_DBusData::fromUInt32(wiFiConnection->securitySettings.wepKeyIndex)).getAsVariantData();
3799 settingsMap.remove(
"wep-tx-keyidx");
3801 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiAuthTypeToNMWiFiAuthType(wiFiConnection->securitySettings.authType),
"auth-alg", settingsMap)
3803 TQT_DBusDataValueList valueList;
3805 TQStringList strings = tdeWiFiWPAVersionToNMWiFiWPAVersion(wiFiConnection->securitySettings.wpaVersion);
3806 for (TQStringList::Iterator it = strings.begin(); it != strings.end(); ++it) {
3807 valueList.append(TQT_DBusData::fromString(*it));
3810 if (valueList.count() > 0) settingsMap[
"proto"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3811 else settingsMap.remove(
"proto");
3814 TQT_DBusDataValueList valueList;
3816 if (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3817 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3818 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3819 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3820 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3822 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedPairWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedPairWiseCiphers.end(); ++it) {
3823 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3826 if (valueList.count() > 0) settingsMap[
"pairwise"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3827 else settingsMap.remove(
"pairwise");
3830 TQT_DBusDataValueList valueList;
3832 if (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3833 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3834 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3835 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3836 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3838 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedGroupWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedGroupWiseCiphers.end(); ++it) {
3839 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3842 if (valueList.count() > 0) settingsMap[
"group"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3843 else settingsMap.remove(
"group");
3845 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapUsername,
"leap-username", settingsMap)
3846 settingsMap["wep-key-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.wepKeyFlags))).getAsVariantData();
3847 settingsMap["wep-key-type"] = (TQT_DBusData::fromUInt32(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType))).getAsVariantData();
3848 settingsMap["psk-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.pskFlags))).getAsVariantData();
3849 settingsMap["leap-password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.leapPasswordFlags))).getAsVariantData();
3850 if (wiFiConnection->securitySettings.secretsValid) {
3851 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey0,
"wep-key0", settingsMap)
3852 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey1, "wep-key1", settingsMap)
3853 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey2, "wep-key2", settingsMap)
3854 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey3, "wep-key3", settingsMap)
3855 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.psk, "psk", settingsMap)
3856 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapPassword, "leap-password", settingsMap)
3859 settingsMap.remove(
"wep-key0");
3860 settingsMap.remove(
"wep-key1");
3861 settingsMap.remove(
"wep-key2");
3862 settingsMap.remove(
"wep-key3");
3863 settingsMap.remove(
"psk");
3864 settingsMap.remove(
"leap-password");
3868 settingsMap.remove(
"key-mgmt");
3869 settingsMap.remove(
"wep-tx-keyidx");
3870 settingsMap.remove(
"auth-alg");
3871 settingsMap.remove(
"proto");
3872 settingsMap.remove(
"pairwise");
3873 settingsMap.remove(
"group");
3874 settingsMap.remove(
"leap-username");
3875 settingsMap.remove(
"wep-key-flags");
3876 settingsMap.remove(
"wep-key-type");
3877 settingsMap.remove(
"psk-flags");
3878 settingsMap.remove(
"leap-password-flags");
3879 settingsMap.remove(
"wep-key0");
3880 settingsMap.remove(
"wep-key1");
3881 settingsMap.remove(
"wep-key2");
3882 settingsMap.remove(
"wep-key3");
3883 settingsMap.remove(
"psk");
3884 settingsMap.remove(
"leap-password");
3887 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3888 groupValid = (settingsMap.count() > 0);
3890 if (groupValid) outerMap.insert(
"802-11-wireless-security", dbusData,
true);
else outerMap.remove(
"802-11-wireless-security");
3893 dbusData = outerMap[
"vpn"];
3894 if (vpnConnection) {
3895 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3898 TQString pluginService = vpnConnection->vpnPluginID;
3899 if (pluginService !=
"") {
3900 pluginService =
"org.freedesktop.NetworkManager." + pluginService;
3902 UPDATE_STRING_SETTING_IF_VALID(pluginService,
"service-type", settingsMap)
3904 UPDATE_STRING_SETTING_IF_VALID(vpnConnection->lockedUserName,
"user-name", settingsMap)
3906 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3907 TDENetworkSettingsMap::const_iterator it;
3908 for (it = vpnConnection->pluginData.begin(); it != vpnConnection->pluginData.end(); ++it) {
3909 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3911 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"data"] = (TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap))).getAsVariantData();
3912 else settingsMap.remove(
"data");
3914 if (vpnConnection->secretsValid) {
3915 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
3916 TDENetworkSettingsMap::const_iterator it;
3917 for (it = vpnConnection->pluginSecrets.begin(); it != vpnConnection->pluginSecrets.end(); ++it) {
3918 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
3920 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"secrets"] = (TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap))).getAsVariantData();
3921 else settingsMap.remove(
"secrets");
3924 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3925 groupValid = (settingsMap.count() > 0);
3927 if (groupValid) outerMap.insert(
"vpn", dbusData,
true);
else outerMap.remove(
"vpn");
3930 dbusData = outerMap[
"wimax"];
3931 if (wiMaxConnection) {
3932 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3934 if (connection->lockedHWAddress.isValid()) {
3935 TDENetworkByteList address = connection->lockedHWAddress.address();
3936 TQT_DBusDataValueList valueList;
3937 TDENetworkByteList::iterator it;
3938 for (it = address.begin(); it != address.end(); ++it) {
3939 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3940 valueList.append(innerDataValue);
3942 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3943 settingsMap[
"mac-address"] = (nmHWAddress).getAsVariantData();
3946 settingsMap.remove(
"mac-address");
3948 UPDATE_STRING_SETTING_IF_VALID(wiMaxConnection->networkServiceProvider,
"network-name", settingsMap)
3950 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3951 groupValid = (settingsMap.count() > 0);
3953 if (groupValid) outerMap.insert(
"wimax", dbusData,
true);
else outerMap.remove(
"wimax");
3956 dbusData = outerMap[
"vlan"];
3957 if (vlanConnection) {
3958 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3960 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->kernelName,
"interface-name", settingsMap)
3961 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->parentConnectionUUID, "parent", settingsMap)
3962 settingsMap["
id"] = (TQT_DBusData::fromUInt32(vlanConnection->vlanID)).getAsVariantData();
3963 settingsMap["flags"] = (TQT_DBusData::fromUInt32(tdeVLANFlagsToNMVLANFlags(vlanConnection->vlanFlags))).getAsVariantData();
3965 TQT_DBusDataValueList valueList;
3966 TDENetworkPriorityMap::const_iterator it;
3967 for (it = vlanConnection->ingressPriorityMap.begin(); it != vlanConnection->ingressPriorityMap.end(); ++it) {
3968 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
3970 if (valueList.count() > 0) settingsMap[
"ingress-priority-map"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3973 TQT_DBusDataValueList valueList;
3974 TDENetworkPriorityMap::const_iterator it;
3975 for (it = vlanConnection->egressPriorityMap.begin(); it != vlanConnection->egressPriorityMap.end(); ++it) {
3976 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
3978 if (valueList.count() > 0) settingsMap[
"egress-priority-map"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
3981 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3982 groupValid = (settingsMap.count() > 0);
3984 if (groupValid) outerMap.insert(
"vlan", dbusData,
true);
else outerMap.remove(
"vlan");
3987 dbusData = outerMap[
"serial"];
3988 if (connection->serialConfig.valid) {
3989 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3991 settingsMap[
"baud"] = (TQT_DBusData::fromUInt32(connection->serialConfig.baudRate)).getAsVariantData();
3992 settingsMap[
"bits"] = (TQT_DBusData::fromUInt32(connection->serialConfig.byteWidth)).getAsVariantData();
3993 settingsMap[
"parity"] = (TQT_DBusData::fromByte(tdeParityToNMParity(connection->serialConfig.parity))).getAsVariantData();
3994 settingsMap[
"stopbits"] = (TQT_DBusData::fromUInt32(connection->serialConfig.stopBits)).getAsVariantData();
3995 settingsMap[
"send-delay"] = (TQT_DBusData::fromUInt64(connection->serialConfig.txDelay)).getAsVariantData();
3997 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3998 groupValid = (settingsMap.count() > 0);
4000 if (groupValid) outerMap.insert(
"serial", dbusData,
true);
else outerMap.remove(
"serial");
4003 dbusData = outerMap[
"ppp"];
4004 if (connection->pppConfig.valid) {
4005 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4007 settingsMap[
"noauth"] = (TQT_DBusData::fromBool(!(connection->pppConfig.requireServerAuthentication))).getAsVariantData();
4008 settingsMap[
"refuse-eap"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableEAP)).getAsVariantData();
4009 settingsMap[
"refuse-pap"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisablePAP)).getAsVariantData();
4010 settingsMap[
"refuse-chap"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableCHAP)).getAsVariantData();
4011 settingsMap[
"refuse-mschap"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAP)).getAsVariantData();
4012 settingsMap[
"refuse-mschapv2"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAPv2)).getAsVariantData();
4013 settingsMap[
"nobsdcomp"] = (TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowBSDCompression))).getAsVariantData();
4014 settingsMap[
"nodeflate"] = (TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowDeflateCompression))).getAsVariantData();
4015 settingsMap[
"no-vj-comp"] = (TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowVJCompression))).getAsVariantData();
4016 settingsMap[
"require-mppe"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE)).getAsVariantData();
4017 settingsMap[
"require-mppe-128"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE128)).getAsVariantData();
4018 settingsMap[
"mppe-stateful"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::StatefulMPPE)).getAsVariantData();
4019 settingsMap[
"crtscts"] = (TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::UseHardwareFlowControl)).getAsVariantData();
4020 settingsMap[
"baud"] = (TQT_DBusData::fromUInt32(connection->pppConfig.baudRate)).getAsVariantData();
4021 if (connection->pppConfig.mru > 0) {
4022 settingsMap[
"mru"] = (TQT_DBusData::fromUInt32(connection->pppConfig.mru)).getAsVariantData();
4025 settingsMap.remove(
"mru");
4027 if (connection->pppConfig.mtu > 0) {
4028 settingsMap[
"mtu"] = (TQT_DBusData::fromUInt32(connection->pppConfig.mtu)).getAsVariantData();
4031 settingsMap.remove(
"mtu");
4033 if (connection->pppConfig.mtu > 0) {
4034 settingsMap[
"lcp-echo-interval"] = (TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoPingInterval)).getAsVariantData();
4037 settingsMap.remove(
"lcp-echo-interval");
4039 if (connection->pppConfig.mtu > 0) {
4040 settingsMap[
"lcp-echo-failure"] = (TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoFailureThreshold)).getAsVariantData();
4043 settingsMap.remove(
"lcp-echo-failure");
4046 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4047 groupValid = (settingsMap.count() > 0);
4049 if (groupValid) outerMap.insert(
"ppp", dbusData,
true);
else outerMap.remove(
"ppp");
4052 dbusData = outerMap[
"pppoe"];
4053 if (connection->pppoeConfig.valid) {
4054 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4056 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.networkServiceProvider,
"service", settingsMap)
4057 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.username, "username", settingsMap)
4058 if (connection->pppoeConfig.secretsValid) {
4059 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.password,
"password", settingsMap)
4061 settingsMap[
"password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->pppoeConfig.passwordFlags))).getAsVariantData();
4063 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4064 groupValid = (settingsMap.count() > 0);
4066 if (groupValid) outerMap.insert(
"pppoe", dbusData,
true);
else outerMap.remove(
"pppoe");
4069 dbusData = outerMap[
"802-11-olpc-mesh"];
4070 if (olpcMeshConnection) {
4071 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4075 TQT_DBusDataValueList valueList;
4076 for (i=0; i<olpcMeshConnection->SSID.count(); i++) {
4077 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->SSID[i]);
4078 valueList.append(innerDataValue);
4080 settingsMap[
"ssid"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4082 settingsMap[
"channel"] = (TQT_DBusData::fromUInt32(olpcMeshConnection->channel)).getAsVariantData();
4085 TQT_DBusDataValueList valueList;
4086 for (i=0; i<olpcMeshConnection->anycastDHCPHWAddress.count(); i++) {
4087 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->anycastDHCPHWAddress[i]);
4088 valueList.append(innerDataValue);
4090 settingsMap[
"dhcp-anycast-address"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4093 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4094 groupValid = (settingsMap.count() > 0);
4096 if (groupValid) outerMap.insert(
"802-11-olpc-mesh", dbusData,
true);
else outerMap.remove(
"802-11-olpc-mesh");
4099 dbusData = outerMap[
"bluetooth"];
4100 if (bluetoothConnection) {
4101 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4103 if (connection->lockedHWAddress.isValid()) {
4104 TDENetworkByteList address = connection->lockedHWAddress.address();
4105 TQT_DBusDataValueList valueList;
4106 TDENetworkByteList::iterator it;
4107 for (it = address.begin(); it != address.end(); ++it) {
4108 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
4109 valueList.append(innerDataValue);
4111 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
4112 settingsMap[
"bdaddr"] = (nmHWAddress).getAsVariantData();
4115 settingsMap.remove(
"bdaddr");
4117 UPDATE_STRING_SETTING_IF_VALID(tdeBluetoothModeToNMBluetoothMode(bluetoothConnection->type),
"type", settingsMap)
4119 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4120 groupValid = (settingsMap.count() > 0);
4122 if (groupValid) outerMap.insert(
"bluetooth", dbusData,
true);
else outerMap.remove(
"bluetooth");
4125 dbusData = outerMap[
"cdma"];
4126 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::CDMA)) {
4127 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4129 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.providerDataNumber,
"number", settingsMap)
4130 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.username, "username", settingsMap)
4131 if (connection->pppoeConfig.secretsValid) {
4132 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.password,
"password", settingsMap)
4134 settingsMap[
"password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->cdmaConfig.passwordFlags))).getAsVariantData();
4136 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4137 groupValid = (settingsMap.count() > 0);
4139 if (groupValid) outerMap.insert(
"cdma", dbusData,
true);
else outerMap.remove(
"cdma");
4142 dbusData = outerMap[
"gsm"];
4143 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::GSM)) {
4144 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4146 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.providerDataNumber,
"number", settingsMap)
4147 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.username, "username", settingsMap)
4148 if (connection->pppoeConfig.secretsValid) {
4149 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.password,
"password", settingsMap)
4151 settingsMap[
"password-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.passwordFlags))).getAsVariantData();
4152 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.accessPointName,
"apn", settingsMap)
4153 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.networkID, "network-
id", settingsMap)
4154 settingsMap["network-type"] = (TQT_DBusData::fromInt32(tdeGSMModeToNMGSMMode(modemConnection->gsmConfig.networkType))).getAsVariantData();
4155 if (connection->pppoeConfig.secretsValid) {
4156 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.pin,
"pin", settingsMap)
4158 settingsMap[
"pin-flags"] = (TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.pinFlags))).getAsVariantData();
4159 settingsMap[
"allowed-bands"] = (TQT_DBusData::fromUInt32(modemConnection->gsmConfig.allowedFrequencyBands)).getAsVariantData();
4160 settingsMap[
"home-only"] = (TQT_DBusData::fromBool(!(modemConnection->gsmConfig.allowRoaming))).getAsVariantData();
4162 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4163 groupValid = (settingsMap.count() > 0);
4165 if (groupValid) outerMap.insert(
"gsm", dbusData,
true);
else outerMap.remove(
"gsm");
4168 dbusData = outerMap[
"ipv4"];
4170 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4173 TQT_DBusDataValueList valueList;
4174 TDENetworkSingleIPConfigurationList::iterator it;
4175 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4176 if ((*it).isIPv4()) {
4177 TQT_DBusDataValueList innerValueList;
4180 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4182 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4184 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4185 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4188 if (valueList.count() <= 0) {
4190 TQT_DBusData valueList;
4191 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4192 settingsMap[
"addresses"] = (TQT_DBusData::fromList(TQT_DBusDataList(valueList))).getAsVariantData();
4195 settingsMap[
"addresses"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4199 if (!connection->ipConfig.dhcpClientIdentifier.isNull()) {
4200 settingsMap[
"dhcp-client-id"] = (TQT_DBusData::fromString(connection->ipConfig.dhcpClientIdentifier)).getAsVariantData();
4204 TQT_DBusDataValueList valueList;
4205 TDENetworkAddressList::iterator it;
4206 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4207 if ((*it).isIPv4Address()) {
4208 valueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).toIPv4Address())));
4211 if (valueList.count() <= 0) {
4213 settingsMap[
"dns"] = (TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32))).getAsVariantData();
4216 settingsMap[
"dns"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4220 TQT_DBusDataValueList valueList;
4221 TDENetworkSearchDomainList::iterator it;
4222 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4223 if ((*it).isIPv4()) {
4224 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4227 if (valueList.count() > 0) settingsMap[
"dns-search"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4230 settingsMap[
"ignore-auto-dns"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS))).getAsVariantData();
4233 settingsMap[
"may-fail"] = (TQT_DBusData::fromBool(!connection->requireIPV4)).getAsVariantData();
4237 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP) {
4240 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4LocalOnly) {
4241 method =
"link-local";
4243 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer) {
4246 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4Disabled) {
4247 method =
"disabled";
4252 if (!method.isNull())
4253 settingsMap[
"method"] = (TQT_DBusData::fromString(method)).getAsVariantData();
4256 settingsMap[
"ignore-auto-routes"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPRoutes))).getAsVariantData();
4259 settingsMap[
"never-default"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute))).getAsVariantData();
4262 TQT_DBusDataValueList valueList;
4263 TDENetworkSingleRouteConfigurationList::iterator it;
4264 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4265 if ((*it).isIPv4()) {
4266 TQT_DBusDataValueList innerValueList;
4269 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4271 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4273 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4275 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4276 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4279 if (valueList.count() <= 0) {
4281 TQT_DBusData valueList;
4282 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4283 settingsMap[
"routes"] = (TQT_DBusData::fromList(TQT_DBusDataList(valueList))).getAsVariantData();
4286 settingsMap[
"routes"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4290 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4291 groupValid = (settingsMap.count() > 0);
4293 if (groupValid) outerMap.insert(
"ipv4", dbusData,
true);
else outerMap.remove(
"ipv4");
4296 dbusData = outerMap[
"ipv6"];
4298 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4301 TQT_DBusDataValueList valueList;
4302 TDENetworkSingleIPConfigurationList::iterator it;
4303 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4304 if ((*it).isIPv6()) {
4306 Q_IPV6ADDR v6address;
4307 TQT_DBusDataValueList innerValueList;
4308 TQT_DBusDataValueList innerMostValueList;
4311 innerMostValueList.clear();
4312 v6address = (*it).ipAddress.toIPv6Address();
4313 for (i=0; i<16; i++) {
4314 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4316 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4318 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4320 innerMostValueList.clear();
4321 v6address = (*it).gateway.toIPv6Address();
4322 for (i=0; i<16; i++) {
4323 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4325 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4326 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4329 if (valueList.count() <= 0) {
4331 TQT_DBusDataValueList innerValueList;
4332 TQT_DBusDataValueList innerMostValueList;
4335 innerMostValueList.clear();
4336 innerMostValueList.append(TQT_DBusData::fromByte(0));
4337 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4339 innerValueList.append(TQT_DBusData::fromUInt32(0));
4341 innerMostValueList.clear();
4342 innerMostValueList.append(TQT_DBusData::fromByte(0));
4343 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4344 settingsMap[
"addresses"] = (TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList)))).getAsVariantData();
4347 settingsMap[
"addresses"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4351 TQT_DBusDataValueList valueList;
4352 TDENetworkAddressList::iterator it;
4353 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4354 if ((*it).isIPv6Address()) {
4356 Q_IPV6ADDR v6address;
4357 TQT_DBusDataValueList innerValueList;
4358 v6address = (*it).toIPv6Address();
4359 for (i=0; i<16; i++) {
4360 innerValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4362 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4365 if (valueList.count() <= 0) {
4367 TQT_DBusData valueList;
4368 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::Byte));
4369 settingsMap[
"dns"] = (TQT_DBusData::fromList(TQT_DBusDataList(valueList))).getAsVariantData();
4372 settingsMap[
"dns"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4376 TQT_DBusDataValueList valueList;
4377 TDENetworkSearchDomainList::iterator it;
4378 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4379 if ((*it).isIPv6()) {
4380 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4383 if (valueList.count() > 0) settingsMap[
"dns-search"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4386 settingsMap[
"ignore-auto-dns"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS))).getAsVariantData();
4389 settingsMap[
"may-fail"] = (TQT_DBusData::fromBool(!connection->requireIPV6)).getAsVariantData();
4393 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP) {
4396 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6LocalOnly) {
4397 method =
"link-local";
4399 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer) {
4402 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6Disabled) {
4408 if (!method.isNull())
4409 settingsMap[
"method"] = (TQT_DBusData::fromString(method)).getAsVariantData();
4412 settingsMap[
"ignore-auto-routes"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPRoutes))).getAsVariantData();
4415 settingsMap[
"never-default"] = (TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute))).getAsVariantData();
4418 TQT_DBusDataValueList valueList;
4419 TDENetworkSingleRouteConfigurationList::iterator it;
4420 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4421 if ((*it).isIPv6()) {
4423 Q_IPV6ADDR v6address;
4424 TQT_DBusDataValueList innerValueList;
4425 TQT_DBusDataValueList innerMostValueList;
4428 innerMostValueList.clear();
4429 v6address = (*it).ipAddress.toIPv6Address();
4430 for (i=0; i<16; i++) {
4431 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4433 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4435 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4437 innerMostValueList.clear();
4438 v6address = (*it).gateway.toIPv6Address();
4439 for (i=0; i<16; i++) {
4440 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4442 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4444 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4445 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4448 if (valueList.count() <= 0) {
4450 TQT_DBusDataValueList innerValueList;
4451 TQT_DBusDataValueList innerMostValueList;
4454 innerMostValueList.clear();
4455 innerMostValueList.append(TQT_DBusData::fromByte(0));
4456 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4458 innerValueList.append(TQT_DBusData::fromUInt32(0));
4460 innerMostValueList.clear();
4461 innerMostValueList.append(TQT_DBusData::fromByte(0));
4462 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4464 innerValueList.append(TQT_DBusData::fromUInt32(0));
4465 settingsMap[
"routes"] = (TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList)))).getAsVariantData();
4468 settingsMap[
"routes"] = (TQT_DBusData::fromTQValueList(valueList)).getAsVariantData();
4472 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4473 groupValid = (settingsMap.count() > 0);
4475 if (groupValid) outerMap.insert(
"ipv6", dbusData,
true);
else outerMap.remove(
"ipv6");
4477 connectionSettingsMap = TQT_DBusDataMap<TQString>(outerMap);
4484 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4485 printf(
"[network-manager comm debug] uploaded DBUS object structure map follows:\n"); fflush(stdout);
4486 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
4487 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4490 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4491 printf(
"[network-manager comm debug] Updating existing connection\n"); fflush(stdout);
4492 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4494 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4495 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4496 connect(&connectionSettings, SIGNAL(UpdateAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4498 ret = connectionSettings.UpdateAsync(asyncCallID, connectionSettingsMap, error);
4499 if (ret && error.isValid()) {
4501 PRINT_ERROR((error.name() +
": " + error.message()))
4505 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4506 TQTimer nmCallTimeoutTimer;
4507 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
4508 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4509 tqApp->processEvents();
4510 if (!nmCallTimeoutTimer.isActive()) {
4511 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4516 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4521 PRINT_ERROR((error.name() +
": " + error.message()))
4526 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4527 printf(
"[network-manager comm debug] Creating new connection\n"); fflush(stdout);
4528 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS
4530 connect(d->m_networkManagerSettings, SIGNAL(AddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4531 connect(d->m_networkManagerSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4533 ret = d->m_networkManagerSettings->AddConnectionAsync(asyncCallID, connectionSettingsMap, error);
4534 if (ret && error.isValid()) {
4536 PRINT_ERROR((error.name() +
": " + error.message()))
4540 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4541 TQTimer nmCallTimeoutTimer;
4542 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
4543 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4544 if (!nmCallTimeoutTimer.isActive()) {
4545 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4549 tqApp->processEvents();
4551 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4552 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4553 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4555 if (!d->nmAddConnectionAsyncResponse[asyncCallID].ascii()) {
4556 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4557 command_failed = true;
4559 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4560 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4561 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4563 return ((!timed_out) && (!command_failed));
4567 PRINT_ERROR((error.name() +
": " + error.message()))
4573 bool TDENetworkConnectionManager_BackendNM::deleteConnection(TQString uuid) {
4574 TQT_DBusObjectPath existingConnection;
4575 TQT_DBusError error;
4576 bool timed_out =
false;
4578 if (d->m_networkManagerSettings) {
4579 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4582 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4583 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4584 connect(&connectionSettings, SIGNAL(DeleteAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4586 ret = connectionSettings.DeleteAsync(asyncCallID, error);
4587 if (ret && error.isValid()) {
4589 PRINT_ERROR((error.name() +
": " + error.message()))
4593 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4594 TQTimer nmCallTimeoutTimer;
4595 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
4596 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4597 tqApp->processEvents();
4598 if (!nmCallTimeoutTimer.isActive()) {
4599 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4604 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4608 PRINT_ERROR(TQString(
"Unable to remove connection with uuid '%1'").arg(uuid))
4613 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4618 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4623 bool TDENetworkConnectionManager_BackendNM::verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type, TDENetworkErrorStringMap* reason) {
4631 if (connection->friendlyName ==
"") {
4632 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidConnectionSetting] =
i18n(
"Connection name is invalid");
4633 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidConnectionSetting;
4637 if (connection->ipConfig.valid) {
4639 TDENetworkSingleIPConfigurationList::iterator it;
4640 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4641 if ((*it).isIPv4()) {
4642 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP)) {
4643 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4644 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv4Setting] =
i18n(
"IPv4 address is invalid");
4645 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv4Setting;
4650 else if ((*it).isIPv6()) {
4651 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP)) {
4652 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4653 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv6Setting] =
i18n(
"IPv6 address is invalid");
4654 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv6Setting;
4662 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
4663 if (wiFiConnection) {
4664 if (wiFiConnection->SSID.count() < 1) {
4665 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessSetting] =
i18n(
"No SSID provided");
4666 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessSetting;
4669 if (wiFiConnection->securityRequired) {
4670 if (wiFiConnection->securitySettings.secretsValid) {
4671 if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WEP) || ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && ((wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Open) || (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Shared)))) {
4672 if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Hexadecimal) {
4673 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4674 if ((wiFiConnection->securitySettings.wepKey0.length() != 10) && (wiFiConnection->securitySettings.wepKey0.length() != 26)) {
4675 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4676 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4680 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4681 if ((wiFiConnection->securitySettings.wepKey1.length() != 10) && (wiFiConnection->securitySettings.wepKey1.length() != 26)) {
4682 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4683 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4687 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4688 if ((wiFiConnection->securitySettings.wepKey2.length() != 10) && (wiFiConnection->securitySettings.wepKey2.length() != 26)) {
4689 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4690 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4694 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4695 if ((wiFiConnection->securitySettings.wepKey3.length() != 10) && (wiFiConnection->securitySettings.wepKey3.length() != 26)) {
4696 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4697 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4701 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4702 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4703 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4707 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4708 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4709 if ((wiFiConnection->securitySettings.wepKey0.length() != 5) && (wiFiConnection->securitySettings.wepKey0.length() != 13)) {
4710 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 0 has invalid length");
4711 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4715 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4716 if ((wiFiConnection->securitySettings.wepKey1.length() != 5) && (wiFiConnection->securitySettings.wepKey1.length() != 13)) {
4717 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 1 has invalid length");
4718 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4722 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4723 if ((wiFiConnection->securitySettings.wepKey2.length() != 5) && (wiFiConnection->securitySettings.wepKey2.length() != 13)) {
4724 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 2 has invalid length");
4725 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4729 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4730 if ((wiFiConnection->securitySettings.wepKey3.length() != 5) && (wiFiConnection->securitySettings.wepKey3.length() != 13)) {
4731 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"WEP key 3 has invalid length");
4732 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4736 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4737 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4738 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4742 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4743 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4744 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No WEP key(s) provided");
4745 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4750 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::LEAP)) {
4751 if ((wiFiConnection->securitySettings.leapUsername.length() < 1) || (wiFiConnection->securitySettings.leapPassword.length() < 1)) {
4752 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"LEAP username and/or password not provided");
4753 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4757 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAAdHoc) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAInfrastructure) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAEnterprise)) {
4758 if (wiFiConnection->securitySettings.psk.length() == 64) {
4761 wiFiConnection->securitySettings.psk.toULongLong(&ok, 16);
4763 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"Hexadecimal length PSK contains non-hexadecimal characters");
4764 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4768 else if ((wiFiConnection->securitySettings.psk.length() < 8) || (wiFiConnection->securitySettings.psk.length() > 63)) {
4769 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] =
i18n(
"No PSK provided");
4770 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4781 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::initiateConnection(TQString uuid) {
4782 TQT_DBusObjectPath existingConnection;
4783 TQT_DBusError error;
4785 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
4786 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4788 if (!m_networkDevice) {
4789 d->m_dbusDeviceString =
"/";
4792 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
4794 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4795 TQT_DBusObjectPath active_connection;
4796 ret = d->m_networkManagerProxy->ActivateConnection(existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), active_connection, error);
4797 if (ret && error.isValid()) {
4799 PRINT_ERROR((error.name() +
": " + error.message()))
4801 return checkConnectionStatus(uuid);
4802 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4803 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4804 connect(d->m_networkManagerProxy, SIGNAL(ActivateConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4805 connect(d->m_networkManagerProxy, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4806 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
4808 ret = d->m_networkManagerProxy->ActivateConnectionAsync(asyncCallID, existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), error);
4809 if (ret && error.isValid()) {
4811 PRINT_ERROR((error.name() +
": " + error.message()))
4813 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4816 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4817 TQTimer nmCallTimeoutTimer;
4818 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
4819 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4820 if (!nmCallTimeoutTimer.isActive()) {
4821 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4824 tqApp->processEvents();
4826 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4827 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4828 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4829 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4831 if (!d->nmAddConnectionAsyncResponse[asyncCallID].ascii()) {
4832 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4834 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4835 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4837 return checkConnectionStatus(uuid);
4841 PRINT_ERROR((error.name() +
": " + error.message()))
4842 return checkConnectionStatus(uuid);
4845 return checkConnectionStatus(uuid);
4847 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4850 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4851 return TDENetworkConnectionStatus::Invalid;
4855 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4856 return TDENetworkConnectionStatus::Invalid;
4860 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::checkConnectionStatus(TQString uuid) {
4861 TQT_DBusObjectPath existingConnection;
4862 TQT_DBusError error;
4863 if (d->m_networkManagerProxy) {
4864 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4865 TQT_DBusObjectPathList::iterator it;
4866 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4867 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4868 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4869 if (activeConnection.getUuid(error) == uuid) {
4870 return nmDeviceStateToTDEDeviceState(activeConnection.getState(error));
4873 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4874 return TDENetworkConnectionStatus::Invalid;
4877 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4878 return TDENetworkConnectionStatus::Invalid;
4882 TQT_DBusObjectPath TDENetworkConnectionManager_BackendNM::getActiveConnectionPath(TQString uuid) {
4883 TQT_DBusObjectPath existingConnection;
4884 TQT_DBusError error;
4885 if (d->m_networkManagerProxy) {
4886 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4887 TQT_DBusObjectPathList::iterator it;
4888 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4889 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4890 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4891 if (activeConnection.getUuid(error) == uuid) {
4895 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
4896 return TQT_DBusObjectPath();
4899 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4900 return TQT_DBusObjectPath();
4904 TQStringList TDENetworkConnectionManager_BackendNM::connectionPhysicalDeviceUUIDs(TQString uuid) {
4905 if (deviceType() == TDENetworkDeviceType::BackendOnly) {
4906 return TQStringList();
4909 TQT_DBusObjectPath existingConnection;
4910 TQT_DBusError error;
4911 if (d->m_networkManagerProxy) {
4912 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
4913 TQT_DBusObjectPathList::iterator it;
4915 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
4916 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
4917 activeConnection.setConnection(TQT_DBusConnection::systemBus());
4918 if (activeConnection.getUuid(error) == uuid) {
4919 TQValueList<TQT_DBusObjectPath> deviceList = activeConnection.getDevices(error);
4920 TQT_DBusObjectPathList::iterator it2;
4921 for (it2 = deviceList.begin(); it2 != deviceList.end(); ++it2) {
4922 TQString devUUID = tdeDeviceUUIDForGenericDevice(*it2);
4923 if (devUUID !=
"") {
4924 ret.append(devUUID);
4932 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4933 return TQStringList();
4937 TDENetworkVPNTypeList TDENetworkConnectionManager_BackendNM::availableVPNTypes() {
4938 TDENetworkVPNTypeList ret;
4941 TQDir serviceDir(NM_PLUGIN_SERVICE_DIR, TQString(), TQDir::Name|TQDir::IgnoreCase, TQDir::Files);
4942 TQStringList services = serviceDir.entryList ().grep (
".name",
true);
4944 if (services.count () > 0) {
4946 for (TQStringList::Iterator i = services.begin (); i != services.end (); ++i) {
4947 TQString service = NM_PLUGIN_SERVICE_DIR + TQString (
"/") + *i;
4949 tdeconfig->
setGroup (
"VPN Connection");
4951 TQString serviceName = tdeconfig->
readEntry(
"name", TQString());
4952 serviceName = serviceName.lower();
4954 if (serviceName ==
"openvpn") {
4955 ret.append(TDENetworkVPNType::OpenVPN);
4957 if (serviceName ==
"pptp") {
4958 ret.append(TDENetworkVPNType::PPTP);
4960 if (serviceName ==
"strongswan") {
4961 ret.append(TDENetworkVPNType::StrongSwan);
4963 if (serviceName ==
"vpnc") {
4964 ret.append(TDENetworkVPNType::VPNC);
4974 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::deactivateConnection(TQString uuid) {
4975 TQT_DBusObjectPath existingConnection;
4976 TQT_DBusError error;
4978 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
4979 existingConnection = getActiveConnectionPath(uuid);
4980 if (existingConnection.isValid()) {
4981 if (!m_networkDevice) {
4982 d->m_dbusDeviceString =
"/";
4985 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
4987 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4988 ret = d->m_networkManagerProxy->DeactivateConnection(existingConnection, error);
4989 if (ret && error.isValid()) {
4991 PRINT_ERROR((error.name() +
": " + error.message()))
4993 return checkConnectionStatus(uuid);
4994 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
4995 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
4996 connect(d->m_networkManagerProxy, SIGNAL(DeactivateConnectionAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4997 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING
4999 ret = d->m_networkManagerProxy->DeactivateConnectionAsync(asyncCallID, existingConnection, error);
5000 if (ret && error.isValid()) {
5002 PRINT_ERROR((error.name() +
": " + error.message()))
5004 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING
5007 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
5008 TQTimer nmCallTimeoutTimer;
5009 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS,
true);
5010 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
5011 if (!nmCallTimeoutTimer.isActive()) {
5012 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
5015 tqApp->processEvents();
5017 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
5018 return checkConnectionStatus(uuid);
5022 PRINT_ERROR((error.name() +
": " + error.message()))
5023 return checkConnectionStatus(uuid);
5026 return checkConnectionStatus(uuid);
5028 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS
5031 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
5032 return TDENetworkConnectionStatus::Invalid;
5036 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5037 return TDENetworkConnectionStatus::Invalid;
5041 TQStringList TDENetworkConnectionManager_BackendNM::validSettings() {
5044 ret.append(
"TDENetworkSingleIPConfiguration::ipAddress");
5045 ret.append(
"TDENetworkSingleIPConfiguration::networkMask");
5046 ret.append(
"TDENetworkSingleIPConfiguration::gateway");
5048 ret.append(
"TDENetworkSingleRouteConfiguration::ipAddress");
5049 ret.append(
"TDENetworkSingleRouteConfiguration::networkMask");
5050 ret.append(
"TDENetworkSingleRouteConfiguration::gateway");
5052 ret.append(
"TDENetworkIEEE8021xConfiguration::valid");
5053 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedValid");
5054 ret.append(
"TDENetworkIEEE8021xConfiguration::secretsValid");
5055 ret.append(
"TDENetworkIEEE8021xConfiguration::type");
5056 ret.append(
"TDENetworkIEEE8021xConfiguration::userName");
5057 ret.append(
"TDENetworkIEEE8021xConfiguration::anonymousUserName");
5058 ret.append(
"TDENetworkIEEE8021xConfiguration::pacFileName");
5059 ret.append(
"TDENetworkIEEE8021xConfiguration::caCertificate");
5060 ret.append(
"TDENetworkIEEE8021xConfiguration::additionalCAFilesPath");
5061 ret.append(
"TDENetworkIEEE8021xConfiguration::authServerCertSubjectMatch");
5062 ret.append(
"TDENetworkIEEE8021xConfiguration::alternateAuthServerCertSubjectMatch");
5063 ret.append(
"TDENetworkIEEE8021xConfiguration::clientCertificate");
5064 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPVersion");
5065 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPLabel");
5066 ret.append(
"TDENetworkIEEE8021xConfiguration::fastProvisioningFlags");
5067 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2NonEAPAuthMethod");
5068 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2EAPAuthMethod");
5069 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2NonEAPMethods");
5070 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2EAPMethods");
5071 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaCertificate");
5072 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaFilesPath");
5073 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AuthServerCertSubjectMatch");
5074 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AlternateAuthServerCertSubjectMatch");
5075 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2ClientCertificate");
5076 ret.append(
"TDENetworkIEEE8021xConfiguration::password");
5077 ret.append(
"TDENetworkIEEE8021xConfiguration::passwordFlags");
5078 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPassword");
5079 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPasswordFlags");
5080 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKey");
5081 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPassword");
5082 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPasswordFlags");
5083 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKey");
5084 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPassword");
5085 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPasswordFlags");
5086 ret.append(
"TDENetworkIEEE8021xConfiguration::forceSystemCaCertificates");
5088 ret.append(
"TDENetworkPPPConfiguration::valid");
5089 ret.append(
"TDENetworkPPPConfiguration::requireServerAuthentication");
5090 ret.append(
"TDENetworkPPPConfiguration::flags");
5091 ret.append(
"TDENetworkPPPConfiguration::baudRate");
5092 ret.append(
"TDENetworkPPPConfiguration::mru");
5093 ret.append(
"TDENetworkPPPConfiguration::mtu");
5094 ret.append(
"TDENetworkPPPConfiguration::lcpEchoPingInterval");
5095 ret.append(
"TDENetworkPPPConfiguration::lcpEchoFailureThreshold");
5097 ret.append(
"TDENetworkPPPOEConfiguration::valid");
5098 ret.append(
"TDENetworkPPPOEConfiguration::secretsValid");
5099 ret.append(
"TDENetworkPPPOEConfiguration::networkServiceProvider");
5100 ret.append(
"TDENetworkPPPOEConfiguration::username");
5101 ret.append(
"TDENetworkPPPOEConfiguration::password");
5102 ret.append(
"TDENetworkPPPOEConfiguration::passwordFlags");
5104 ret.append(
"TDENetworkSerialConfiguration::valid");
5105 ret.append(
"TDENetworkSerialConfiguration::baudRate");
5106 ret.append(
"TDENetworkSerialConfiguration::byteWidth");
5107 ret.append(
"TDENetworkSerialConfiguration::parity");
5108 ret.append(
"TDENetworkSerialConfiguration::stopBits");
5109 ret.append(
"TDENetworkSerialConfiguration::txDelay");
5111 ret.append(
"TDENetworkCDMAConfiguration::valid");
5112 ret.append(
"TDENetworkCDMAConfiguration::secretsValid");
5113 ret.append(
"TDENetworkCDMAConfiguration::providerDataNumber");
5114 ret.append(
"TDENetworkCDMAConfiguration::username");
5115 ret.append(
"TDENetworkCDMAConfiguration::password");
5116 ret.append(
"TDENetworkCDMAConfiguration::passwordFlags");
5118 ret.append(
"TDENetworkGSMConfiguration::valid");
5119 ret.append(
"TDENetworkGSMConfiguration::secretsValid");
5120 ret.append(
"TDENetworkGSMConfiguration::providerDataNumber");
5121 ret.append(
"TDENetworkGSMConfiguration::username");
5122 ret.append(
"TDENetworkGSMConfiguration::password");
5123 ret.append(
"TDENetworkGSMConfiguration::passwordFlags");
5124 ret.append(
"TDENetworkGSMConfiguration::accessPointName");
5125 ret.append(
"TDENetworkGSMConfiguration::networkID");
5126 ret.append(
"TDENetworkGSMConfiguration::networkType");
5127 ret.append(
"TDENetworkGSMConfiguration::pin");
5128 ret.append(
"TDENetworkGSMConfiguration::pinFlags");
5129 ret.append(
"TDENetworkGSMConfiguration::allowedFrequencyBands");
5130 ret.append(
"TDENetworkGSMConfiguration::allowRoaming");
5132 ret.append(
"TDENetworkWiFiSecurityConfiguration::valid");
5133 ret.append(
"TDENetworkWiFiSecurityConfiguration::secretsValid");
5134 ret.append(
"TDENetworkWiFiSecurityConfiguration::keyType");
5135 ret.append(
"TDENetworkWiFiSecurityConfiguration::authType");
5136 ret.append(
"TDENetworkWiFiSecurityConfiguration::wpaVersion");
5137 ret.append(
"TDENetworkWiFiSecurityConfiguration::cipher");
5138 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey0");
5139 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey1");
5140 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey2");
5141 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey3");
5142 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyFlags");
5143 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyIndex");
5144 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyType");
5145 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedPairWiseCiphers");
5146 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedGroupWiseCiphers");
5147 ret.append(
"TDENetworkWiFiSecurityConfiguration::psk");
5148 ret.append(
"TDENetworkWiFiSecurityConfiguration::pskFlags");
5149 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapUsername");
5150 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPassword");
5151 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPasswordFlags");
5153 ret.append(
"TDENetworkIPConfiguration::valid");
5154 ret.append(
"TDENetworkIPConfiguration::connectionFlags");
5155 ret.append(
"TDENetworkIPConfiguration::ipConfigurations");
5156 ret.append(
"TDENetworkIPConfiguration::routeConfigurations");
5157 ret.append(
"TDENetworkIPConfiguration::broadcast");
5158 ret.append(
"TDENetworkIPConfiguration::destination");
5159 ret.append(
"TDENetworkIPConfiguration::resolvers");
5160 ret.append(
"TDENetworkIPConfiguration::searchDomains");
5161 ret.append(
"TDENetworkIPConfiguration::dhcpClientIdentifier");
5163 ret.append(
"TDENetworkConnection::UUID");
5164 ret.append(
"TDENetworkConnection::friendlyName");
5165 ret.append(
"TDENetworkConnection::ipConfig");
5166 ret.append(
"TDENetworkConnection::lockedHWAddress");
5167 ret.append(
"TDENetworkConnection::manualHWAddress");
5168 ret.append(
"TDENetworkConnection::readOnly");
5169 ret.append(
"TDENetworkConnection::autoConnect");
5170 ret.append(
"TDENetworkConnection::fullDuplex");
5171 ret.append(
"TDENetworkConnection::requireIPV4");
5172 ret.append(
"TDENetworkConnection::requireIPV6");
5173 ret.append(
"TDENetworkConnection::mtu");
5174 ret.append(
"TDENetworkConnection::eapConfig");
5175 ret.append(
"TDENetworkConnection::pppConfig");
5176 ret.append(
"TDENetworkConnection::pppoeConfig");
5177 ret.append(
"TDENetworkConnection::serialConfig");
5178 ret.append(
"TDENetworkConnection::authorizedUsers");
5179 ret.append(
"TDENetworkConnection::masterConnectionUUID");
5180 ret.append(
"TDENetworkConnection::slaveType");
5181 ret.append(
"TDENetworkConnection::lastKnownConnection");
5183 ret.append(
"TDEWiFiConnection::SSID");
5184 ret.append(
"TDEWiFiConnection::operatingMode");
5185 ret.append(
"TDEWiFiConnection::bandRestriction");
5186 ret.append(
"TDEWiFiConnection::channelRestriction");
5187 ret.append(
"TDEWiFiConnection::bitRateRestriction");
5188 ret.append(
"TDEWiFiConnection::powerRestriction");
5189 ret.append(
"TDEWiFiConnection::accessPointRestriction");
5190 ret.append(
"TDEWiFiConnection::blacklistedBSSIDs");
5191 ret.append(
"TDEWiFiConnection::heardBSSIDs");
5192 ret.append(
"TDEWiFiConnection::isHiddenNetwork");
5193 ret.append(
"TDEWiFiConnection::securityRequired");
5194 ret.append(
"TDEWiFiConnection::securitySettings");
5196 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5198 ret.append(
"TDEVPNConnection::vpnPluginID");
5199 ret.append(
"TDEVPNConnection::lockedUserName");
5200 ret.append(
"TDEVPNConnection::pluginData");
5201 ret.append(
"TDEVPNConnection::secretsValid");
5202 ret.append(
"TDEVPNConnection::pluginSecrets");
5204 ret.append(
"TDEWiMaxConnection::networkServiceProvider");
5206 ret.append(
"TDEVLANConnection::kernelName");
5207 ret.append(
"TDEVLANConnection::parentConnectionUUID");
5208 ret.append(
"TDEVLANConnection::vlanID");
5209 ret.append(
"TDEVLANConnection::vlanFlags");
5210 ret.append(
"TDEVLANConnection::ingressPriorityMap");
5211 ret.append(
"TDEVLANConnection::egressPriorityMap");
5213 ret.append(
"TDEOLPCMeshConnection::SSID");
5214 ret.append(
"TDEOLPCMeshConnection::channel");
5215 ret.append(
"TDEOLPCMeshConnection::anycastDHCPHWAddress");
5217 ret.append(
"TDEBluetoothConnection::type");
5219 ret.append(
"TDEModemConnection::type");
5220 ret.append(
"TDEModemConnection::cdmaConfig");
5221 ret.append(
"TDEModemConnection::gsmConfig");
5223 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5228 TDENetworkWiFiAPInfo* TDENetworkConnectionManager_BackendNM::getAccessPointDetails(TQString dbusPath) {
5229 if (dbusPath ==
"") {
5233 TDENetworkWiFiAPInfo* apInfo =
new TDENetworkWiFiAPInfo;
5234 TQT_DBusError error;
5236 DBus::AccessPointProxy accessPoint(NM_DBUS_SERVICE, dbusPath);
5237 accessPoint.setConnection(TQT_DBusConnection::systemBus());
5239 TQValueList<TQ_UINT8> nmSSID = accessPoint.getSsid(error);
5240 if (error.isValid()) {
5244 TQValueList<TQ_UINT8>::iterator it;
5246 for (it = nmSSID.begin(); it != nmSSID.end(); ++it) {
5247 apInfo->SSID.resize(index+1);
5248 apInfo->SSID[index] = (*it);
5252 apInfo->wpaFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getWpaFlags(error));
5253 apInfo->rsnFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getRsnFlags(error));
5254 apInfo->frequency = accessPoint.getFrequency(error);
5255 apInfo->BSSID.fromString(accessPoint.getHwAddress(error));
5256 apInfo->maxBitrate = accessPoint.getMaxBitrate(error);
5257 apInfo->signalQuality = (accessPoint.getStrength(error)/100.0);
5259 apInfo->valid =
true;
5264 TDENetworkHWNeighborList* TDENetworkConnectionManager_BackendNM::siteSurvey() {
5265 TQT_DBusError error;
5268 TDENetworkDeviceType::TDENetworkDeviceType myDeviceType = deviceType();
5269 d->m_dbusDeviceString = deviceInterfaceString(deviceNode());
5270 clearTDENetworkHWNeighborList();
5272 if (myDeviceType == TDENetworkDeviceType::WiFi) {
5273 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
5274 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
5277 TQT_DBusObjectPathList accessPoints;
5278 ret = wiFiDevice.GetAccessPoints(accessPoints, error);
5280 TQT_DBusObjectPathList::iterator it;
5281 for (it = accessPoints.begin(); it != accessPoints.end(); ++it) {
5282 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(TQString(*it));
5284 m_hwNeighborList->append(apInfo);
5286 d->internalProcessWiFiAccessPointAdded(*it);
5292 return m_hwNeighborList;
5295 bool TDENetworkConnectionManager_BackendNM::networkingEnabled() {
5296 if (d->m_networkManagerProxy) {
5298 TQT_DBusError error;
5299 ret = d->m_networkManagerProxy->getNetworkingEnabled(error);
5300 if (error.isValid()) {
5302 PRINT_ERROR((error.name() +
": " + error.message()))
5314 bool TDENetworkConnectionManager_BackendNM::wiFiHardwareEnabled() {
5315 if (d->m_networkManagerProxy) {
5317 TQT_DBusError error;
5318 ret = d->m_networkManagerProxy->getWirelessHardwareEnabled(error);
5319 if (error.isValid()) {
5321 PRINT_ERROR((error.name() +
": " + error.message()))
5333 bool TDENetworkConnectionManager_BackendNM::enableNetworking(
bool enable) {
5337 if (d->m_networkManagerProxy) {
5339 TQT_DBusError error;
5340 d->m_networkManagerProxy->SleepAsync(asynccallid, !enable, error);
5341 if (error.isValid()) {
5343 PRINT_ERROR((error.name() +
": " + error.message()))
5357 bool TDENetworkConnectionManager_BackendNM::enableWiFi(
bool enable) {
5358 if (d->m_networkManagerProxy) {
5359 TQT_DBusError error;
5360 d->m_networkManagerProxy->setWirelessEnabled(enable, error);
5361 if (error.isValid()) {
5363 PRINT_ERROR((error.name() +
": " + error.message()))
5375 bool TDENetworkConnectionManager_BackendNM::wiFiEnabled() {
5376 if (d->m_networkManagerProxy) {
5378 TQT_DBusError error;
5379 ret = d->m_networkManagerProxy->getWirelessEnabled(error);
5380 if (error.isValid()) {
5382 PRINT_ERROR((error.name() +
": " + error.message()))
5394 TQStringList TDENetworkConnectionManager_BackendNM::defaultNetworkDevices() {
5398 TQT_DBusObjectPath existingConnection;
5399 TQT_DBusError error;
5400 if (d->m_networkManagerProxy) {
5401 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5402 TQT_DBusObjectPathList::iterator it;
5403 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5404 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5405 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5406 if (activeConnection.getDefault(error)) {
5408 TQString uuid = activeConnection.getUuid(error);
5409 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5410 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5414 else if (activeConnection.getDefault6(error)) {
5416 TQString uuid = activeConnection.getUuid(error);
5417 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5418 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5426 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5427 return TQStringList();
5431 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) {
5433 m_dbusSignalConnection =
new TQT_DBusConnection(TQT_DBusConnection::systemBus());
5434 m_dbusSignalReceiver =
new TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(
this);
5435 m_dbusSignalConnection->connect(m_dbusSignalReceiver, TQT_SLOT(dbusSignal(
const TQT_DBusMessage&)));
5438 TDENetworkConnectionManager_BackendNMPrivate::~TDENetworkConnectionManager_BackendNMPrivate() {
5440 if (m_dbusSignalConnection)
delete m_dbusSignalConnection;
5441 if (m_dbusSignalReceiver)
delete m_dbusSignalReceiver;
5444 TQMap<TQString, DBus::AccessPointProxy*>::iterator it;
5445 for (it = m_accessPointProxyList.begin(); it != m_accessPointProxyList.end(); ++it) {
5446 DBus::AccessPointProxy *apProxy = it.data();
5451 m_accessPointProxyList.clear();
5454 #include "network-manager.moc"
5455 #include "network-manager_p.moc"