21 #include <tqdbusmessage.h> 23 #include "tdeconfig.h" 24 #include "tdehardwaredevices.h" 25 #include "tdenetworkdevice.h" 27 #include "network-manager.h" 28 #include "network-manager_p.h" 32 #define PRINT_ERROR(x) printf("[TDE NM Backend ERROR] [%s:%d] %s\n", __FILE__, __LINE__, x.ascii()); 34 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 35 #define PRINT_WARNING(x) printf("[TDE NM Backend WARNING] [%s:%d] %s\n", __FILE__, __LINE__, x.ascii()); 37 #define PRINT_WARNING(x) 40 #define UPDATE_STRING_SETTING_IF_VALID(string, key, settingsMap) if (!string.isNull()) settingsMap[key] = convertDBUSDataToVariantData(TQT_DBusData::fromString(string)); \ 41 else settingsMap.remove(key); 43 #define NM_ASYNC_TIMEOUT_MS 1000 45 #define NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS (5*60*1000) 48 #define USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 1 51 TQT_DBusData convertDBUSDataToVariantData(TQT_DBusData);
53 TQ_UINT32 reverseIPV4ByteOrder(TQ_UINT32 address) {
55 unsigned char valuearray[4];
56 valuearray[0] = (address & 0xff000000) >> 24;
57 valuearray[1] = (address & 0x00ff0000) >> 16;
58 valuearray[2] = (address & 0x0000ff00) >> 8;
59 valuearray[3] = (address & 0x000000ff) >> 0;
61 ret = ret | (valuearray[0] << 0);
62 ret = ret | (valuearray[1] << 8);
63 ret = ret | (valuearray[2] << 16);
64 ret = ret | (valuearray[3] << 24);
68 void printDBUSObjectStructure(TQT_DBusData
object,
int level=0, TQString mapKey=TQString::null) {
70 TQString levelIndent =
"";
71 for (i=0; i<level; i++) {
72 levelIndent = levelIndent +
" ";
74 TQCString signature =
object.buildDBusSignature();
76 if (
object.type() == TQT_DBusData::String) {
77 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toString().ascii()); fflush(stdout);
79 else if (
object.type() == TQT_DBusData::Bool) {
80 printf(
"%s%s\t%s%s'%s'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ", (
object.toBool())?
"true":
"false"); fflush(stdout);
82 else if (
object.type() == TQT_DBusData::Byte) {
83 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toByte()); fflush(stdout);
85 else if (
object.type() == TQT_DBusData::Int16) {
86 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt16()); fflush(stdout);
88 else if (
object.type() == TQT_DBusData::UInt16) {
89 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt16()); fflush(stdout);
91 else if (
object.type() == TQT_DBusData::Int32) {
92 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt32()); fflush(stdout);
94 else if (
object.type() == TQT_DBusData::UInt32) {
95 printf(
"%s%s\t%s%s'%d'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt32()); fflush(stdout);
97 else if (
object.type() == TQT_DBusData::Int64) {
98 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toInt64()); fflush(stdout);
100 else if (
object.type() == TQT_DBusData::UInt64) {
101 printf(
"%s%s\t%s%s'%lld'\n", levelIndent.ascii(), signature.data(), (mapKey.isNull())?
"":mapKey.ascii(), (mapKey.isNull())?
"":
" = ",
object.toUInt64()); fflush(stdout);
104 printf(
"%s%s\n", levelIndent.ascii(), signature.data()); fflush(stdout);
107 if (
object.type() == TQT_DBusData::Map) {
110 TQMap<TQString, TQT_DBusData> outerMap =
object.toStringKeyMap().toTQMap();
111 TQMap<TQString, TQT_DBusData>::const_iterator it;
112 for (it = outerMap.begin(); it != outerMap.end(); ++it) {
113 printDBUSObjectStructure(*it, level+1, it.key());
116 else if (
object.type() == TQT_DBusData::List) {
117 TQT_DBusDataValueList valueList =
object.toTQValueList();
118 TQT_DBusDataValueList::const_iterator it;
119 for (it = valueList.begin(); it != valueList.end(); ++it) {
120 printDBUSObjectStructure(*it, level+1);
123 else if (
object.type() == TQT_DBusData::Variant) {
124 TQT_DBusVariant dataValueVariant =
object.toVariant();
125 TQT_DBusData dataValue = dataValueVariant.value;
126 printDBUSObjectStructure(dataValue, level+1, mapKey);
130 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmGlobalStateToTDEGlobalState(TQ_UINT32 nmType) {
131 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
133 if (nmType == NM_STATE_UNKNOWN) {
134 ret |= TDENetworkGlobalManagerFlags::Unknown;
136 else if (nmType == NM_STATE_ASLEEP) {
137 ret |= TDENetworkGlobalManagerFlags::Disconnected;
138 ret |= TDENetworkGlobalManagerFlags::Sleeping;
140 else if (nmType == NM_STATE_DISCONNECTED) {
141 ret |= TDENetworkGlobalManagerFlags::Disconnected;
143 else if (nmType == NM_STATE_DISCONNECTING) {
144 ret |= TDENetworkGlobalManagerFlags::Connected;
145 ret |= TDENetworkGlobalManagerFlags::DeactivatingLink;
147 else if (nmType == NM_STATE_CONNECTING) {
148 ret |= TDENetworkGlobalManagerFlags::Disconnected;
149 ret |= TDENetworkGlobalManagerFlags::EstablishingLink;
151 else if (nmType == NM_STATE_CONNECTED_LOCAL) {
152 ret |= TDENetworkGlobalManagerFlags::Connected;
153 ret |= TDENetworkGlobalManagerFlags::LinkLocalAccess;
155 else if (nmType == NM_STATE_CONNECTED_SITE) {
156 ret |= TDENetworkGlobalManagerFlags::Connected;
157 ret |= TDENetworkGlobalManagerFlags::SiteLocalAccess;
159 else if (nmType == NM_STATE_CONNECTED_GLOBAL) {
160 ret |= TDENetworkGlobalManagerFlags::Connected;
161 ret |= TDENetworkGlobalManagerFlags::GlobalAccess;
167 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags nmVPNStateToTDEGlobalState(TQ_UINT32 nmType) {
168 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags ret = TDENetworkGlobalManagerFlags::Unknown;
170 if (nmType == NM_VPN_STATE_UNKNOWN) {
171 ret |= TDENetworkGlobalManagerFlags::VPNUnknown;
173 else if (nmType == NM_VPN_STATE_PREPARE) {
174 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
175 ret |= TDENetworkGlobalManagerFlags::VPNEstablishingLink;
177 else if (nmType == NM_VPN_STATE_NEED_AUTH) {
178 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
179 ret |= TDENetworkGlobalManagerFlags::VPNNeedAuthorization;
181 else if (nmType == NM_VPN_STATE_CONNECT) {
182 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
183 ret |= TDENetworkGlobalManagerFlags::VPNConfiguringProtocols;
185 else if (nmType == NM_VPN_STATE_IP_CONFIG_GET) {
186 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
187 ret |= TDENetworkGlobalManagerFlags::VPNVerifyingProtocols;
189 else if (nmType == NM_VPN_STATE_ACTIVATED) {
190 ret |= TDENetworkGlobalManagerFlags::VPNConnected;
192 else if (nmType == NM_VPN_STATE_FAILED) {
193 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
194 ret |= TDENetworkGlobalManagerFlags::VPNFailed;
196 else if (nmType == NM_VPN_STATE_DISCONNECTED) {
197 ret |= TDENetworkGlobalManagerFlags::VPNDisconnected;
203 TDENetworkConnectionStatus::TDENetworkConnectionStatus nmDeviceStateToTDEDeviceState(TQ_UINT32 nmType) {
204 TDENetworkConnectionStatus::TDENetworkConnectionStatus ret = TDENetworkConnectionStatus::None;
206 if (nmType == NM_DEVICE_STATE_UNKNOWN) {
207 ret |= TDENetworkConnectionStatus::Invalid;
209 else if (nmType == NM_DEVICE_STATE_UNMANAGED) {
210 ret |= TDENetworkConnectionStatus::UnManaged;
212 else if (nmType == NM_DEVICE_STATE_UNAVAILABLE) {
213 ret |= TDENetworkConnectionStatus::Disconnected;
214 ret |= TDENetworkConnectionStatus::LinkUnavailable;
216 else if (nmType == NM_DEVICE_STATE_DISCONNECTED) {
217 ret |= TDENetworkConnectionStatus::Disconnected;
219 else if (nmType == NM_DEVICE_STATE_PREPARE) {
220 ret |= TDENetworkConnectionStatus::Disconnected;
221 ret |= TDENetworkConnectionStatus::EstablishingLink;
223 else if (nmType == NM_DEVICE_STATE_CONFIG) {
224 ret |= TDENetworkConnectionStatus::Disconnected;
225 ret |= TDENetworkConnectionStatus::EstablishingLink;
227 else if (nmType == NM_DEVICE_STATE_NEED_AUTH) {
228 ret |= TDENetworkConnectionStatus::Disconnected;
229 ret |= TDENetworkConnectionStatus::NeedAuthorization;
231 else if (nmType == NM_DEVICE_STATE_IP_CONFIG) {
232 ret |= TDENetworkConnectionStatus::Disconnected;
233 ret |= TDENetworkConnectionStatus::ConfiguringProtocols;
235 else if (nmType == NM_DEVICE_STATE_IP_CHECK) {
236 ret |= TDENetworkConnectionStatus::Disconnected;
237 ret |= TDENetworkConnectionStatus::VerifyingProtocols;
239 else if (nmType == NM_DEVICE_STATE_SECONDARIES) {
240 ret |= TDENetworkConnectionStatus::Disconnected;
241 ret |= TDENetworkConnectionStatus::DependencyWait;
243 else if (nmType == NM_DEVICE_STATE_ACTIVATED) {
244 ret |= TDENetworkConnectionStatus::Connected;
246 else if (nmType == NM_DEVICE_STATE_DEACTIVATING) {
247 ret |= TDENetworkConnectionStatus::Connected;
248 ret |= TDENetworkConnectionStatus::DeactivatingLink;
250 else if (nmType == NM_DEVICE_STATE_FAILED) {
251 ret |= TDENetworkConnectionStatus::Disconnected;
252 ret |= TDENetworkConnectionStatus::Failed;
258 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::nmDeviceTypeToTDEDeviceType(TQ_UINT32 nmType) {
259 TDENetworkDeviceType::TDENetworkDeviceType ret = TDENetworkDeviceType::Other;
261 if (nmType == NM_DEVICE_TYPE_UNKNOWN) {
262 ret = TDENetworkDeviceType::Other;
264 else if (nmType == NM_DEVICE_TYPE_ETHERNET) {
265 ret = TDENetworkDeviceType::WiredEthernet;
267 else if (nmType == NM_DEVICE_TYPE_WIFI) {
268 ret = TDENetworkDeviceType::WiFi;
270 else if (nmType == NM_DEVICE_TYPE_UNUSED1) {
272 else if (nmType == NM_DEVICE_TYPE_UNUSED2) {
274 else if (nmType == NM_DEVICE_TYPE_BT) {
275 ret = TDENetworkDeviceType::Bluetooth;
277 else if (nmType == NM_DEVICE_TYPE_OLPC_MESH) {
278 ret = TDENetworkDeviceType::OLPCMesh;
280 else if (nmType == NM_DEVICE_TYPE_WIMAX) {
281 ret = TDENetworkDeviceType::WiMax;
283 else if (nmType == NM_DEVICE_TYPE_MODEM) {
284 ret = TDENetworkDeviceType::Modem;
286 else if (nmType == NM_DEVICE_TYPE_INFINIBAND) {
287 ret = TDENetworkDeviceType::Infiniband;
289 else if (nmType == NM_DEVICE_TYPE_BOND) {
290 ret = TDENetworkDeviceType::Bond;
292 else if (nmType == NM_DEVICE_TYPE_VLAN) {
293 ret = TDENetworkDeviceType::VLAN;
295 else if (nmType == NM_DEVICE_TYPE_ADSL) {
296 ret = TDENetworkDeviceType::ADSL;
302 TDENetworkConnectionType::TDENetworkConnectionType nmConnectionTypeToTDEConnectionType(TQString nm) {
303 TDENetworkConnectionType::TDENetworkConnectionType ret = TDENetworkConnectionType::Other;
305 if (nm.lower() ==
"802-3-ethernet") {
306 ret = TDENetworkConnectionType::WiredEthernet;
308 else if (nm.lower() ==
"infiniband") {
309 ret = TDENetworkConnectionType::Infiniband;
311 else if (nm.lower() ==
"802-11-wireless") {
312 ret = TDENetworkConnectionType::WiFi;
314 else if (nm.lower() ==
"vpn") {
315 ret = TDENetworkConnectionType::VPN;
317 else if (nm.lower() ==
"wimax") {
318 ret = TDENetworkConnectionType::WiMax;
320 else if (nm.lower() ==
"vlan") {
321 ret = TDENetworkConnectionType::VLAN;
323 else if (nm.lower() ==
"802-11-olpc-mesh") {
324 ret = TDENetworkConnectionType::OLPCMesh;
326 else if (nm.lower() ==
"bluetooth") {
327 ret = TDENetworkConnectionType::Bluetooth;
329 else if (nm.lower() ==
"cdma") {
330 ret = TDENetworkConnectionType::Modem;
332 else if (nm.lower() ==
"gsm") {
333 ret = TDENetworkConnectionType::Modem;
339 TQString tdeConnectionTypeToNMConnectionType(TDENetworkConnectionType::TDENetworkConnectionType type, TDEModemConnectionType::TDEModemConnectionType modemType=TDEModemConnectionType::Other) {
342 if (type == TDENetworkConnectionType::WiredEthernet) {
343 ret =
"802-3-ethernet";
345 else if (type == TDENetworkConnectionType::Infiniband) {
348 else if (type == TDENetworkConnectionType::WiFi) {
349 ret =
"802-11-wireless";
351 else if (type == TDENetworkConnectionType::VPN) {
354 else if (type == TDENetworkConnectionType::WiMax) {
357 else if (type == TDENetworkConnectionType::VLAN) {
360 else if (type == TDENetworkConnectionType::OLPCMesh) {
361 ret =
"802-11-olpc-mesh";
363 else if (type == TDENetworkConnectionType::Bluetooth) {
366 else if (type == TDENetworkConnectionType::Modem) {
367 if (modemType == TDEModemConnectionType::CDMA) {
370 else if (modemType == TDEModemConnectionType::GSM) {
378 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType nmEAPTypeToTDEEAPType(TQString nm) {
379 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType ret = TDENetworkIEEE8021xType::None;
381 if (nm.lower() ==
"") {
382 ret = TDENetworkIEEE8021xType::None;
384 else if (nm.lower() ==
"leap") {
385 ret = TDENetworkIEEE8021xType::LEAP;
387 else if (nm.lower() ==
"md5") {
388 ret = TDENetworkIEEE8021xType::MD5;
390 else if (nm.lower() ==
"pap") {
391 ret = TDENetworkIEEE8021xType::PAP;
393 else if (nm.lower() ==
"chap") {
394 ret = TDENetworkIEEE8021xType::CHAP;
396 else if (nm.lower() ==
"mschap") {
397 ret = TDENetworkIEEE8021xType::MSCHAP;
399 else if (nm.lower() ==
"mschapv2") {
400 ret = TDENetworkIEEE8021xType::MSCHAPV2;
402 else if (nm.lower() ==
"fast") {
403 ret = TDENetworkIEEE8021xType::Fast;
405 else if (nm.lower() ==
"psk") {
406 ret = TDENetworkIEEE8021xType::PSK;
408 else if (nm.lower() ==
"pax") {
409 ret = TDENetworkIEEE8021xType::PAX;
411 else if (nm.lower() ==
"sake") {
412 ret = TDENetworkIEEE8021xType::SAKE;
414 else if (nm.lower() ==
"gpsk") {
415 ret = TDENetworkIEEE8021xType::GPSK;
417 else if (nm.lower() ==
"tls") {
418 ret = TDENetworkIEEE8021xType::TLS;
420 else if (nm.lower() ==
"peap") {
421 ret = TDENetworkIEEE8021xType::PEAP;
423 else if (nm.lower() ==
"ttls") {
424 ret = TDENetworkIEEE8021xType::TTLS;
426 else if (nm.lower() ==
"sim") {
427 ret = TDENetworkIEEE8021xType::SIM;
429 else if (nm.lower() ==
"gtc") {
430 ret = TDENetworkIEEE8021xType::GTC;
432 else if (nm.lower() ==
"otp") {
433 ret = TDENetworkIEEE8021xType::OTP;
436 PRINT_ERROR(TQString(
"unknown EAP type %s requested in existing connection").arg(nm.lower()))
442 TQString tdeEAPTypeToNMEAPType(TDENetworkIEEE8021xType::TDENetworkIEEE8021xType eaptype) {
445 if (eaptype == TDENetworkIEEE8021xType::None) {
448 else if (eaptype == TDENetworkIEEE8021xType::LEAP) {
451 else if (eaptype == TDENetworkIEEE8021xType::MD5) {
454 else if (eaptype == TDENetworkIEEE8021xType::PAP) {
457 else if (eaptype == TDENetworkIEEE8021xType::CHAP) {
460 else if (eaptype == TDENetworkIEEE8021xType::MSCHAP) {
463 else if (eaptype == TDENetworkIEEE8021xType::MSCHAPV2) {
466 else if (eaptype == TDENetworkIEEE8021xType::Fast) {
469 else if (eaptype == TDENetworkIEEE8021xType::PSK) {
472 else if (eaptype == TDENetworkIEEE8021xType::PAX) {
475 else if (eaptype == TDENetworkIEEE8021xType::SAKE) {
478 else if (eaptype == TDENetworkIEEE8021xType::GPSK) {
481 else if (eaptype == TDENetworkIEEE8021xType::TLS) {
484 else if (eaptype == TDENetworkIEEE8021xType::PEAP) {
487 else if (eaptype == TDENetworkIEEE8021xType::TTLS) {
490 else if (eaptype == TDENetworkIEEE8021xType::SIM) {
493 else if (eaptype == TDENetworkIEEE8021xType::GTC) {
496 else if (eaptype == TDENetworkIEEE8021xType::OTP) {
500 PRINT_ERROR(TQString(
"unknown TDE EAP type %d requested in new or updated connection").arg(eaptype))
506 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags nmEAPFastFlagsToTDEEAPFastFlags(TQString nm) {
507 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
509 unsigned int nm_int = nm.toUInt();
510 if (nm_int == NM_EAP_FAST_PROVISIONING_DISABLED) {
511 ret = TDENetworkIEEE8021xFastFlags::None;
513 else if (nm_int == NM_EAP_FAST_PROVISIONING_UNAUTHONLY) {
514 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated;
516 else if (nm_int == NM_EAP_FAST_PROVISIONING_AUTHONLY) {
517 ret = TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
519 else if (nm_int == NM_EAP_FAST_PROVISIONING_BOTH) {
520 ret = TDENetworkIEEE8021xFastFlags::AllowUnauthenticated | TDENetworkIEEE8021xFastFlags::AllowAuthenticated;
523 PRINT_ERROR(TQString(
"unknown EAP fast flag %s requested in existing connection").arg(nm.lower()))
529 TQString tdeEAPFastFlagsToNMEAPFastFlags(TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags eaptype) {
532 if ((eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) && (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated)) {
533 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_BOTH);
535 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowAuthenticated) {
536 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_AUTHONLY);
538 else if (eaptype & TDENetworkIEEE8021xFastFlags::AllowUnauthenticated) {
539 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_UNAUTHONLY);
542 ret = TQString(
"%1").arg(NM_EAP_FAST_PROVISIONING_DISABLED);
548 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQString nm) {
549 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
551 if (nm.lower() ==
"infrastructure") {
552 ret = TDEWiFiMode::Infrastructure;
554 else if (nm.lower() ==
"adhoc") {
555 ret = TDEWiFiMode::AdHoc;
561 TQString tdeWiFiModeToNMWiFiMode(TDEWiFiMode::TDEWiFiMode mode) {
564 if (mode == TDEWiFiMode::Infrastructure) {
565 ret =
"infrastructure";
567 else if (mode == TDEWiFiMode::AdHoc) {
574 TDEWiFiMode::TDEWiFiMode nmWiFiModeToTDEWiFiMode(TQ_UINT32 nm) {
575 TDEWiFiMode::TDEWiFiMode ret = TDEWiFiMode::Infrastructure;
577 if (nm == NM_802_11_MODE_INFRASTRUCTURE) {
578 ret = TDEWiFiMode::Infrastructure;
580 else if (nm == NM_802_11_MODE_ADHOC) {
581 ret = TDEWiFiMode::AdHoc;
587 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags tdeWiFiFlagsToNMWiFiFlags(TQ_UINT32 nm) {
588 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags ret = TDENetworkWiFiClientFlags::None;
590 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP40) {
591 ret | TDENetworkWiFiClientFlags::CipherWEP40;
593 if (nm & NM_802_11_DEVICE_CAP_CIPHER_WEP104) {
594 ret | TDENetworkWiFiClientFlags::CipherWEP104;
596 if (nm & NM_802_11_DEVICE_CAP_CIPHER_TKIP) {
597 ret | TDENetworkWiFiClientFlags::CipherTKIP;
599 if (nm & NM_802_11_DEVICE_CAP_CIPHER_CCMP) {
600 ret | TDENetworkWiFiClientFlags::CipherCCMP;
602 if (nm & NM_802_11_DEVICE_CAP_WPA) {
603 ret | TDENetworkWiFiClientFlags::CipherWPA;
605 if (nm & NM_802_11_DEVICE_CAP_RSN) {
606 ret | TDENetworkWiFiClientFlags::CipherRSN;
612 TDEBluetoothConnectionType::TDEBluetoothConnectionType nmBluetoothModeToTDEBluetoothMode(TQString nm) {
613 TDEBluetoothConnectionType::TDEBluetoothConnectionType ret = TDEBluetoothConnectionType::PAN;
615 if (nm.lower() ==
"dun") {
616 ret = TDEBluetoothConnectionType::DUN;
618 else if (nm.lower() ==
"panu") {
619 ret = TDEBluetoothConnectionType::PAN;
625 TQString tdeBluetoothModeToNMBluetoothMode(TDEBluetoothConnectionType::TDEBluetoothConnectionType type) {
628 if (type == TDEBluetoothConnectionType::DUN) {
631 else if (type == TDEBluetoothConnectionType::PAN) {
638 TDEGSMNetworkType::TDEGSMNetworkType nmGSMModeToTDEGSMMode(TQ_INT32 nm) {
639 TDEGSMNetworkType::TDEGSMNetworkType ret = TDEGSMNetworkType::Any;
641 if (nm == NM_GSM_3G_ONLY) {
642 ret = TDEGSMNetworkType::Only3G;
644 else if (nm == NM_GSM_GPRS_EDGE_ONLY) {
645 ret = TDEGSMNetworkType::GPRSEdge;
647 else if (nm == NM_GSM_PREFER_3G) {
648 ret = TDEGSMNetworkType::Prefer3G;
650 else if (nm == NM_GSM_PREFER_2G) {
651 ret = TDEGSMNetworkType::Prefer2G;
657 TQ_INT32 tdeGSMModeToNMGSMMode(TDEGSMNetworkType::TDEGSMNetworkType type) {
660 if (type == TDEGSMNetworkType::Only3G) {
661 ret = NM_GSM_3G_ONLY;
663 else if (type == TDEGSMNetworkType::GPRSEdge) {
664 ret = NM_GSM_GPRS_EDGE_ONLY;
666 else if (type == TDEGSMNetworkType::Prefer3G) {
667 ret = NM_GSM_PREFER_3G;
669 else if (type == TDEGSMNetworkType::Prefer2G) {
670 ret = NM_GSM_PREFER_2G;
676 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand nmWiFiFrequencyBandToTDEWiFiFrequencyBand(TQString nm) {
677 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand ret = TDEWiFiFrequencyBand::Other;
679 if (nm.lower() ==
"") {
680 ret = TDEWiFiFrequencyBand::None;
682 else if (nm.lower() ==
"bg") {
683 ret = TDEWiFiFrequencyBand::Band2_4GHz;
685 else if (nm.lower() ==
"a") {
686 ret = TDEWiFiFrequencyBand::Band5GHz;
692 TQString tdeWiFiFrequencyBandToNMWiFiFrequencyBand(TDEWiFiFrequencyBand::TDEWiFiFrequencyBand mode) {
695 if (mode == TDEWiFiFrequencyBand::None) {
696 ret = TQString::null;
698 else if (mode == TDEWiFiFrequencyBand::Band2_4GHz) {
701 else if (mode == TDEWiFiFrequencyBand::Band5GHz) {
708 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType nmWiFiKeyTypeToTDEWiFiKeyType(TQString nm) {
709 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType ret = TDENetworkWiFiKeyType::Other;
711 if (nm.lower() ==
"none") {
712 ret = TDENetworkWiFiKeyType::WEP;
714 else if (nm.lower() ==
"ieee8021x") {
715 ret = TDENetworkWiFiKeyType::DynamicWEP;
717 else if (nm.lower() ==
"wpa-none") {
718 ret = TDENetworkWiFiKeyType::WPAAdHoc;
720 else if (nm.lower() ==
"wpa-psk") {
721 ret = TDENetworkWiFiKeyType::WPAInfrastructure;
723 else if (nm.lower() ==
"wpa-eap") {
724 ret = TDENetworkWiFiKeyType::WPAEnterprise;
730 TQString tdeWiFiKeyTypeToNMWiFiKeyType(TDENetworkWiFiKeyType::TDENetworkWiFiKeyType type) {
733 if (type == TDENetworkWiFiKeyType::WEP) {
736 else if (type == TDENetworkWiFiKeyType::DynamicWEP) {
739 else if (type == TDENetworkWiFiKeyType::WPAAdHoc) {
742 else if (type == TDENetworkWiFiKeyType::WPAInfrastructure) {
745 else if (type == TDENetworkWiFiKeyType::WPAEnterprise) {
752 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType nmWiFiAuthTypeToTDEWiFiAuthType(TQString nm) {
753 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType ret = TDENetworkWiFiAuthType::Other;
755 if (nm.lower() ==
"open") {
756 ret = TDENetworkWiFiAuthType::Open;
758 else if (nm.lower() ==
"shared") {
759 ret = TDENetworkWiFiAuthType::Shared;
761 else if (nm.lower() ==
"leap") {
762 ret = TDENetworkWiFiAuthType::LEAP;
768 TQString tdeWiFiAuthTypeToNMWiFiAuthType(TDENetworkWiFiAuthType::TDENetworkWiFiAuthType type) {
771 if (type == TDENetworkWiFiAuthType::Open) {
774 else if (type == TDENetworkWiFiAuthType::Shared) {
777 else if (type == TDENetworkWiFiAuthType::LEAP) {
784 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags nmWiFiWPAVersionToTDEWiFiWPAVersion(TQStringList nm) {
785 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags ret = TDENetworkWiFiWPAVersionFlags::None;
787 if ((nm.contains(
"wpa") && nm.contains(
"rsn")) || (nm.count() < 1)) {
788 ret |= TDENetworkWiFiWPAVersionFlags::Any;
790 else if (nm.contains(
"wpa")) {
791 ret |= TDENetworkWiFiWPAVersionFlags::WPA;
793 else if (nm.contains(
"rsn")) {
794 ret |= TDENetworkWiFiWPAVersionFlags::RSN;
800 TQStringList tdeWiFiWPAVersionToNMWiFiWPAVersion(TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags type) {
803 if (type & TDENetworkWiFiWPAVersionFlags::WPA) {
806 if (type & TDENetworkWiFiWPAVersionFlags::RSN) {
813 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher nmWiFiCipherToTDEWiFiCipher(TQString nm) {
814 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher ret = TDENetworkWiFiConnectionCipher::None;
816 if (nm.lower() ==
"wep40") {
817 ret = TDENetworkWiFiConnectionCipher::CipherWEP40;
819 else if (nm.lower() ==
"wep104") {
820 ret = TDENetworkWiFiConnectionCipher::CipherWEP104;
822 else if (nm.lower() ==
"tkip") {
823 ret = TDENetworkWiFiConnectionCipher::CipherTKIP;
825 else if (nm.lower() ==
"ccmp") {
826 ret = TDENetworkWiFiConnectionCipher::CipherCCMP;
832 TQString tdeWiFiCipherToNMWiFiCipher(TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher) {
835 if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP40) {
838 else if (cipher == TDENetworkWiFiConnectionCipher::CipherWEP104) {
841 else if (cipher == TDENetworkWiFiConnectionCipher::CipherTKIP) {
844 else if (cipher == TDENetworkWiFiConnectionCipher::CipherCCMP) {
851 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType nmSlaveTypeToTDESlaveType(TQString nm) {
852 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType ret = TDENetworkSlaveDeviceType::None;
854 if (nm.lower() ==
"bond") {
855 ret = TDENetworkSlaveDeviceType::Bond;
861 TQString tdeSlaveTypeToNMSlaveType(TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slavetype) {
864 if (slavetype == TDENetworkSlaveDeviceType::Bond) {
871 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags nmPasswordFlagsToTDEPasswordFlags(
unsigned int nm) {
872 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags ret = TDENetworkPasswordHandlingFlags::None;
874 if (nm & NM_PASSWORD_SECRET_AGENTOWNED) {
875 ret |= TDENetworkPasswordHandlingFlags::ExternalStorage;
877 if (nm & NM_PASSWORD_SECRET_NOTSAVED) {
878 ret |= TDENetworkPasswordHandlingFlags::NoSave;
880 if (nm & NM_PASSWORD_SECRET_NOTREQUIRED) {
881 ret |= TDENetworkPasswordHandlingFlags::NoPrompt;
887 unsigned int tdePasswordFlagsToNMPasswordFlags(TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags flags) {
888 unsigned int ret = 0;
890 if (flags & TDENetworkPasswordHandlingFlags::ExternalStorage) {
891 ret |= NM_PASSWORD_SECRET_AGENTOWNED;
893 if (flags & TDENetworkPasswordHandlingFlags::NoSave) {
894 ret |= NM_PASSWORD_SECRET_NOTSAVED;
896 if (flags & TDENetworkPasswordHandlingFlags::NoPrompt) {
897 ret |= NM_PASSWORD_SECRET_NOTREQUIRED;
903 TDENetworkVLANFlags::TDENetworkVLANFlags nmVLANFlagsToTDEVLANFlags(
unsigned int nm) {
904 TDENetworkVLANFlags::TDENetworkVLANFlags ret = TDENetworkVLANFlags::None;
906 if (nm & NM_VLAN_REORDER_PACKET_HEADERS) {
907 ret |= TDENetworkVLANFlags::ReorderPacketHeaders;
909 if (nm & NM_VLAN_USE_GVRP) {
910 ret |= TDENetworkVLANFlags::UseGVRP;
912 if (nm & NM_VLAN_LOOSE_BINDING) {
913 ret |= TDENetworkVLANFlags::LooseBinding;
919 unsigned int tdeVLANFlagsToNMVLANFlags(TDENetworkVLANFlags::TDENetworkVLANFlags flags) {
920 unsigned int ret = 0;
922 if (flags & TDENetworkVLANFlags::ReorderPacketHeaders) {
923 ret |= NM_VLAN_REORDER_PACKET_HEADERS;
925 if (flags & TDENetworkVLANFlags::UseGVRP) {
926 ret |= NM_VLAN_USE_GVRP;
928 if (flags & TDENetworkVLANFlags::LooseBinding) {
929 ret |= NM_VLAN_LOOSE_BINDING;
935 TDENetworkParity::TDENetworkParity nmParityToTDEParity(
char nm) {
936 TDENetworkParity::TDENetworkParity ret = TDENetworkParity::None;
939 ret = TDENetworkParity::Even;
941 else if (nm ==
'o') {
942 ret = TDENetworkParity::Odd;
948 char tdeParityToNMParity(TDENetworkParity::TDENetworkParity parity) {
951 if (parity == TDENetworkParity::Even) {
954 else if (parity == TDENetworkParity::Odd) {
961 TDENetworkWepKeyType::TDENetworkWepKeyType nmWepKeyTypeToTDEWepKeyType(
unsigned int nm, TQString key=TQString::null) {
962 TDENetworkWepKeyType::TDENetworkWepKeyType ret = TDENetworkWepKeyType::Hexadecimal;
964 if (nm == NM_WEP_TYPE_HEXADECIMAL) {
966 ret = TDENetworkWepKeyType::Hexadecimal;
969 if ((
key.length() == 10) || (
key.length() == 26)) {
970 ret = TDENetworkWepKeyType::Hexadecimal;
973 ret = TDENetworkWepKeyType::Ascii;
977 else if (nm == NM_WEP_TYPE_PASSPHRASE) {
978 ret = TDENetworkWepKeyType::Passphrase;
984 unsigned int tdeWepKeyTypeToNMWepKeyType(TDENetworkWepKeyType::TDENetworkWepKeyType type) {
985 unsigned int ret = 0;
987 if (type == TDENetworkWepKeyType::Hexadecimal) {
988 ret = NM_WEP_TYPE_HEXADECIMAL;
990 else if (type == TDENetworkWepKeyType::Ascii) {
991 ret = NM_WEP_TYPE_HEXADECIMAL;
993 else if (type == TDENetworkWepKeyType::Passphrase) {
994 ret = NM_WEP_TYPE_PASSPHRASE;
1000 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags nmCapabilityFlagsToTDECapabilityFlags(
unsigned int nm) {
1001 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags ret = TDENetworkDeviceCapabilityFlags::None;
1003 if (nm & NM_DEVICE_CAP_NM_SUPPORTED) {
1004 ret |= TDENetworkDeviceCapabilityFlags::Supported;
1006 if (nm & NM_DEVICE_CAP_CARRIER_DETECT) {
1007 ret |= TDENetworkDeviceCapabilityFlags::CanDetectLink;
1013 unsigned int tdeCapabilityFlagsToNMCapabilityFlags(TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags flags) {
1014 unsigned int ret = 0;
1016 if (flags & TDENetworkDeviceCapabilityFlags::Supported) {
1017 ret |= NM_DEVICE_CAP_NM_SUPPORTED;
1019 if (flags & TDENetworkDeviceCapabilityFlags::CanDetectLink) {
1020 ret |= NM_DEVICE_CAP_CARRIER_DETECT;
1026 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags nmAPSecFlagsToTDEAPSecFlags(
unsigned int genflags,
unsigned int nm) {
1027 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags ret = TDENetworkWiFiAPFlags::None;
1029 if (genflags & NM_ACCESS_POINT_CAP_PRIVACY) {
1030 ret |= TDENetworkWiFiAPFlags::PrivacySupport;
1033 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP40) {
1034 ret |= TDENetworkWiFiAPFlags::PairWEP40;
1036 if (nm & NM_ACCESS_POINT_SEC_PAIR_WEP104) {
1037 ret |= TDENetworkWiFiAPFlags::PairWEP104;
1039 if (nm & NM_ACCESS_POINT_SEC_PAIR_TKIP) {
1040 ret |= TDENetworkWiFiAPFlags::PairTKIP;
1042 if (nm & NM_ACCESS_POINT_SEC_PAIR_CCMP) {
1043 ret |= TDENetworkWiFiAPFlags::PairCCMP;
1045 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP40) {
1046 ret |= TDENetworkWiFiAPFlags::GroupWEP40;
1048 if (nm & NM_ACCESS_POINT_SEC_GROUP_WEP104) {
1049 ret |= TDENetworkWiFiAPFlags::GroupWEP104;
1051 if (nm & NM_ACCESS_POINT_SEC_GROUP_TKIP) {
1052 ret |= TDENetworkWiFiAPFlags::GroupTKIP;
1054 if (nm & NM_ACCESS_POINT_SEC_GROUP_CCMP) {
1055 ret |= TDENetworkWiFiAPFlags::GroupCCMP;
1057 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_PSK) {
1058 ret |= TDENetworkWiFiAPFlags::KeyManagementPSK;
1060 if (nm & NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X) {
1061 ret |= TDENetworkWiFiAPFlags::KeyManagement80211;
1067 unsigned int tdeAPSecFlagsToNMAPGenSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1068 unsigned int ret = 0;
1070 if (flags & TDENetworkWiFiAPFlags::PrivacySupport) {
1071 ret |= NM_ACCESS_POINT_CAP_PRIVACY;
1077 unsigned int tdeAPSecFlagsToNMAPSecFlags(TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags flags) {
1078 unsigned int ret = 0;
1080 if (flags & TDENetworkWiFiAPFlags::PairWEP40) {
1081 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP40;
1083 if (flags & TDENetworkWiFiAPFlags::PairWEP104) {
1084 ret |= NM_ACCESS_POINT_SEC_PAIR_WEP104;
1086 if (flags & TDENetworkWiFiAPFlags::PairTKIP) {
1087 ret |= NM_ACCESS_POINT_SEC_PAIR_TKIP;
1089 if (flags & TDENetworkWiFiAPFlags::PairCCMP) {
1090 ret |= NM_ACCESS_POINT_SEC_PAIR_CCMP;
1092 if (flags & TDENetworkWiFiAPFlags::GroupWEP40) {
1093 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP40;
1095 if (flags & TDENetworkWiFiAPFlags::GroupWEP104) {
1096 ret |= NM_ACCESS_POINT_SEC_GROUP_WEP104;
1098 if (flags & TDENetworkWiFiAPFlags::GroupTKIP) {
1099 ret |= NM_ACCESS_POINT_SEC_GROUP_TKIP;
1101 if (flags & TDENetworkWiFiAPFlags::GroupCCMP) {
1102 ret |= NM_ACCESS_POINT_SEC_GROUP_CCMP;
1104 if (flags & TDENetworkWiFiAPFlags::KeyManagementPSK) {
1105 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_PSK;
1107 if (flags & TDENetworkWiFiAPFlags::KeyManagement80211) {
1108 ret |= NM_ACCESS_POINT_SEC_KEY_MGMT_802_1X;
1114 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode nmIBTransportToTDEIBTransport(TQString nm) {
1115 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode ret = TDENetworkInfinibandTransportMode::Other;
1117 if (nm.lower() ==
"datagram") {
1118 ret = TDENetworkInfinibandTransportMode::Datagram;
1120 else if (nm.lower() ==
"connected") {
1121 ret = TDENetworkInfinibandTransportMode::Connected;
1127 TQString tdeIBTransportToNMIBTransport(TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode mode) {
1130 if (mode == TDENetworkInfinibandTransportMode::Datagram) {
1133 else if (mode == TDENetworkInfinibandTransportMode::Connected) {
1140 TQString TDENetworkConnectionManager_BackendNM::deviceInterfaceString(TQString macAddress) {
1141 if (d->m_networkManagerProxy) {
1142 TQT_DBusObjectPathList devices;
1143 TQT_DBusError error;
1145 ret = d->m_networkManagerProxy->GetDevices(devices, error);
1147 TQT_DBusObjectPathList::iterator it;
1148 for (it = devices.begin(); it != devices.end(); ++it) {
1149 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, (*it));
1150 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1151 TDENetworkDeviceType::TDENetworkDeviceType deviceType = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error));
1152 if (error.isValid()) {
1154 PRINT_ERROR((error.name() +
": " + error.message()))
1158 DBus::EthernetDeviceProxy ethernetDevice(NM_DBUS_SERVICE, (*it));
1159 ethernetDevice.setConnection(TQT_DBusConnection::systemBus());
1160 TQString candidateMACAddress = ethernetDevice.getPermHwAddress(error);
1161 if (!error.isValid()) {
1162 if (candidateMACAddress.lower() == macAddress.lower()) {
1167 else if (deviceType == TDENetworkDeviceType::Infiniband) {
1168 DBus::InfinibandDeviceProxy infinibandDevice(NM_DBUS_SERVICE, (*it));
1169 infinibandDevice.setConnection(TQT_DBusConnection::systemBus());
1170 TQString candidateMACAddress = infinibandDevice.getHwAddress(error);
1171 if (!error.isValid()) {
1172 if (candidateMACAddress.lower() == macAddress.lower()) {
1177 else if (deviceType == TDENetworkDeviceType::WiFi) {
1178 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, (*it));
1179 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
1180 TQString candidateMACAddress = wiFiDevice.getPermHwAddress(error);
1181 if (!error.isValid()) {
1182 if (candidateMACAddress.lower() == macAddress.lower()) {
1187 else if (deviceType == TDENetworkDeviceType::WiMax) {
1188 DBus::WiMaxDeviceProxy wiMaxDevice(NM_DBUS_SERVICE, (*it));
1189 wiMaxDevice.setConnection(TQT_DBusConnection::systemBus());
1190 TQString candidateMACAddress = wiMaxDevice.getHwAddress(error);
1191 if (!error.isValid()) {
1192 if (candidateMACAddress.lower() == macAddress.lower()) {
1197 else if (deviceType == TDENetworkDeviceType::OLPCMesh) {
1198 DBus::OlpcMeshDeviceProxy olpcMeshDevice(NM_DBUS_SERVICE, (*it));
1199 olpcMeshDevice.setConnection(TQT_DBusConnection::systemBus());
1200 TQString candidateMACAddress = olpcMeshDevice.getHwAddress(error);
1201 if (!error.isValid()) {
1202 if (candidateMACAddress.lower() == macAddress.lower()) {
1207 else if (deviceType == TDENetworkDeviceType::Bluetooth) {
1208 DBus::BluetoothDeviceProxy bluetoothDevice(NM_DBUS_SERVICE, (*it));
1209 bluetoothDevice.setConnection(TQT_DBusConnection::systemBus());
1210 TQString candidateMACAddress = bluetoothDevice.getHwAddress(error);
1211 if (!error.isValid()) {
1212 if (candidateMACAddress.lower() == macAddress.lower()) {
1224 PRINT_ERROR((error.name() +
": " + error.message()))
1233 TQString macAddressForGenericDevice(TQT_DBusObjectPath path) {
1234 TQT_DBusError error;
1236 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, path);
1237 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1238 TQ_UINT32 deviceType = genericDevice.getDeviceType(error);
1239 if (error.isValid()) {
1241 PRINT_ERROR((error.name() +
": " + error.message()))
1244 else if (deviceType == NM_DEVICE_TYPE_ETHERNET) {
1245 DBus::EthernetDeviceProxy ethernetDevice(NM_DBUS_SERVICE, path);
1246 ethernetDevice.setConnection(TQT_DBusConnection::systemBus());
1247 TQString candidateMACAddress = ethernetDevice.getPermHwAddress(error);
1248 if (!error.isValid()) {
1249 return candidateMACAddress.lower();
1252 else if (deviceType == NM_DEVICE_TYPE_INFINIBAND) {
1253 DBus::InfinibandDeviceProxy infinibandDevice(NM_DBUS_SERVICE, path);
1254 infinibandDevice.setConnection(TQT_DBusConnection::systemBus());
1255 TQString candidateMACAddress = infinibandDevice.getHwAddress(error);
1256 if (!error.isValid()) {
1257 return candidateMACAddress.lower();
1260 else if (deviceType == NM_DEVICE_TYPE_WIFI) {
1261 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, path);
1262 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
1263 TQString candidateMACAddress = wiFiDevice.getPermHwAddress(error);
1264 if (!error.isValid()) {
1265 return candidateMACAddress.lower();
1268 else if (deviceType == NM_DEVICE_TYPE_WIMAX) {
1269 DBus::WiMaxDeviceProxy wiMaxDevice(NM_DBUS_SERVICE, path);
1270 wiMaxDevice.setConnection(TQT_DBusConnection::systemBus());
1271 TQString candidateMACAddress = wiMaxDevice.getHwAddress(error);
1272 if (!error.isValid()) {
1273 return candidateMACAddress.lower();
1276 else if (deviceType == NM_DEVICE_TYPE_OLPC_MESH) {
1277 DBus::OlpcMeshDeviceProxy olpcMeshDevice(NM_DBUS_SERVICE, path);
1278 olpcMeshDevice.setConnection(TQT_DBusConnection::systemBus());
1279 TQString candidateMACAddress = olpcMeshDevice.getHwAddress(error);
1280 if (!error.isValid()) {
1281 return candidateMACAddress.lower();
1284 else if (deviceType == NM_DEVICE_TYPE_BT) {
1285 DBus::BluetoothDeviceProxy bluetoothDevice(NM_DBUS_SERVICE, path);
1286 bluetoothDevice.setConnection(TQT_DBusConnection::systemBus());
1287 TQString candidateMACAddress = bluetoothDevice.getHwAddress(error);
1288 if (!error.isValid()) {
1289 return candidateMACAddress.lower();
1295 return TQString::null;
1298 TQString tdeDeviceUUIDForMACAddress(TQString macAddress) {
1301 return TQString::null;
1304 TDEGenericHardwareList devices = hwdevices->listByDeviceClass(TDEGenericDeviceType::Network);
1305 for (TDEGenericHardwareList::iterator it = devices.begin(); it != devices.end(); ++it) {
1306 TDENetworkDevice* dev =
dynamic_cast<TDENetworkDevice*
>(*it);
1308 if (macAddress.lower() == dev->macAddress().lower()) {
1309 return dev->uniqueID();
1314 return TQString::null;
1317 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(TDENetworkConnectionManager_BackendNMPrivate* parent) : m_parent(parent) {
1321 TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::~TDENetworkConnectionManager_BackendNM_DBusSignalReceiver() {
1325 void TDENetworkConnectionManager_BackendNM_DBusSignalReceiver::dbusSignal(
const TQT_DBusMessage& message) {
1326 if (message.type() == TQT_DBusMessage::SignalMessage) {
1327 TQString
interface = message.interface();
1328 TQString sender = message.sender();
1329 TQString member = message.member();
1330 TQString path = message.path();
1334 if (interface == NM_VPN_DBUS_CONNECTION_SERVICE) {
1335 if (member ==
"VpnStateChanged") {
1337 TQ_UINT32 state = message[0].toUInt32();
1338 TQ_UINT32 reason = message[1].toUInt32();
1339 if (state == NM_VPN_STATE_FAILED) {
1340 m_parent->internalProcessVPNFailure(reason);
1344 else if (interface == NM_DBUS_DEVICE_SERVICE) {
1345 if (path == m_parent->m_dbusDeviceString) {
1346 if (member ==
"StateChanged") {
1348 TQ_UINT32 new_state = message[0].toUInt32();
1349 TQ_UINT32 old_state = message[1].toUInt32();
1350 TQ_UINT32 reason = message[2].toUInt32();
1351 m_parent->internalProcessDeviceStateChanged(new_state, old_state, reason);
1358 TDENetworkConnectionManager_BackendNM::TDENetworkConnectionManager_BackendNM(TQString macAddress) : TDENetworkConnectionManager(macAddress) {
1359 d =
new TDENetworkConnectionManager_BackendNMPrivate(
this);
1362 d->m_networkManagerProxy =
new DBus::NetworkManagerProxy(NM_DBUS_SERVICE, NM_DBUS_PATH);
1363 d->m_networkManagerProxy->setConnection(TQT_DBusConnection::systemBus());
1364 d->m_networkManagerSettings =
new DBus::SettingsInterface(NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS);
1365 d->m_networkManagerSettings->setConnection(TQT_DBusConnection::systemBus());
1366 d->m_vpnProxy =
new DBus::VPNPluginProxy(NM_VPN_DBUS_PLUGIN_SERVICE, NM_VPN_DBUS_PLUGIN_PATH);
1367 d->m_vpnProxy->setConnection(TQT_DBusConnection::systemBus());
1369 d->m_dbusDeviceString = deviceInterfaceString(macAddress);
1370 if (d->m_dbusDeviceString !=
"") {
1371 d->m_networkDeviceProxy =
new DBus::DeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1372 d->m_networkDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1373 if (deviceType() == TDENetworkDeviceType::WiFi) {
1374 d->m_wiFiDeviceProxy =
new DBus::WiFiDeviceProxy(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1375 d->m_wiFiDeviceProxy->setConnection(TQT_DBusConnection::systemBus());
1380 connect(d->m_networkManagerProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessGlobalStateChanged(TQ_UINT32)));
1383 if (d->m_vpnProxy) {
1384 connect(d->m_vpnProxy, SIGNAL(StateChanged(TQ_UINT32)), d, SLOT(internalProcessVPNStateChanged(TQ_UINT32)));
1385 connect(d->m_vpnProxy, SIGNAL(LoginBanner(
const TQString&)), d, SLOT(internalProcessVPNLoginBanner(
const TQString&)));
1386 connect(d->m_vpnProxy, SIGNAL(Failure(TQ_UINT32)), d, SLOT(internalProcessVPNFailure(TQ_UINT32)));
1390 if (d->m_networkDeviceProxy) {
1391 connect(d->m_networkDeviceProxy, SIGNAL(StateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)), d, SLOT(internalProcessDeviceStateChanged(TQ_UINT32, TQ_UINT32, TQ_UINT32)));
1393 if (d->m_wiFiDeviceProxy) {
1394 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointAdded(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath&)));
1395 connect(d->m_wiFiDeviceProxy, SIGNAL(AccessPointRemoved(
const TQT_DBusObjectPath&)), d, SLOT(internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath&)));
1396 connect(d->m_wiFiDeviceProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)), d, SLOT(internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1400 m_connectionList =
new TDENetworkConnectionList;
1401 m_hwNeighborList =
new TDENetworkHWNeighborList;
1407 TDENetworkConnectionManager_BackendNM::~TDENetworkConnectionManager_BackendNM() {
1409 clearTDENetworkConnectionList();
1410 delete m_connectionList;
1411 clearTDENetworkHWNeighborList();
1412 delete m_hwNeighborList;
1415 if (d->m_networkManagerProxy)
delete d->m_networkManagerProxy;
1416 if (d->m_networkManagerSettings)
delete d->m_networkManagerSettings;
1417 if (d->m_networkDeviceProxy)
delete d->m_networkDeviceProxy;
1422 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessGlobalStateChanged(TQ_UINT32 state) {
1423 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1426 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNStateChanged(TQ_UINT32 state) {
1427 m_parent->internalNetworkConnectionStateChanged(m_parent->backendStatus());
1430 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNLoginBanner(
const TQString& banner) {
1431 m_parent->internalVpnEvent(TDENetworkVPNEventType::LoginBanner, banner);
1434 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessVPNFailure(TQ_UINT32 reason) {
1437 m_parent->internalVpnEvent(TDENetworkVPNEventType::Failure, TQString(
"VPN connection attempt failed!<br>NetworkManager returned error %1.").arg(reason));
1440 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessDeviceStateChanged(TQ_UINT32 newState, TQ_UINT32 oldState, TQ_UINT32 reason) {
1443 if (m_prevDeviceState == newState) return;
1444 m_prevDeviceState = newState;
1446 if (newState == NM_DEVICE_STATE_FAILED) {
1447 TQString errorString;
1448 if (reason == NM_DEVICE_STATE_REASON_NONE) {
1449 errorString = TQString(
"Connection attempt failed!");
1451 else if (reason == NM_DEVICE_STATE_REASON_UNKNOWN) {
1452 errorString = TQString(
"Connection attempt failed!<br>Unknown error detected.");
1454 else if (reason == NM_DEVICE_STATE_REASON_NOW_MANAGED) {
1455 errorString = TQString(
"Connection attempt failed!<br>Network device is now managed.");
1457 else if (reason == NM_DEVICE_STATE_REASON_NOW_UNMANAGED) {
1458 errorString = TQString(
"Connection attempt failed!<br>Network device is now unmanaged.");
1460 else if (reason == NM_DEVICE_STATE_REASON_CONFIG_FAILED) {
1461 errorString = TQString(
"Connection attempt failed!<br>Configuration failed.");
1463 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE) {
1464 errorString = TQString(
"Connection attempt failed!<br>IP configuration unavailable.");
1466 else if (reason == NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED) {
1467 errorString = TQString(
"Connection attempt failed!<br>IP configuration expired.");
1469 else if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
1470 errorString = i18n(
"Connection attempt failed!<br>Secrets were required to establish a connection, but no secrets were available.");
1472 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT) {
1473 errorString = TQString(
"Connection attempt failed!<br>The supplicant was disconnected while attempting to establish a wireless connection.");
1475 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED) {
1476 errorString = TQString(
"Connection attempt failed!<br>Supplicant configuration failed while attempting to establish a wireless connection.");
1478 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED) {
1479 errorString = i18n(
"Connection attempt failed!<br>The supplicant failed while attempting to establish a wireless connection.");
1481 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT) {
1482 errorString = i18n(
"Connection attempt failed!<br>The supplicant timed out while attempting to establish a wireless connection.");
1484 else if (reason == NM_DEVICE_STATE_REASON_PPP_START_FAILED) {
1485 errorString = i18n(
"Connection attempt failed!<br>The PPP client failed to start.");
1487 else if (reason == NM_DEVICE_STATE_REASON_PPP_DISCONNECT) {
1488 errorString = i18n(
"Connection attempt failed!<br>The PPP client was disconnected.");
1490 else if (reason == NM_DEVICE_STATE_REASON_PPP_FAILED) {
1491 errorString = i18n(
"Connection attempt failed!<br>Unknown PPP failure.");
1493 else if (reason == NM_DEVICE_STATE_REASON_DHCP_START_FAILED) {
1494 errorString = i18n(
"Connection attempt failed!<br>The DHCP client failed to start.");
1496 else if (reason == NM_DEVICE_STATE_REASON_DHCP_ERROR) {
1497 errorString = i18n(
"Connection attempt failed!<br>The DHCP client encountered an error.");
1499 else if (reason == NM_DEVICE_STATE_REASON_DHCP_FAILED) {
1500 errorString = i18n(
"Connection attempt failed!<br>Uknown DHCP failure.");
1502 else if (reason == NM_DEVICE_STATE_REASON_SHARED_START_FAILED) {
1503 errorString = i18n(
"Connection attempt failed!<br>The connection sharing service failed to start.");
1505 else if (reason == NM_DEVICE_STATE_REASON_SHARED_FAILED) {
1506 errorString = i18n(
"Connection attempt failed!<br>The connection sharing service encountered an error.");
1508 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED) {
1509 errorString = i18n(
"Connection attempt failed!<br>The AutoIP service failed to start.");
1511 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_ERROR) {
1512 errorString = i18n(
"Connection attempt failed!<br>The AutoIP service encountered an error.");
1514 else if (reason == NM_DEVICE_STATE_REASON_AUTOIP_FAILED) {
1515 errorString = i18n(
"Connection attempt failed!<br>Unknown AutoIP failure.");
1517 else if (reason == NM_DEVICE_STATE_REASON_MODEM_BUSY) {
1518 errorString = i18n(
"Connection attempt failed!<br>Modem was busy.");
1520 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE) {
1521 errorString = i18n(
"Connection attempt failed!<br>No dial tone.");
1523 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER) {
1524 errorString = i18n(
"Connection attempt failed!<br>No carrier detected.");
1526 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT) {
1527 errorString = i18n(
"Connection attempt failed!<br>Modem timed out while dialing.");
1529 else if (reason == NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED) {
1530 errorString = i18n(
"Connection attempt failed!<br>The modem failed to dial.");
1532 else if (reason == NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED) {
1533 errorString = i18n(
"Connection attempt failed!<br>Modem initialization failed.");
1535 else if (reason == NM_DEVICE_STATE_REASON_GSM_APN_FAILED) {
1536 errorString = i18n(
"Connection attempt failed!<br>GSM APN failure.");
1538 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING) {
1539 errorString = i18n(
"Connection attempt failed!<br>GSM registration failed to search for networks.");
1541 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED) {
1542 errorString = i18n(
"Connection attempt failed!<br>GSM registration attempt was rejected.");
1544 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT) {
1545 errorString = i18n(
"Connection attempt failed!<br>GSM registration attempt timed out.");
1547 else if (reason == NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED) {
1548 errorString = i18n(
"Connection attempt failed!<br>GSM registration attempt failed.");
1550 else if (reason == NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED) {
1551 errorString = i18n(
"Connection attempt failed!<br>GSM PIN check failed.");
1553 else if (reason == NM_DEVICE_STATE_REASON_FIRMWARE_MISSING) {
1554 errorString = i18n(
"Connection attempt failed!<br>Network device firmware is missing.");
1556 else if (reason == NM_DEVICE_STATE_REASON_REMOVED) {
1557 errorString = i18n(
"Connection attempt failed!<br>Network device was removed.");
1559 else if (reason == NM_DEVICE_STATE_REASON_SLEEPING) {
1560 errorString = i18n(
"Connection attempt failed!<br>Network device is sleeping.");
1562 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_REMOVED) {
1563 errorString = i18n(
"Connection attempt failed!<br>Connection was removed.");
1565 else if (reason == NM_DEVICE_STATE_REASON_USER_REQUESTED) {
1566 errorString = i18n(
"Connection attempt failed!<br>User requested device disconnection.");
1568 else if (reason == NM_DEVICE_STATE_REASON_CARRIER) {
1569 errorString = i18n(
"Connection attempt failed!<br>Carrier or link status changed.");
1571 else if (reason == NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED) {
1572 errorString = i18n(
"Connection attempt failed!<br>Device and/or connection already active.");
1574 else if (reason == NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE) {
1575 errorString = i18n(
"Connection attempt failed!<br>The supplicant is now available.");
1577 else if (reason == NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND) {
1578 errorString = i18n(
"Connection attempt failed!<br>Requested modem was not found.");
1580 else if (reason == NM_DEVICE_STATE_REASON_BT_FAILED) {
1581 errorString = i18n(
"Connection attempt failed!<br>Bluetooth connection timeout.");
1583 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED) {
1584 errorString = i18n(
"Connection attempt failed!<br>GSM SIM not inserted.");
1586 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED) {
1587 errorString = i18n(
"Connection attempt failed!<br>GSM PIN required.");
1589 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED) {
1590 errorString = i18n(
"Connection attempt failed!<br>GSM PUK required.");
1592 else if (reason == NM_DEVICE_STATE_REASON_GSM_SIM_WRONG) {
1593 errorString = i18n(
"Connection attempt failed!<br>GSM SIM incorrect.");
1595 else if (reason == NM_DEVICE_STATE_REASON_INFINIBAND_MODE) {
1596 errorString = i18n(
"Connection attempt failed!<br>Incorrect Infiniband mode.");
1598 else if (reason == NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED) {
1599 errorString = i18n(
"Connection attempt failed!<br>Dependency failure.");
1601 else if (reason == NM_DEVICE_STATE_REASON_BR2684_FAILED) {
1602 errorString = i18n(
"Connection attempt failed!<br>Unknown bridge failure.");
1604 else if (reason == NM_DEVICE_STATE_REASON_MODEM_MANAGER_UNAVAILABLE) {
1605 errorString = i18n(
"Connection attempt failed!<br>ModemManager not available.");
1607 else if (reason == NM_DEVICE_STATE_REASON_SSID_NOT_FOUND) {
1608 errorString = i18n(
"Connection attempt failed!<br>SSID not found.");
1610 else if (reason == NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED) {
1611 errorString = i18n(
"Connection attempt failed!<br>Secondary connection failure.");
1616 errorString = TQString(
"Connection attempt failed!<br>NetworkManager returned error %1.").arg(reason);
1618 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::Failure, errorString);
1621 m_parent->internalNetworkDeviceStateChanged(nmDeviceStateToTDEDeviceState(newState), m_parent->m_macAddress);
1624 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointAdded(
const TQT_DBusObjectPath& dbuspath) {
1625 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1627 if (!m_accessPointProxyList.contains(dbuspath)) {
1629 DBus::AccessPointProxy* apProxy =
new DBus::AccessPointProxy(NM_DBUS_SERVICE, dbuspath);
1630 apProxy->setConnection(TQT_DBusConnection::systemBus());
1631 connect(apProxy, SIGNAL(PropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)),
this, SLOT(internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>&)));
1632 m_accessPointProxyList[dbuspath] = (apProxy);
1635 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Discovered);
1641 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointRemoved(
const TQT_DBusObjectPath& dbuspath) {
1642 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath);
1645 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Lost);
1649 DBus::AccessPointProxy* apProxy = m_accessPointProxyList[dbuspath];
1650 m_accessPointProxyList.remove(dbuspath);
1657 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1658 if (m_wiFiDeviceProxy) {
1659 if (props.contains(
"ActiveAccessPoint")) {
1660 TQT_DBusError error;
1661 TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(m_wiFiDeviceProxy->getActiveAccessPoint(error));
1663 m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::AccessPointChanged);
1666 else if (props.contains(
"Bitrate")) {
1667 m_parent->internalNetworkDeviceEvent(TDENetworkDeviceEventType::BitRateChanged, TQString::null);
1672 void TDENetworkConnectionManager_BackendNMPrivate::internalProcessAPPropertiesChanged(
const TQMap<TQString, TQT_DBusVariant>& props) {
1673 const DBus::AccessPointProxy* apProxy =
dynamic_cast<const DBus::AccessPointProxy*
>(sender());
1675 TQT_DBusError error;
1676 TDEMACAddress BSSID;
1677 BSSID.fromString(apProxy->getHwAddress(error));
1678 if (props.contains(
"Strength")) {
1679 m_parent->internalAccessPointStatusChanged(BSSID, TDENetworkAPEventType::SignalStrengthChanged);
1684 TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::deviceType() {
1685 if (m_macAddress ==
"") {
1686 return TDENetworkDeviceType::BackendOnly;
1689 if (d->m_dbusDeviceString !=
"") {
1691 TQT_DBusError error;
1692 d->m_dbusDeviceString = deviceInterfaceString(m_macAddress);
1693 DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
1694 genericDevice.setConnection(TQT_DBusConnection::systemBus());
1695 TDENetworkDeviceType::TDENetworkDeviceType ret = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error));
1696 if (error.isValid()) {
1698 PRINT_ERROR((error.name() +
": " + error.message()))
1707 PRINT_ERROR(TQString(
"Invalid DBUS device string '%1'").arg(d->m_dbusDeviceString))
1714 TDENetworkConnectionType::TDENetworkConnectionType connType = TDENetworkConnectionType::Other;
1716 TQT_DBusError error;
1718 #ifndef USE_ASYNC_DBUS_CALLS 1720 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1721 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1722 TQT_DBusTQStringDataMap connectionSettingsMap;
1723 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
1724 if (ret && error.isValid()) {
1726 PRINT_ERROR((error.name() +
": " + error.message()))
1729 #else // USE_ASYNC_DBUS_CALLS 1731 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, dbusPath);
1732 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
1733 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
1735 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
1736 if (ret && error.isValid()) {
1738 PRINT_ERROR((error.name() +
": " + error.message()))
1742 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
1743 TQTimer nmCallTimeoutTimer;
1744 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
1745 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
1746 tqApp->processEvents();
1747 if (!nmCallTimeoutTimer.isActive()) {
1748 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
1752 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
1753 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
1754 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
1755 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
1757 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
1758 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
1759 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
1761 #endif // USE_ASYNC_DBUS_CALLS 1764 TQT_DBusTQStringDataMap::const_iterator it2;
1765 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
1766 TQString outerKeyValue = it2.key();
1767 TQT_DBusData dataValue = it2.data();
1769 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
1770 TQT_DBusTQStringDataMap::const_iterator it3;
1771 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
1772 TQString keyValue = it3.key();
1773 TQT_DBusData dataValue = it3.data();
1774 if (dataValue.type() == TQT_DBusData::Variant) {
1775 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
1776 TQT_DBusData dataValue2 = dataValueVariant.value;
1777 if (dataValue2.type() != TQT_DBusData::Variant) {
1778 if (outerKeyValue.lower() ==
"connection") {
1779 if (keyValue.lower() ==
"type") {
1780 connType = nmConnectionTypeToTDEConnectionType(dataValue2.toString());
1792 TQString TDENetworkConnectionManager_BackendNM::backendName() {
1793 return i18n(
"NetworkManager");
1796 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags TDENetworkConnectionManager_BackendNM::backendStatus() {
1797 if (d->m_networkManagerProxy) {
1799 TQT_DBusError error;
1800 ret = d->m_networkManagerProxy->getState(error);
1801 if (error.isValid()) {
1803 PRINT_ERROR((error.name() +
": " + error.message()))
1807 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags globalFlags = nmGlobalStateToTDEGlobalState(ret);
1808 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags vpnFlags = TDENetworkGlobalManagerFlags::Unknown;
1809 if (d->m_vpnProxy) {
1810 ret = d->m_vpnProxy->getState(error);
1811 if (error.isValid()) {
1813 bool print_error =
true;
1814 if (error.name() ==
"org.freedesktop.DBus.Error.ServiceUnknown") {
1815 if (d->vpn_service_error_notified) {
1816 print_error =
false;
1819 d->vpn_service_error_notified =
true;
1823 PRINT_ERROR(TQString(
"Attempting to access the network-manager VPN service returned: %1").arg(error.name() +
": " + error.message()))
1825 vpnFlags = TDENetworkGlobalManagerFlags::VPNUnknown;
1828 vpnFlags = nmVPNStateToTDEGlobalState(ret);
1831 return globalFlags | vpnFlags;
1835 return TDENetworkGlobalManagerFlags::BackendUnavailable;
1839 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceInformation() {
1840 TQT_DBusError error;
1841 TDENetworkDeviceInformation ret;
1843 if (d->m_networkDeviceProxy) {
1844 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1845 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1846 ret.backendDriver = d->m_networkDeviceProxy->getDriver(error);
1847 ret.backendDriverVersion = d->m_networkDeviceProxy->getDriverVersion(error);
1848 ret.firmwareVersion = d->m_networkDeviceProxy->getFirmwareVersion(error);
1849 ret.capabilityFlags = nmCapabilityFlagsToTDECapabilityFlags(d->m_networkDeviceProxy->getCapabilities(error));
1851 ret.managed = d->m_networkDeviceProxy->getManaged(error);
1852 ret.autoConnect = d->m_networkDeviceProxy->getAutoconnect(error);
1853 ret.firmwareMissing = d->m_networkDeviceProxy->getFirmwareMissing(error);
1854 ret.deviceType = nmDeviceTypeToTDEDeviceType(d->m_networkDeviceProxy->getDeviceType(error));
1855 if (error.isValid()) {
1857 bool print_error =
true;
1858 if (error.name() ==
"org.freedesktop.DBus.Error.AccessDenied") {
1859 if (error.message().contains(
"org.freedesktop.NetworkManager.Device")) {
1862 ret.autoConnect =
true;
1863 if (d->device_autoconnect_error_notified) {
1864 print_error =
false;
1867 d->device_autoconnect_error_notified =
true;
1872 PRINT_ERROR((error.name() +
": " + error.message()))
1876 error = TQT_DBusError();
1880 if ((deviceType() == TDENetworkDeviceType::WiFi) && (d->m_wiFiDeviceProxy)) {
1881 ret.wiFiInfo.valid =
true;
1882 ret.wiFiInfo.hwAddress.fromString(d->m_wiFiDeviceProxy->getHwAddress(error));
1883 ret.wiFiInfo.permanentHWAddress.fromString(d->m_wiFiDeviceProxy->getPermHwAddress(error));
1884 ret.wiFiInfo.operatingMode = nmWiFiModeToTDEWiFiMode(d->m_wiFiDeviceProxy->getMode(error));
1885 ret.wiFiInfo.bitrate = d->m_wiFiDeviceProxy->getBitrate(error);
1886 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(d->m_wiFiDeviceProxy->getActiveAccessPoint(error));
1887 if (error.isValid()) {
1888 PRINT_ERROR((error.name() +
": " + error.message()))
1891 error = TQT_DBusError();
1894 ret.wiFiInfo.activeAccessPointBSSID = apInfo->BSSID;
1895 TDENetworkWiFiAPInfo* neighborListAPInfo = findAccessPointByBSSID(ret.wiFiInfo.activeAccessPointBSSID);
1896 if (neighborListAPInfo) {
1897 *neighborListAPInfo = *apInfo;
1902 ret.wiFiInfo.activeAccessPointBSSID = TDEMACAddress();
1904 ret.wiFiInfo.wirelessFlags = tdeWiFiFlagsToNMWiFiFlags(d->m_wiFiDeviceProxy->getWirelessCapabilities(error));
1907 ret.wiFiInfo.valid =
false;
1911 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1912 if (!error.isValid()) {
1913 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1914 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1915 ret.activeConnectionUUID = activeConnection.getUuid(error);
1916 if (error.isValid()) {
1917 ret.activeConnectionUUID = TQString::null;
1927 TDENetworkDeviceInformation TDENetworkConnectionManager_BackendNM::deviceStatus() {
1928 TQT_DBusError error;
1929 TDENetworkDeviceInformation ret;
1931 if (d->m_networkDeviceProxy) {
1932 ret.statusFlags = nmDeviceStateToTDEDeviceState(d->m_networkDeviceProxy->getState(error));
1933 ret.UUID = d->m_networkDeviceProxy->getUdi(error);
1936 TQT_DBusObjectPath connectionPath = d->m_networkDeviceProxy->getActiveConnection(error);
1937 if (!error.isValid()) {
1938 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, connectionPath);
1939 activeConnection.setConnection(TQT_DBusConnection::systemBus());
1940 ret.activeConnectionUUID = activeConnection.getUuid(error);
1941 if (error.isValid()) {
1942 ret.activeConnectionUUID = TQString::null;
1952 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncReply(
int asyncCallId,
const TQT_DBusDataMap<TQString>& settings) {
1953 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1954 nmConnectionSettingsAsyncSettingsResponse[asyncCallId] = settings;
1957 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncReply(
int asyncCallId) {
1958 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1961 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncReply(
int asyncCallId,
const TQT_DBusObjectPath& path) {
1962 nmConnectionSettingsAsyncCallWaiting[asyncCallId] =
false;
1963 nmAddConnectionAsyncResponse[asyncCallId] = path;
1966 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1967 nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallId] = error;
1970 void TDENetworkConnectionManager_BackendNMPrivate::processConnectionSettingsUpdateAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1971 nmConnectionSettingsUpdateAsyncSettingsErrorResponse[asyncCallId] = error;
1974 void TDENetworkConnectionManager_BackendNMPrivate::processAddConnectionAsyncError(
int asyncCallId,
const TQT_DBusError error) {
1975 nmAddConnectionAsyncErrorResponse[asyncCallId] = error;
1978 void TDENetworkConnectionManager_BackendNM::loadConnectionInformation() {
1979 if (d->nonReentrantCallActive)
return;
1981 d->nonReentrantCallActive =
true;
1983 TDEMACAddress deviceMACAddress;
1984 deviceMACAddress.fromString(m_macAddress);
1986 if (d->m_networkManagerSettings) {
1987 clearTDENetworkConnectionList();
1988 TQT_DBusObjectPathList connections;
1989 TQT_DBusError error;
1992 ret = d->m_networkManagerSettings->ListConnections(connections, error);
1994 TQT_DBusObjectPathList::iterator it;
1995 for (it = connections.begin(); it != connections.end(); ++it) {
1996 TDENetworkConnection* connection;
1997 TDEWiredEthernetConnection* ethernetConnection = NULL;
1998 TDEWiredInfinibandConnection* infinibandConnection = NULL;
1999 TDEWiFiConnection* wiFiConnection = NULL;
2000 TDEVPNConnection* vpnConnection = NULL;
2001 TDEWiMaxConnection* wiMaxConnection = NULL;
2002 TDEVLANConnection* vlanConnection = NULL;
2003 TDEOLPCMeshConnection* olpcMeshConnection = NULL;
2004 TDEBluetoothConnection* bluetoothConnection = NULL;
2005 TDEModemConnection* modemConnection = NULL;
2006 TDENetworkConnectionType::TDENetworkConnectionType connType = connectionType((*it));
2007 if (connType == TDENetworkConnectionType::WiredEthernet) {
2008 connection = ethernetConnection =
new TDEWiredEthernetConnection;
2010 else if (connType == TDENetworkConnectionType::Infiniband) {
2011 connection = infinibandConnection =
new TDEWiredInfinibandConnection;
2013 else if (connType == TDENetworkConnectionType::WiFi) {
2014 connection = wiFiConnection =
new TDEWiFiConnection;
2016 else if (connType == TDENetworkConnectionType::VPN) {
2017 connection = vpnConnection =
new TDEVPNConnection;
2019 else if (connType == TDENetworkConnectionType::WiMax) {
2020 connection = wiMaxConnection =
new TDEWiMaxConnection;
2022 else if (connType == TDENetworkConnectionType::VLAN) {
2023 connection = vlanConnection =
new TDEVLANConnection;
2025 else if (connType == TDENetworkConnectionType::OLPCMesh) {
2026 connection = olpcMeshConnection =
new TDEOLPCMeshConnection;
2028 else if (connType == TDENetworkConnectionType::Bluetooth) {
2029 connection = bluetoothConnection =
new TDEBluetoothConnection;
2031 else if (connType == TDENetworkConnectionType::Modem) {
2032 connection = modemConnection =
new TDEModemConnection;
2035 connection =
new TDENetworkConnection;
2038 connection->ipConfig.connectionFlags = TDENetworkIPConfigurationFlags::IPV4DHCPIP | \
2039 TDENetworkIPConfigurationFlags::IPV4DHCPDNS | \
2040 TDENetworkIPConfigurationFlags::IPV4DHCPRoutes | \
2041 TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute | \
2042 TDENetworkIPConfigurationFlags::IPV6DHCPIP | \
2043 TDENetworkIPConfigurationFlags::IPV6DHCPDNS | \
2044 TDENetworkIPConfigurationFlags::IPV6DHCPRoutes | \
2045 TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
2050 connection->autoConnect =
true;
2052 if (wiFiConnection) {
2053 wiFiConnection->securitySettings.authType = TDENetworkWiFiAuthType::Open;
2056 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2057 printf(
"[network-manager comm debug] %s\n", (*it).data()); fflush(stdout);
2058 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2060 #ifndef USE_ASYNC_DBUS_CALLS 2062 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
2063 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
2064 TQT_DBusTQStringDataMap connectionSettingsMap;
2065 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
2066 if (ret && error.isValid()) {
2068 PRINT_ERROR((error.name() +
": " + error.message()))
2071 #else // USE_ASYNC_DBUS_CALLS 2073 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, (*it));
2074 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
2075 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
2076 connect(&connectionSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processConnectionSettingsAsyncError(
int,
const TQT_DBusError)));
2078 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
2079 if (ret && error.isValid()) {
2081 PRINT_ERROR((error.name() +
": " + error.message()))
2085 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
2086 TQTimer nmCallTimeoutTimer;
2087 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
2088 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
2089 tqApp->processEvents();
2090 if (!nmCallTimeoutTimer.isActive()) {
2091 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
2095 TQT_DBusTQStringDataMap connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
2096 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
2097 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
2098 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
2100 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
2101 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
2102 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
2104 #endif // USE_ASYNC_DBUS_CALLS 2106 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2107 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
2108 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
2109 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2112 TQT_DBusTQStringDataMap::const_iterator it2;
2113 for (it2 = connectionSettingsMap.begin(); it2 != connectionSettingsMap.end(); ++it2) {
2114 TQString outerKeyValue = it2.key();
2115 TQT_DBusData dataValue = it2.data();
2116 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2117 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
2118 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2119 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
2120 TQT_DBusTQStringDataMap::const_iterator it3;
2121 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
2122 TQString keyValue = it3.key();
2123 TQT_DBusData dataValue = it3.data();
2124 if (dataValue.type() != TQT_DBusData::Variant) {
2125 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2126 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
2127 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2131 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
2132 TQT_DBusData dataValue2 = dataValueVariant.value;
2133 if (dataValue2.type() != TQT_DBusData::Variant) {
2134 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2135 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);
2136 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 2138 if (outerKeyValue.lower() ==
"connection") {
2139 if (keyValue.lower() ==
"id") {
2140 connection->friendlyName = dataValue2.toString();
2142 else if (keyValue.lower() ==
"uuid") {
2143 connection->UUID = dataValue2.toString().lower();
2145 else if (keyValue.lower() ==
"permissions") {
2146 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2147 TQT_DBusDataValueList::const_iterator it4;
2148 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2149 TQT_DBusData innerDataValue = *it4;
2150 TQString authString = innerDataValue.toString();
2151 TQStringList pieces = TQStringList::split(
":", authString);
2152 if (pieces[0].lower() ==
"user") {
2153 connection->authorizedUsers.append(pieces[1]);
2157 else if (keyValue.lower() ==
"autoconnect") {
2158 connection->autoConnect = dataValue2.toBool();
2160 else if (keyValue.lower() ==
"read-only") {
2161 connection->readOnly = dataValue2.toBool();
2163 else if (keyValue.lower() ==
"master") {
2164 connection->masterConnectionUUID = dataValue2.toString().lower();
2166 else if (keyValue.lower() ==
"slave-type") {
2167 connection->slaveType = nmSlaveTypeToTDESlaveType(dataValue2.toString());
2169 else if (keyValue.lower() ==
"timestamp") {
2170 connection->lastKnownConnection.setTime_t(dataValue2.toUInt64());
2173 else if (outerKeyValue.lower() ==
"802-1x") {
2174 if (keyValue.lower() ==
"eap") {
2175 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2176 TQT_DBusDataValueList::const_iterator it4;
2178 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2179 TQT_DBusData innerDataValue = *it4;
2182 connection->eapConfig.type = nmEAPTypeToTDEEAPType(innerDataValue.toString());
2187 else if (keyValue.lower() ==
"identity") {
2188 connection->eapConfig.userName = dataValue2.toString();
2190 else if (keyValue.lower() ==
"anonymous-identity") {
2191 connection->eapConfig.anonymousUserName = dataValue2.toString();
2193 else if (keyValue.lower() ==
"pac-file") {
2194 connection->eapConfig.pacFileName = dataValue2.toString();
2196 else if (keyValue.lower() ==
"ca-cert") {
2197 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2198 TQT_DBusDataValueList::const_iterator it4;
2200 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2201 TQT_DBusData innerDataValue = *it4;
2203 connection->eapConfig.caCertificate.resize(count+1);
2204 connection->eapConfig.caCertificate[count] = innerDataValue.toByte();
2207 else if (keyValue.lower() ==
"ca-path") {
2208 connection->eapConfig.additionalCAFilesPath = dataValue2.toString();
2210 else if (keyValue.lower() ==
"subject-match") {
2211 connection->eapConfig.authServerCertSubjectMatch = dataValue2.toString();
2213 else if (keyValue.lower() ==
"altsubject-matches") {
2214 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2215 TQT_DBusDataValueList::const_iterator it4;
2216 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2217 TQT_DBusData innerDataValue = *it4;
2218 connection->eapConfig.alternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2221 else if (keyValue.lower() ==
"client-cert") {
2222 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2223 TQT_DBusDataValueList::const_iterator it4;
2225 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2226 TQT_DBusData innerDataValue = *it4;
2228 connection->eapConfig.clientCertificate.resize(count+1);
2229 connection->eapConfig.clientCertificate[count] = innerDataValue.toByte();
2232 else if (keyValue.lower() ==
"phase1-peapver") {
2233 connection->eapConfig.forcePEAPVersion = dataValue2.toString();
2235 else if (keyValue.lower() ==
"phase1-peaplabel") {
2236 connection->eapConfig.forcePEAPLabel = dataValue2.toString();
2238 else if (keyValue.lower() ==
"phase1-fast-provisioning") {
2239 connection->eapConfig.fastProvisioningFlags = nmEAPFastFlagsToTDEEAPFastFlags(dataValue2.toString());
2241 else if (keyValue.lower() ==
"phase2-auth") {
2242 connection->eapConfig.phase2NonEAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2244 else if (keyValue.lower() ==
"phase2-autheap") {
2245 connection->eapConfig.phase2EAPAuthMethod = nmEAPTypeToTDEEAPType(dataValue2.toString());
2247 else if (keyValue.lower() ==
"phase2-ca-cert") {
2248 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2249 TQT_DBusDataValueList::const_iterator it4;
2251 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2252 TQT_DBusData innerDataValue = *it4;
2254 connection->eapConfig.phase2CaCertificate.resize(count+1);
2255 connection->eapConfig.phase2CaCertificate[count] = innerDataValue.toByte();
2258 else if (keyValue.lower() ==
"phase2-ca-path") {
2259 connection->eapConfig.phase2CaFilesPath = dataValue2.toString();
2261 else if (keyValue.lower() ==
"phase2-subject-match") {
2262 connection->eapConfig.phase2AuthServerCertSubjectMatch = dataValue2.toString();
2264 else if (keyValue.lower() ==
"phase2-altsubject-matches") {
2265 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2266 TQT_DBusDataValueList::const_iterator it4;
2267 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2268 TQT_DBusData innerDataValue = *it4;
2269 connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.append(innerDataValue.toString());
2272 else if (keyValue.lower() ==
"phase2-client-cert") {
2273 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2274 TQT_DBusDataValueList::const_iterator it4;
2276 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2277 TQT_DBusData innerDataValue = *it4;
2279 connection->eapConfig.phase2ClientCertificate.resize(count+1);
2280 connection->eapConfig.phase2ClientCertificate[count] = innerDataValue.toByte();
2283 else if (keyValue.lower() ==
"password-flags") {
2284 connection->eapConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2286 else if (keyValue.lower() ==
"password-raw-flags") {
2287 connection->eapConfig.binaryPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2289 else if (keyValue.lower() ==
"private-key") {
2290 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2291 TQT_DBusDataValueList::const_iterator it4;
2293 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2294 TQT_DBusData innerDataValue = *it4;
2296 connection->eapConfig.privateKey.resize(count+1);
2297 connection->eapConfig.privateKey[count] = innerDataValue.toByte();
2300 else if (keyValue.lower() ==
"private-key-password-flags") {
2301 connection->eapConfig.privateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2303 else if (keyValue.lower() ==
"phase2-private-key") {
2304 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2305 TQT_DBusDataValueList::const_iterator it4;
2307 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2308 TQT_DBusData innerDataValue = *it4;
2310 connection->eapConfig.phase2PrivateKey.resize(count+1);
2311 connection->eapConfig.phase2PrivateKey[count] = innerDataValue.toByte();
2314 else if (keyValue.lower() ==
"phase2-private-key-password-flags") {
2315 connection->eapConfig.phase2PrivateKeyPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2317 else if (keyValue.lower() ==
"system-ca-certs") {
2318 connection->eapConfig.forceSystemCaCertificates = dataValue2.toBool();
2320 connection->eapConfig.valid =
true;
2322 else if (outerKeyValue.lower() ==
"802-3-ethernet") {
2323 if (keyValue.lower() ==
"duplex") {
2324 connection->fullDuplex = (dataValue2.toString().lower() ==
"full")?
true:
false;
2326 else if (keyValue.lower() ==
"mac-address") {
2327 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2328 TQT_DBusDataValueList::const_iterator it4;
2329 TDENetworkByteList macAddress;
2330 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2331 TQT_DBusData innerDataValue = *it4;
2332 macAddress.append(innerDataValue.toByte());
2334 connection->lockedHWAddress.setAddress(macAddress);
2336 else if (keyValue.lower() ==
"cloned-mac-address") {
2337 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2338 TQT_DBusDataValueList::const_iterator it4;
2339 TDENetworkByteList macAddress;
2340 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2341 TQT_DBusData innerDataValue = *it4;
2342 macAddress.append(innerDataValue.toByte());
2344 connection->manualHWAddress.setAddress(macAddress);
2346 else if (keyValue.lower() ==
"mtu") {
2347 connection->mtu = dataValue2.toUInt32();
2350 else if (outerKeyValue.lower() ==
"infiniband") {
2351 if (keyValue.lower() ==
"mac-address") {
2352 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2353 TQT_DBusDataValueList::const_iterator it4;
2354 TDENetworkByteList macAddress;
2355 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2356 TQT_DBusData innerDataValue = *it4;
2357 macAddress.append(innerDataValue.toByte());
2359 connection->lockedHWAddress.setAddress(macAddress);
2361 else if (keyValue.lower() ==
"mtu") {
2362 connection->mtu = dataValue2.toUInt32();
2364 else if (keyValue.lower() ==
"transport-mode") {
2365 infinibandConnection->transportMode = nmIBTransportToTDEIBTransport(dataValue2.toString());
2368 else if (outerKeyValue.lower() ==
"802-11-wireless") {
2369 if (keyValue.lower() ==
"ssid") {
2370 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2371 TQT_DBusDataValueList::const_iterator it4;
2373 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2374 TQT_DBusData innerDataValue = *it4;
2375 wiFiConnection->SSID.resize(count+1);
2376 wiFiConnection->SSID[count] = innerDataValue.toByte();
2380 else if (keyValue.lower() ==
"mac-address") {
2381 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2382 TQT_DBusDataValueList::const_iterator it4;
2383 TDENetworkByteList macAddress;
2384 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2385 TQT_DBusData innerDataValue = *it4;
2386 macAddress.append(innerDataValue.toByte());
2388 connection->lockedHWAddress.setAddress(macAddress);
2390 else if (keyValue.lower() ==
"cloned-mac-address") {
2391 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2392 TQT_DBusDataValueList::const_iterator it4;
2393 TDENetworkByteList macAddress;
2394 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2395 TQT_DBusData innerDataValue = *it4;
2396 macAddress.append(innerDataValue.toByte());
2398 connection->manualHWAddress.setAddress(macAddress);
2400 else if (keyValue.lower() ==
"mtu") {
2401 connection->mtu = dataValue2.toUInt32();
2403 else if (keyValue.lower() ==
"mode") {
2404 wiFiConnection->operatingMode = nmWiFiModeToTDEWiFiMode(dataValue2.toString());
2406 else if (keyValue.lower() ==
"band") {
2407 wiFiConnection->bandRestriction = nmWiFiFrequencyBandToTDEWiFiFrequencyBand(dataValue2.toString());
2409 else if (keyValue.lower() ==
"channel") {
2410 wiFiConnection->channelRestriction = dataValue2.toUInt32();
2411 if (wiFiConnection->channelRestriction == 0) wiFiConnection->channelRestriction = -1;
2413 else if (keyValue.lower() ==
"rate") {
2414 wiFiConnection->bitRateRestriction = dataValue2.toUInt32()*1000;
2415 if (wiFiConnection->bitRateRestriction == 0) wiFiConnection->bitRateRestriction = -1;
2417 else if (keyValue.lower() ==
"tx-power") {
2418 wiFiConnection->powerRestriction = dataValue2.toUInt32();
2419 if (wiFiConnection->powerRestriction == 0) wiFiConnection->powerRestriction = -1;
2421 else if (keyValue.lower() ==
"bssid") {
2422 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2423 TQT_DBusDataValueList::const_iterator it4;
2424 TDENetworkByteList macAddress;
2425 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2426 TQT_DBusData innerDataValue = *it4;
2427 macAddress.append(innerDataValue.toByte());
2429 wiFiConnection->accessPointRestriction.setAddress(macAddress);
2431 else if (keyValue.lower() ==
"mac-address-blacklist") {
2432 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2433 TQT_DBusDataValueList::const_iterator it4;
2434 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2435 TQT_DBusData innerDataValue = *it4;
2436 TDEMACAddress hwAddress;
2437 hwAddress.fromString(innerDataValue.toString());
2438 wiFiConnection->blacklistedBSSIDs.append(hwAddress);
2441 else if (keyValue.lower() ==
"seen-bssids") {
2442 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2443 TQT_DBusDataValueList::const_iterator it4;
2444 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2445 TQT_DBusData innerDataValue = *it4;
2446 TDEMACAddress hwAddress;
2447 hwAddress.fromString(innerDataValue.toString());
2448 wiFiConnection->heardBSSIDs.append(hwAddress);
2451 else if (keyValue.lower() ==
"security") {
2453 if (setting.lower() ==
"802-11-wireless-security") {
2454 wiFiConnection->securityRequired =
true;
2457 wiFiConnection->securityRequired =
false;
2460 else if (keyValue.lower() ==
"hidden") {
2461 wiFiConnection->isHiddenNetwork = dataValue2.toBool();
2464 else if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
2465 if (keyValue.lower() ==
"key-mgmt") {
2466 wiFiConnection->securitySettings.keyType = nmWiFiKeyTypeToTDEWiFiKeyType(dataValue2.toString());
2468 else if (keyValue.lower() ==
"wep-tx-keyidx") {
2469 wiFiConnection->securitySettings.wepKeyIndex = dataValue2.toUInt32();
2471 else if (keyValue.lower() ==
"auth-alg") {
2472 wiFiConnection->securitySettings.authType = nmWiFiAuthTypeToTDEWiFiAuthType(dataValue2.toString());
2474 else if (keyValue.lower() ==
"proto") {
2475 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2476 TQT_DBusDataValueList::const_iterator it4;
2477 TQStringList strings;
2478 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2479 TQT_DBusData innerDataValue = *it4;
2480 strings.append(innerDataValue.toString());
2482 wiFiConnection->securitySettings.wpaVersion = nmWiFiWPAVersionToTDEWiFiWPAVersion(strings);
2484 else if (keyValue.lower() ==
"pairwise") {
2485 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2486 TQT_DBusDataValueList::const_iterator it4;
2487 TQStringList strings;
2488 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2489 TQT_DBusData innerDataValue = *it4;
2490 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2492 if ((wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2493 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2494 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2495 || (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2496 wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2499 else if (keyValue.lower() ==
"group") {
2500 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2501 TQT_DBusDataValueList::const_iterator it4;
2502 TQStringList strings;
2503 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2504 TQT_DBusData innerDataValue = *it4;
2505 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(nmWiFiCipherToTDEWiFiCipher(innerDataValue.toString()));
2507 if ((wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40))
2508 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104))
2509 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP))
2510 || (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP))) {
2511 wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::Any);
2514 else if (keyValue.lower() ==
"leap-username") {
2515 wiFiConnection->securitySettings.leapUsername = dataValue2.toString();
2517 else if (keyValue.lower() ==
"wep-key-flags") {
2518 wiFiConnection->securitySettings.wepKeyFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2520 else if (keyValue.lower() ==
"wep-key-type") {
2521 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(dataValue2.toUInt32());
2523 else if (keyValue.lower() ==
"psk-flags") {
2524 wiFiConnection->securitySettings.pskFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2526 else if (keyValue.lower() ==
"leap-password-flags") {
2527 wiFiConnection->securitySettings.leapPasswordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2529 wiFiConnection->securitySettings.valid =
true;
2531 else if (outerKeyValue.lower() ==
"vpn") {
2532 if (keyValue.lower() ==
"service-type") {
2533 TQString plugin = dataValue2.toString();
2534 plugin.replace(
"org.freedesktop.NetworkManager.",
"");
2535 vpnConnection->vpnPluginID = plugin;
2537 else if (keyValue.lower() ==
"user-name") {
2538 vpnConnection->lockedUserName = dataValue2.toString();
2540 else if (keyValue.lower() ==
"data") {
2541 vpnConnection->pluginData.clear();
2542 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
2543 TQT_DBusTQStringDataMap::const_iterator it4;
2544 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
2545 TQString keyValue4 = it4.key();
2546 TQT_DBusData dataValue4 = it4.data();
2547 if (dataValue4.type() == TQT_DBusData::String) {
2548 vpnConnection->pluginData[keyValue4] = dataValue4.toString();
2553 else if (outerKeyValue.lower() ==
"wimax") {
2554 if (keyValue.lower() ==
"mac-address") {
2555 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2556 TQT_DBusDataValueList::const_iterator it4;
2557 TDENetworkByteList macAddress;
2558 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2559 TQT_DBusData innerDataValue = *it4;
2560 macAddress.append(innerDataValue.toByte());
2562 connection->lockedHWAddress.setAddress(macAddress);
2564 else if (keyValue.lower() ==
"network-name") {
2565 wiMaxConnection->networkServiceProvider = dataValue2.toString();
2568 else if (outerKeyValue.lower() ==
"vlan") {
2569 if (keyValue.lower() ==
"interface-name") {
2570 vlanConnection->kernelName = dataValue2.toString();
2572 else if (keyValue.lower() ==
"parent") {
2573 vlanConnection->parentConnectionUUID = dataValue2.toString();
2575 else if (keyValue.lower() ==
"id") {
2576 vlanConnection->vlanID = dataValue2.toUInt32();
2578 else if (keyValue.lower() ==
"flags") {
2579 vlanConnection->vlanFlags = nmVLANFlagsToTDEVLANFlags(dataValue2.toUInt32());
2581 else if (keyValue.lower() ==
"ingress-priority-map") {
2582 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2583 TQT_DBusDataValueList::const_iterator it4;
2584 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2585 TQT_DBusData innerDataValue = *it4;
2586 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2587 vlanConnection->ingressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2590 else if (keyValue.lower() ==
"egress-priority-map") {
2591 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2592 TQT_DBusDataValueList::const_iterator it4;
2593 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2594 TQT_DBusData innerDataValue = *it4;
2595 TQStringList pieces = TQStringList::split(
":", innerDataValue.toString(), TRUE);
2596 vlanConnection->egressPriorityMap[pieces[0].toUInt()] = pieces[1].toUInt();;
2600 else if (outerKeyValue.lower() ==
"serial") {
2601 if (keyValue.lower() ==
"baud") {
2602 connection->serialConfig.baudRate = dataValue2.toUInt32();
2604 else if (keyValue.lower() ==
"bits") {
2605 connection->serialConfig.byteWidth = dataValue2.toUInt32();
2607 else if (keyValue.lower() ==
"parity") {
2608 connection->serialConfig.parity = nmParityToTDEParity(dataValue2.toByte());
2610 else if (keyValue.lower() ==
"stopbits") {
2611 connection->serialConfig.stopBits = dataValue2.toUInt32();
2613 else if (keyValue.lower() ==
"send-delay") {
2614 connection->serialConfig.txDelay = dataValue2.toUInt64();
2616 connection->serialConfig.valid =
true;
2618 else if (outerKeyValue.lower() ==
"ppp") {
2619 if (keyValue.lower() ==
"noauth") {
2620 connection->pppConfig.requireServerAuthentication = !(dataValue2.toBool());
2622 else if (keyValue.lower() ==
"refuse-eap") {
2623 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableEAP;
2624 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableEAP;
2626 else if (keyValue.lower() ==
"refuse-pap") {
2627 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisablePAP;
2628 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisablePAP;
2630 else if (keyValue.lower() ==
"refuse-chap") {
2631 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableCHAP;
2632 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableCHAP;
2634 else if (keyValue.lower() ==
"refuse-mschap") {
2635 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAP;
2636 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAP;
2638 else if (keyValue.lower() ==
"refuse-mschapv2") {
2639 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::DisableMSCHAPv2;
2640 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::DisableMSCHAPv2;
2642 else if (keyValue.lower() ==
"nobsdcomp") {
2643 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowBSDCompression;
2644 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowBSDCompression;
2646 else if (keyValue.lower() ==
"nodeflate") {
2647 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowDeflateCompression;
2648 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowDeflateCompression;
2650 else if (keyValue.lower() ==
"no-vj-comp") {
2651 if (dataValue2.toBool()) connection->pppConfig.flags &= ~TDENetworkPPPFlags::AllowVJCompression;
2652 else connection->pppConfig.flags |= TDENetworkPPPFlags::AllowVJCompression;
2654 else if (keyValue.lower() ==
"require-mppe") {
2655 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE;
2656 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE;
2658 else if (keyValue.lower() ==
"require-mppe-128") {
2659 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::RequireMPPE128;
2660 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::RequireMPPE128;
2662 else if (keyValue.lower() ==
"mppe-stateful") {
2663 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::StatefulMPPE;
2664 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::StatefulMPPE;
2666 else if (keyValue.lower() ==
"crtscts") {
2667 if (dataValue2.toBool()) connection->pppConfig.flags |= TDENetworkPPPFlags::UseHardwareFlowControl;
2668 else connection->pppConfig.flags &= ~TDENetworkPPPFlags::UseHardwareFlowControl;
2670 else if (keyValue.lower() ==
"baud") {
2671 connection->pppConfig.baudRate = dataValue2.toUInt32();
2673 else if (keyValue.lower() ==
"mru") {
2674 connection->pppConfig.mru = dataValue2.toUInt32();
2676 else if (keyValue.lower() ==
"mtu") {
2677 connection->pppConfig.mtu = dataValue2.toUInt32();
2679 else if (keyValue.lower() ==
"lcp-echo-interval") {
2680 connection->pppConfig.lcpEchoPingInterval = dataValue2.toUInt32();
2682 else if (keyValue.lower() ==
"lcp-echo-failure") {
2683 connection->pppConfig.lcpEchoFailureThreshold = dataValue2.toUInt32();
2685 connection->pppConfig.valid =
true;
2687 else if (outerKeyValue.lower() ==
"pppoe") {
2688 if (keyValue.lower() ==
"service") {
2689 connection->pppoeConfig.networkServiceProvider = dataValue2.toString();
2691 else if (keyValue.lower() ==
"username") {
2692 connection->pppoeConfig.username = dataValue2.toString();
2694 else if (keyValue.lower() ==
"password-flags") {
2695 connection->pppoeConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2697 connection->pppoeConfig.secretsValid =
true;
2699 else if ((outerKeyValue.lower() ==
"802-11-olpc-mesh") && (olpcMeshConnection)) {
2700 if (keyValue.lower() ==
"ssid") {
2701 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2702 TQT_DBusDataValueList::const_iterator it4;
2704 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2705 TQT_DBusData innerDataValue = *it4;
2706 olpcMeshConnection->SSID.resize(count+1);
2707 olpcMeshConnection->SSID[count] = innerDataValue.toByte();
2711 else if (keyValue.lower() ==
"channel") {
2712 olpcMeshConnection->channel = dataValue2.toUInt32();
2714 else if (keyValue.lower() ==
"dhcp-anycast-address") {
2715 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2716 TQT_DBusDataValueList::const_iterator it4;
2718 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2719 TQT_DBusData innerDataValue = *it4;
2720 olpcMeshConnection->anycastDHCPHWAddress.resize(count+1);
2721 olpcMeshConnection->anycastDHCPHWAddress[count] = innerDataValue.toByte();
2726 else if ((outerKeyValue.lower() ==
"bluetooth") && (bluetoothConnection)) {
2727 if (keyValue.lower() ==
"bdaddr") {
2728 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2729 TQT_DBusDataValueList::const_iterator it4;
2730 TDENetworkByteList macAddress;
2731 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2732 TQT_DBusData innerDataValue = *it4;
2733 macAddress.append(innerDataValue.toByte());
2735 connection->lockedHWAddress.setAddress(macAddress);
2737 else if (keyValue.lower() ==
"type") {
2738 bluetoothConnection->type = nmBluetoothModeToTDEBluetoothMode(dataValue2.toString());
2741 else if ((outerKeyValue.lower() ==
"cdma") && (modemConnection)) {
2742 if (keyValue.lower() ==
"number") {
2743 modemConnection->cdmaConfig.providerDataNumber = dataValue2.toString();
2745 else if (keyValue.lower() ==
"username") {
2746 modemConnection->cdmaConfig.username = dataValue2.toString();
2748 else if (keyValue.lower() ==
"password-flags") {
2749 modemConnection->cdmaConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2751 modemConnection->type = TDEModemConnectionType::CDMA;
2752 modemConnection->cdmaConfig.valid =
true;
2754 else if ((outerKeyValue.lower() ==
"gsm") && (modemConnection)) {
2755 if (keyValue.lower() ==
"number") {
2756 modemConnection->gsmConfig.providerDataNumber = dataValue2.toString();
2758 else if (keyValue.lower() ==
"username") {
2759 modemConnection->gsmConfig.username = dataValue2.toString();
2761 else if (keyValue.lower() ==
"password-flags") {
2762 modemConnection->gsmConfig.passwordFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2764 else if (keyValue.lower() ==
"apn") {
2765 modemConnection->gsmConfig.accessPointName = dataValue2.toString();
2767 else if (keyValue.lower() ==
"network-id") {
2768 modemConnection->gsmConfig.networkID = dataValue2.toString();
2770 else if (keyValue.lower() ==
"network-type") {
2771 modemConnection->gsmConfig.networkType = nmGSMModeToTDEGSMMode(dataValue2.toInt32());
2773 else if (keyValue.lower() ==
"pin-flags") {
2774 modemConnection->gsmConfig.pinFlags = nmPasswordFlagsToTDEPasswordFlags(dataValue2.toUInt32());
2776 else if (keyValue.lower() ==
"allowed-bands") {
2777 modemConnection->gsmConfig.allowedFrequencyBands = dataValue2.toUInt32();
2779 else if (keyValue.lower() ==
"home-only") {
2780 modemConnection->gsmConfig.allowRoaming = !dataValue2.toBool();
2782 modemConnection->type = TDEModemConnectionType::GSM;
2783 modemConnection->gsmConfig.valid =
true;
2785 else if (outerKeyValue.lower() ==
"ipv4") {
2786 if (keyValue.lower() ==
"addresses") {
2787 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2788 TQT_DBusDataValueList::const_iterator it4;
2789 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2790 TQT_DBusData innerDataValue = *it4;
2791 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2792 TQT_DBusDataValueList::const_iterator it5;
2794 TDENetworkSingleIPConfiguration ipConfig;
2795 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2796 TQT_DBusData innerMostDataValue = *it5;
2799 ipConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2801 else if (state == 1) {
2803 ipConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2805 else if (state == 2) {
2807 ipConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2811 ipConfig.valid =
true;
2812 connection->ipConfig.ipConfigurations.append(ipConfig);
2815 else if (keyValue.lower() ==
"dhcp-client-id") {
2816 connection->ipConfig.dhcpClientIdentifier = dataValue2.toString();
2818 else if (keyValue.lower() ==
"dns") {
2819 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2820 TQT_DBusDataValueList::const_iterator it4;
2821 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2822 TQT_DBusData innerDataValue = *it4;
2823 connection->ipConfig.resolvers.append(TQHostAddress(reverseIPV4ByteOrder(innerDataValue.toUInt32())));
2826 else if (keyValue.lower() ==
"dns-search") {
2827 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2828 TQT_DBusDataValueList::const_iterator it4;
2829 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2830 TQT_DBusData innerDataValue = *it4;
2831 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
false));
2834 else if (keyValue.lower() ==
"ignore-auto-dns") {
2835 bool nm_static_dns = dataValue2.toBool();
2836 if (nm_static_dns) {
2840 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2843 else if (keyValue.lower() ==
"may-fail") {
2844 bool nm_may_fail = dataValue2.toBool();
2845 connection->requireIPV4 = !nm_may_fail;
2847 else if (keyValue.lower() ==
"method") {
2848 TQString nm_method = dataValue2.toString().lower();
2849 if (nm_method ==
"auto") {
2850 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPIP;
2852 else if (nm_method ==
"manual") {
2855 else if (nm_method ==
"link-local") {
2858 else if (nm_method ==
"shared") {
2861 else if (nm_method ==
"disabled") {
2865 else if (keyValue.lower() ==
"ignore-auto-routes") {
2866 bool nm_static_routes = dataValue2.toBool();
2867 if (nm_static_routes) {
2871 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPRoutes;
2874 else if (keyValue.lower() ==
"never-default") {
2875 bool nm_can_default_route = !dataValue2.toBool();
2876 if (nm_can_default_route) {
2877 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute;
2883 else if (keyValue.lower() ==
"routes") {
2884 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2885 TQT_DBusDataValueList::const_iterator it4;
2886 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2887 TQT_DBusData innerDataValue = *it4;
2888 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2889 TQT_DBusDataValueList::const_iterator it5;
2891 TDENetworkSingleRouteConfiguration routeConfig;
2892 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2893 TQT_DBusData innerMostDataValue = *it5;
2896 routeConfig.ipAddress = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2898 else if (state == 1) {
2900 routeConfig.networkMask.fromCIDRMask(innerMostDataValue.toUInt32());
2902 else if (state == 2) {
2904 routeConfig.gateway = TQHostAddress(reverseIPV4ByteOrder(innerMostDataValue.toUInt32()));
2906 else if (state == 3) {
2908 routeConfig.metric = innerMostDataValue.toUInt32();
2912 routeConfig.valid =
true;
2913 connection->ipConfig.routeConfigurations.append(routeConfig);
2916 connection->ipConfig.valid =
true;
2918 else if (outerKeyValue.lower() ==
"ipv6") {
2919 if (keyValue.lower() ==
"addresses") {
2920 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2921 TQT_DBusDataValueList::const_iterator it4;
2922 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2923 TQT_DBusData innerDataValue = *it4;
2924 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
2925 TQT_DBusDataValueList::const_iterator it5;
2926 TDENetworkSingleIPConfiguration ipConfig;
2928 TQT_DBusDataValueList innerMostValueList;
2929 innerMostValueList = innerValueList[0].toTQValueList();
2930 TQ_UINT8 nm_v6address[16];
2931 unsigned char nm_addr_ptr = 0;
2932 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2933 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2934 TQT_DBusData innerMostDataValue = *it5;
2935 if (nm_addr_ptr < 16) {
2936 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2940 ipConfig.ipAddress = TQHostAddress(nm_v6address);
2943 ipConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
2946 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2947 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
2948 TQT_DBusData innerMostDataValue = *it5;
2949 if (nm_addr_ptr < 16) {
2950 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2954 ipConfig.gateway = TQHostAddress(nm_v6address);
2956 ipConfig.valid =
true;
2957 connection->ipConfig.ipConfigurations.append(ipConfig);
2960 else if (keyValue.lower() ==
"dns") {
2961 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2962 TQT_DBusDataValueList::const_iterator it4;
2963 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2964 TQT_DBusData innerDataValue = *it4;
2965 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2966 TQT_DBusDataValueList::const_iterator it5;
2967 TQ_UINT8 nm_v6address[16];
2968 unsigned char nm_addr_ptr = 0;
2969 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
2970 for (it5 = innerValueList.begin(); it5 != innerValueList.end(); ++it5) {
2971 TQT_DBusData innerMostDataValue = *it5;
2972 if (nm_addr_ptr < 16) {
2973 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
2977 connection->ipConfig.resolvers.append(TQHostAddress(nm_v6address));
2980 else if (keyValue.lower() ==
"dns-search") {
2981 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
2982 TQT_DBusDataValueList::const_iterator it4;
2983 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
2984 TQT_DBusData innerDataValue = *it4;
2985 TQT_DBusDataValueList innerValueList = innerDataValue.toTQValueList();
2986 TQT_DBusDataValueList::const_iterator it5;
2987 connection->ipConfig.searchDomains.append(TDENetworkSearchDomain(innerDataValue.toString(),
true));
2990 else if (keyValue.lower() ==
"ignore-auto-dns") {
2991 bool nm_static_dns = dataValue2.toBool();
2992 if (nm_static_dns) {
2996 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV4DHCPDNS;
2999 else if (keyValue.lower() ==
"may-fail") {
3000 bool nm_may_fail = dataValue2.toBool();
3001 connection->requireIPV6 = !nm_may_fail;
3003 else if (keyValue.lower() ==
"method") {
3004 TQString nm_method = dataValue2.toString().lower();
3005 if (nm_method ==
"auto") {
3006 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPIP;
3008 else if (nm_method ==
"manual") {
3011 else if (nm_method ==
"link-local") {
3014 else if (nm_method ==
"shared") {
3017 else if (nm_method ==
"ignore") {
3021 else if (keyValue.lower() ==
"ignore-auto-routes") {
3022 bool nm_static_routes = dataValue2.toBool();
3023 if (nm_static_routes) {
3027 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6DHCPRoutes;
3030 else if (keyValue.lower() ==
"never-default") {
3031 bool nm_can_default_route = !dataValue2.toBool();
3032 if (nm_can_default_route) {
3033 connection->ipConfig.connectionFlags |= TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute;
3039 else if (keyValue.lower() ==
"routes") {
3040 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
3041 TQT_DBusDataValueList::const_iterator it4;
3042 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
3043 TQT_DBusData innerDataValue = *it4;
3044 TQT_DBusDataValueList innerValueList = innerDataValue.toStruct();
3045 TQT_DBusDataValueList::const_iterator it5;
3046 TDENetworkSingleRouteConfiguration routeConfig;
3048 TQT_DBusDataValueList innerMostValueList;
3049 innerMostValueList = innerValueList[0].toTQValueList();
3050 TQ_UINT8 nm_v6address[16];
3051 unsigned char nm_addr_ptr = 0;
3052 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
3053 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
3054 TQT_DBusData innerMostDataValue = *it5;
3055 if (nm_addr_ptr < 16) {
3056 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
3060 routeConfig.ipAddress = TQHostAddress(nm_v6address);
3063 routeConfig.networkMask.fromCIDRMask(innerValueList[1].toUInt32(),
true);
3066 innerMostValueList = innerValueList[2].toTQValueList();
3068 memset(nm_v6address, 0,
sizeof(TQ_UINT8)*16);
3069 for (it5 = innerMostValueList.begin(); it5 != innerMostValueList.end(); ++it5) {
3070 TQT_DBusData innerMostDataValue = *it5;
3071 if (nm_addr_ptr < 16) {
3072 nm_v6address[nm_addr_ptr] = innerMostDataValue.toByte();
3076 routeConfig.gateway = TQHostAddress(nm_v6address);
3079 routeConfig.metric = innerValueList[3].toUInt32();
3081 routeConfig.valid =
true;
3082 connection->ipConfig.routeConfigurations.append(routeConfig);
3085 connection->ipConfig.valid =
true;
3100 if ((deviceMACAddress == connection->lockedHWAddress) || (!connection->lockedHWAddress.isValid()) || (!deviceMACAddress.isValid())) {
3101 loadConnectionAllowedValues(connection);
3102 m_connectionList->append(connection);
3107 PRINT_ERROR((error.name() +
": " + error.message()))
3113 PRINT_ERROR((error.name() +
": " + error.message()))
3115 internalNetworkManagementEvent(TDENetworkGlobalEventType::ConnectionListChanged);
3118 d->nonReentrantCallActive =
false;
3121 void TDENetworkConnectionManager_BackendNM::loadConnectionAllowedValues(TDENetworkConnection* connection) {
3124 connection->eapConfig.allowedPhase2NonEAPMethods.clear();
3125 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MD5);
3126 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3127 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::OTP);
3128 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::GTC);
3129 connection->eapConfig.allowedPhase2NonEAPMethods.append(TDENetworkIEEE8021xType::TLS);
3131 connection->eapConfig.allowedPhase2EAPMethods.clear();
3132 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::PAP);
3133 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::CHAP);
3134 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAP);
3135 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::MSCHAPV2);
3136 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::OTP);
3137 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::GTC);
3138 connection->eapConfig.allowedPhase2EAPMethods.append(TDENetworkIEEE8021xType::TLS);
3140 connection->eapConfig.allowedValid =
true;
3147 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecrets(TQString uuid) {
3148 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3150 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3155 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3156 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3161 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3164 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-1x");
3165 if (wiFiConnection) {
3166 ret = ret && loadConnectionSecretsForGroup(uuid,
"802-11-wireless-security");
3168 if (vpnConnection) {
3169 ret = ret && loadConnectionSecretsForGroup(uuid,
"vpn");
3171 ret = ret && loadConnectionSecretsForGroup(uuid,
"pppoe");
3172 if (modemConnection) {
3173 ret = ret && loadConnectionSecretsForGroup(uuid,
"cdma");
3174 ret = ret && loadConnectionSecretsForGroup(uuid,
"gsm");
3179 bool TDENetworkConnectionManager_BackendNM::loadConnectionSecretsForGroup(TQString uuid, TQString group) {
3180 TDENetworkConnection* connection = findConnectionByUUID(uuid);
3182 PRINT_ERROR(TQString(
"Unable to locate connection with uuid '%1' in local database. Did you run loadConnectionInformation() first?"));
3187 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3188 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3193 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3194 TQT_DBusObjectPath existingConnection;
3195 TQT_DBusError error;
3197 TQT_DBusTQStringDataMap connectionSecretsMap(TQT_DBusData::String);
3198 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
3200 #ifndef USE_ASYNC_DBUS_CALLS 3202 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3203 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3204 ret = connectionSettings.GetSecrets(group, connectionSecretsMap, error);
3205 if (ret && error.isValid()) {
3207 PRINT_ERROR((error.name() +
": " + error.message()))
3210 #else // USE_ASYNC_DBUS_CALLS 3212 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3213 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3214 connect(&connectionSettings, SIGNAL(GetSecretsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3216 ret = connectionSettings.GetSecretsAsync(asyncCallID, group, error);
3217 if (ret && error.isValid()) {
3219 PRINT_ERROR((error.name() +
": " + error.message()))
3223 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3224 TQTimer nmCallTimeoutTimer;
3225 nmCallTimeoutTimer.start(NM_ASYNC_SECRETS_INTERACTION_TIMEOUT_MS, TRUE);
3226 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3227 tqApp->processEvents();
3228 if (!nmCallTimeoutTimer.isActive()) {
3229 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3233 connectionSecretsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3234 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3235 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3236 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3238 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3239 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3240 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3242 #endif // USE_ASYNC_DBUS_CALLS 3244 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3245 printf(
"[network-manager comm debug] received DBUS object structure map follows:\n"); fflush(stdout);
3246 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSecretsMap));
3247 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3250 TQT_DBusTQStringDataMap::const_iterator it2;
3251 for (it2 = connectionSecretsMap.begin(); it2 != connectionSecretsMap.end(); ++it2) {
3252 TQString outerKeyValue = it2.key();
3253 TQT_DBusData dataValue = it2.data();
3254 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3255 printf(
"[network-manager comm debug] [%s]\n", outerKeyValue.ascii()); fflush(stdout);
3256 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3257 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue.toStringKeyMap();
3258 TQT_DBusTQStringDataMap::const_iterator it3;
3259 for (it3 = nestedConnectionSettingsMap.begin(); it3 != nestedConnectionSettingsMap.end(); ++it3) {
3260 TQString keyValue = it3.key();
3261 TQT_DBusData dataValue = it3.data();
3262 if (dataValue.type() != TQT_DBusData::Variant) {
3263 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3264 printf(
"[network-manager comm debug] %s = %s (type %d(%s))\n", keyValue.ascii(), dataValue.toString().ascii(), dataValue.type(), dataValue.typeName()); fflush(stdout);
3265 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3269 TQT_DBusVariant dataValueVariant = dataValue.toVariant();
3270 TQT_DBusData dataValue2 = dataValueVariant.value;
3271 if (dataValue2.type() != TQT_DBusData::Variant) {
3272 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3273 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);
3274 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 3276 if (outerKeyValue.lower() ==
"802-1x") {
3277 if (keyValue.lower() ==
"password") {
3278 connection->eapConfig.password = dataValue2.toString();
3280 else if (keyValue.lower() ==
"password-raw") {
3281 TQT_DBusDataValueList valueList = dataValue2.toTQValueList();
3282 TQT_DBusDataValueList::const_iterator it4;
3284 for (it4 = valueList.begin(); it4 != valueList.end(); ++it4) {
3285 TQT_DBusData innerDataValue = *it4;
3287 connection->eapConfig.binaryPassword.resize(count+1);
3288 connection->eapConfig.binaryPassword[count] = innerDataValue.toByte();
3291 else if (keyValue.lower() ==
"private-key-password") {
3292 connection->eapConfig.privateKeyPassword = dataValue2.toString();
3294 else if (keyValue.lower() ==
"phase2-private-key-password") {
3295 connection->eapConfig.phase2PrivateKeyPassword = dataValue2.toString();
3297 connection->eapConfig.secretsValid =
true;
3299 if ((outerKeyValue.lower() ==
"802-11-wireless-security") && (wiFiConnection)) {
3300 if (keyValue.lower() ==
"wep-key0") {
3301 wiFiConnection->securitySettings.wepKey0 = dataValue2.toString();
3302 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey0);
3304 else if (keyValue.lower() ==
"wep-key1") {
3305 wiFiConnection->securitySettings.wepKey1 = dataValue2.toString();
3306 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey1);
3308 else if (keyValue.lower() ==
"wep-key2") {
3309 wiFiConnection->securitySettings.wepKey2 = dataValue2.toString();
3310 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey2);
3312 else if (keyValue.lower() ==
"wep-key3") {
3313 wiFiConnection->securitySettings.wepKey3 = dataValue2.toString();
3314 wiFiConnection->securitySettings.wepKeyType = nmWepKeyTypeToTDEWepKeyType(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType), wiFiConnection->securitySettings.wepKey3);
3316 else if (keyValue.lower() ==
"psk") {
3317 wiFiConnection->securitySettings.psk = dataValue2.toString();
3319 else if (keyValue.lower() ==
"eap-password") {
3320 wiFiConnection->securitySettings.leapPassword = dataValue2.toString();
3323 if ((outerKeyValue.lower() ==
"vpn") && (vpnConnection)) {
3324 if (keyValue.lower() ==
"secrets") {
3325 TQT_DBusTQStringDataMap nestedConnectionSettingsMap = dataValue2.toStringKeyMap();
3326 TQT_DBusTQStringDataMap::const_iterator it4;
3327 for (it4 = nestedConnectionSettingsMap.begin(); it4 != nestedConnectionSettingsMap.end(); ++it4) {
3328 vpnConnection->pluginSecrets.clear();
3329 TQString keyValue4 = it4.key();
3330 TQT_DBusData dataValue4 = it4.data();
3331 if (dataValue4.type() == TQT_DBusData::String) {
3332 vpnConnection->pluginSecrets[keyValue4] = dataValue4.toString();
3335 vpnConnection->secretsValid =
true;
3338 if (outerKeyValue.lower() ==
"pppoe") {
3339 if (keyValue.lower() ==
"password") {
3340 connection->pppoeConfig.password = dataValue2.toString();
3342 connection->pppoeConfig.secretsValid =
true;
3344 if (outerKeyValue.lower() ==
"cdma") {
3345 if (keyValue.lower() ==
"password") {
3346 modemConnection->cdmaConfig.password = dataValue2.toString();
3348 modemConnection->cdmaConfig.secretsValid =
true;
3350 if (outerKeyValue.lower() ==
"gsm") {
3351 if (keyValue.lower() ==
"password") {
3352 modemConnection->gsmConfig.password = dataValue2.toString();
3354 else if (keyValue.lower() ==
"pin") {
3355 modemConnection->gsmConfig.pin = dataValue2.toString();
3357 modemConnection->gsmConfig.secretsValid =
true;
3366 PRINT_ERROR(TQString(
"Unable to load secrets for connection with uuid '%1'").arg(uuid))
3371 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
3376 bool TDENetworkConnectionManager_BackendNM::saveConnection(TDENetworkConnection* connection) {
3377 bool timed_out = FALSE;
3378 bool command_failed = FALSE;
3381 PRINT_ERROR(TQString(
"connection cannot be NULL!"));
3386 if (connection->UUID ==
"") {
3387 bool unique =
false;
3389 connection->UUID = TQUuid::createUuid().toString();
3390 connection->UUID.replace(
"{",
"");
3391 connection->UUID.replace(
"}",
"");
3392 if (!findConnectionByUUID(connection->UUID)) {
3400 TDEWiredEthernetConnection* ethernetConnection =
dynamic_cast<TDEWiredEthernetConnection*
>(connection);
3401 TDEWiredInfinibandConnection* infinibandConnection =
dynamic_cast<TDEWiredInfinibandConnection*
>(connection);
3402 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
3403 TDEVPNConnection* vpnConnection =
dynamic_cast<TDEVPNConnection*
>(connection);
3404 TDEWiMaxConnection* wiMaxConnection =
dynamic_cast<TDEWiMaxConnection*
>(connection);
3405 TDEVLANConnection* vlanConnection =
dynamic_cast<TDEVLANConnection*
>(connection);
3406 TDEOLPCMeshConnection* olpcMeshConnection =
dynamic_cast<TDEOLPCMeshConnection*
>(connection);
3407 TDEBluetoothConnection* bluetoothConnection =
dynamic_cast<TDEBluetoothConnection*
>(connection);
3408 TDEModemConnection* modemConnection =
dynamic_cast<TDEModemConnection*
>(connection);
3409 TQT_DBusObjectPath existingConnection;
3410 TQT_DBusError error;
3413 TQT_DBusTQStringDataMap connectionSettingsMap(TQT_DBusData::String);
3415 ret = d->m_networkManagerSettings->GetConnectionByUuid(connection->UUID, existingConnection, error);
3417 #ifndef USE_ASYNC_DBUS_CALLS 3419 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3420 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3421 ret = connectionSettings.GetSettings(connectionSettingsMap, error);
3422 if (ret && error.isValid()) {
3424 PRINT_ERROR((error.name() +
": " + error.message()))
3427 #else // USE_ASYNC_DBUS_CALLS 3429 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
3430 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
3431 connect(&connectionSettings, SIGNAL(GetSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)), d, SLOT(processConnectionSettingsAsyncReply(
int,
const TQT_DBusDataMap<TQString>&)));
3433 ret = connectionSettings.GetSettingsAsync(asyncCallID, error);
3434 if (ret && error.isValid()) {
3436 PRINT_ERROR((error.name() +
": " + error.message()))
3440 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
3441 TQTimer nmCallTimeoutTimer;
3442 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
3443 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
3444 tqApp->processEvents();
3445 if (!nmCallTimeoutTimer.isActive()) {
3446 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
3451 connectionSettingsMap = d->nmConnectionSettingsAsyncSettingsResponse[asyncCallID];
3452 if (d->nmConnectionSettingsAsyncSettingsErrorResponse.contains(asyncCallID)) {
3453 PRINT_ERROR((d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].name() +
": " + d->nmConnectionSettingsAsyncSettingsErrorResponse[asyncCallID].message()));
3454 d->nmConnectionSettingsAsyncSettingsErrorResponse.remove(asyncCallID);
3456 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
3457 if (d->nmConnectionSettingsAsyncSettingsResponse.contains(asyncCallID)) {
3458 d->nmConnectionSettingsAsyncSettingsResponse.remove(asyncCallID);
3460 #endif // USE_ASYNC_DBUS_CALLS 3468 TQT_DBusData dbusData;
3469 TQT_DBusData innerDbusData;
3470 TQMap<TQString, TQT_DBusData> outerMap = connectionSettingsMap.toTQMap();
3473 dbusData = outerMap[
"connection"];
3475 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3477 settingsMap[
"id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->friendlyName));
3480 if (ethernetConnection) type =
"802-3-ethernet";
3481 else if (infinibandConnection) type =
"infiniband";
3482 else if (wiFiConnection) type =
"802-11-wireless";
3483 else if (vpnConnection) type =
"vpn";
3484 else if (wiMaxConnection) type =
"wimax";
3485 else if (vlanConnection) type =
"vlan";
3486 else if (olpcMeshConnection) type =
"802-11-olpc-mesh";
3487 else if (bluetoothConnection) type =
"bluetooth";
3488 else if (modemConnection) {
3489 if (modemConnection->type == TDEModemConnectionType::CDMA) {
3492 else if (modemConnection->type == TDEModemConnectionType::GSM) {
3496 if (!type.isNull()) settingsMap[
"type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(type));
3498 settingsMap[
"uuid"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->UUID));
3500 TQT_DBusDataValueList valueList;
3502 for (TQStringList::Iterator it = connection->authorizedUsers.begin(); it != connection->authorizedUsers.end(); ++it) {
3503 TQString assembledString = TQString(
"user:%1:").arg(*it);
3504 valueList.append(TQT_DBusData::fromString(assembledString));
3507 if (valueList.count() > 0) settingsMap[
"permissions"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3508 else settingsMap.remove(
"permissions");
3510 settingsMap[
"autoconnect"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->autoConnect));
3511 settingsMap[
"read-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->readOnly));
3512 UPDATE_STRING_SETTING_IF_VALID(connection->masterConnectionUUID,
"master", settingsMap)
3514 TQString slaveType = tdeSlaveTypeToNMSlaveType(connection->slaveType);
3515 if (slaveType !=
"") settingsMap[
"slave-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(slaveType));
3516 else settingsMap.remove(
"slave-type");
3520 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3521 groupValid = (settingsMap.count() > 0);
3523 if (groupValid) outerMap.insert(
"connection", dbusData, TRUE);
else outerMap.remove(
"connection");
3526 dbusData = outerMap[
"802-1x"];
3528 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3530 if (connection->eapConfig.valid) {
3531 TQT_DBusDataValueList valueList;
3535 valueList.append(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.type)));
3537 settingsMap[
"eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3540 settingsMap.remove(
"eap");
3542 if (connection->eapConfig.valid) {
3543 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.userName,
"identity", settingsMap)
3544 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.anonymousUserName, "anonymous-identity", settingsMap)
3545 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.pacFileName, "pac-file", settingsMap)
3548 settingsMap.remove(
"identity");
3549 settingsMap.remove(
"anonymous-identity");
3550 settingsMap.remove(
"pac-file");
3552 if (connection->eapConfig.valid) {
3553 TQT_DBusDataValueList valueList;
3556 for (count=0; count<connection->eapConfig.caCertificate.count(); count++) {
3557 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.caCertificate[count]));
3560 if (valueList.count() > 0) settingsMap[
"ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3561 else settingsMap.remove(
"ca-cert");
3564 settingsMap.remove(
"ca-cert");
3566 if (connection->eapConfig.valid) {
3567 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.additionalCAFilesPath,
"ca-path", settingsMap)
3568 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.authServerCertSubjectMatch, "subject-match", settingsMap)
3571 settingsMap.remove(
"ca-path");
3572 settingsMap.remove(
"subject-match");
3574 if (connection->eapConfig.valid) {
3575 TQT_DBusDataValueList valueList;
3577 for (TQStringList::Iterator it = connection->eapConfig.alternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.alternateAuthServerCertSubjectMatch.end(); ++it) {
3578 valueList.append(TQT_DBusData::fromString(*it));
3581 if (valueList.count() > 0) settingsMap[
"altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3582 else settingsMap.remove(
"altsubject-matches");
3585 settingsMap.remove(
"altsubject-matches");
3587 if (connection->eapConfig.valid) {
3588 TQT_DBusDataValueList valueList;
3591 for (count=0; count<connection->eapConfig.clientCertificate.count(); count++) {
3592 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.clientCertificate[count]));
3595 if (valueList.count() > 0) settingsMap[
"client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3596 else settingsMap.remove(
"client-cert");
3599 settingsMap.remove(
"client-cert");
3601 if (connection->eapConfig.valid) {
3602 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPVersion,
"phase1-peapver", settingsMap)
3603 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.forcePEAPLabel, "phase1-peaplabel", settingsMap)
3604 UPDATE_STRING_SETTING_IF_VALID(tdeEAPFastFlagsToNMEAPFastFlags(connection->eapConfig.fastProvisioningFlags), "phase1-fast-provisioning", settingsMap)
3607 settingsMap.remove(
"phase1-peapver");
3608 settingsMap.remove(
"phase1-peaplabel");
3609 settingsMap.remove(
"phase1-fast-provisioning");
3611 if (connection->eapConfig.valid) {
3612 settingsMap[
"phase2-auth"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2NonEAPAuthMethod)));
3613 settingsMap[
"phase2-autheap"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeEAPTypeToNMEAPType(connection->eapConfig.phase2EAPAuthMethod)));
3616 settingsMap.remove(
"phase2-auth");
3617 settingsMap.remove(
"phase2-autheap");
3619 if (connection->eapConfig.valid) {
3620 TQT_DBusDataValueList valueList;
3623 for (count=0; count<connection->eapConfig.phase2CaCertificate.count(); count++) {
3624 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2CaCertificate[count]));
3627 if (valueList.count() > 0) settingsMap[
"phase2-ca-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3628 else settingsMap.remove(
"phase2-ca-cert");
3631 settingsMap.remove(
"phase2-ca-cert");
3633 if (connection->eapConfig.valid) {
3634 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2CaFilesPath,
"phase2-ca-path", settingsMap)
3635 UPDATE_STRING_SETTING_IF_VALID(connection->eapConfig.phase2AuthServerCertSubjectMatch, "phase2-subject-match", settingsMap)
3638 settingsMap.remove(
"phase2-ca-path");
3639 settingsMap.remove(
"phase2-subject-match");
3641 if (connection->eapConfig.valid) {
3642 TQT_DBusDataValueList valueList;
3644 for (TQStringList::Iterator it = connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.begin(); it != connection->eapConfig.phase2AlternateAuthServerCertSubjectMatch.end(); ++it) {
3645 valueList.append(TQT_DBusData::fromString(*it));
3648 if (valueList.count() > 0) settingsMap[
"phase2-altsubject-matches"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3649 else settingsMap.remove(
"phase2-altsubject-matches");
3652 settingsMap.remove(
"phase2-altsubject-matches");
3654 if (connection->eapConfig.valid) {
3655 TQT_DBusDataValueList valueList;
3658 for (count=0; count<connection->eapConfig.phase2ClientCertificate.count(); count++) {
3659 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2ClientCertificate[count]));
3662 if (valueList.count() > 0) settingsMap[
"phase2-client-cert"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3663 else settingsMap.remove(
"phase2-client-cert");
3666 settingsMap.remove(
"phase2-client-cert");
3668 if (connection->eapConfig.valid) {
3669 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.passwordFlags)));
3670 settingsMap[
"password-raw-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.binaryPasswordFlags)));
3673 settingsMap.remove(
"password-flags");
3674 settingsMap.remove(
"password-raw-flags");
3676 if (connection->eapConfig.valid) {
3677 TQT_DBusDataValueList valueList;
3680 for (count=0; count<connection->eapConfig.privateKey.count(); count++) {
3681 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.privateKey[count]));
3684 if (valueList.count() > 0) settingsMap[
"private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3685 else settingsMap.remove(
"private-key");
3688 settingsMap.remove(
"private-key");
3690 if (connection->eapConfig.valid) {
3691 settingsMap[
"private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.privateKeyPasswordFlags)));
3694 settingsMap.remove(
"private-key-password-flags");
3696 if (connection->eapConfig.valid) {
3697 TQT_DBusDataValueList valueList;
3700 for (count=0; count<connection->eapConfig.phase2PrivateKey.count(); count++) {
3701 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.phase2PrivateKey[count]));
3704 if (valueList.count() > 0) settingsMap[
"phase2-private-key"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3705 else settingsMap.remove(
"phase2-private-key");
3708 settingsMap.remove(
"phase2-private-key");
3710 if (connection->eapConfig.valid) {
3711 settingsMap[
"phase2-private-key-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->eapConfig.phase2PrivateKeyPasswordFlags)));
3714 settingsMap.remove(
"phase2-private-key-password-flags");
3716 if (connection->eapConfig.valid) {
3717 settingsMap[
"system-ca-certs"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->eapConfig.forceSystemCaCertificates));
3720 settingsMap.remove(
"system-ca-certs");
3722 if (connection->eapConfig.secretsValid) {
3723 settingsMap[
"password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.password));
3726 settingsMap.remove(
"password");
3728 if (connection->eapConfig.valid) {
3729 TQT_DBusDataValueList valueList;
3732 for (count=0; count<connection->eapConfig.binaryPassword.count(); count++) {
3733 valueList.append(TQT_DBusData::fromByte(connection->eapConfig.binaryPassword[count]));
3736 if (valueList.count() > 0) settingsMap[
"password-raw"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3737 else settingsMap.remove(
"password-raw");
3740 settingsMap.remove(
"password-raw");
3742 if (connection->eapConfig.secretsValid) {
3743 settingsMap[
"private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.privateKeyPassword));
3744 settingsMap[
"phase2-private-key-password"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->eapConfig.phase2PrivateKeyPassword));
3747 settingsMap.remove(
"private-key-password");
3748 settingsMap.remove(
"phase2-private-key-password");
3751 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3752 groupValid = (settingsMap.count() > 0);
3754 if (groupValid) outerMap.insert(
"802-1x", dbusData, TRUE);
else outerMap.remove(
"802-1x");
3757 dbusData = outerMap[
"802-3-ethernet"];
3758 if (ethernetConnection) {
3759 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3761 settingsMap[
"duplex"] = convertDBUSDataToVariantData(TQT_DBusData::fromString((connection->fullDuplex)?
"full":
"half"));
3762 if (connection->lockedHWAddress.isValid()) {
3763 TDENetworkByteList address = connection->lockedHWAddress.address();
3764 TQT_DBusDataValueList valueList;
3765 TDENetworkByteList::iterator it;
3766 for (it = address.begin(); it != address.end(); ++it) {
3767 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3768 valueList.append(innerDataValue);
3770 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3771 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3774 settingsMap.remove(
"mac-address");
3776 if (connection->manualHWAddress.isValid()) {
3777 TDENetworkByteList address = connection->manualHWAddress.address();
3778 TQT_DBusDataValueList valueList;
3779 TDENetworkByteList::iterator it;
3780 for (it = address.begin(); it != address.end(); ++it) {
3781 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3782 valueList.append(innerDataValue);
3784 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3785 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3788 settingsMap.remove(
"cloned-mac-address");
3790 if (connection->mtu > 0) {
3791 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3794 settingsMap.remove(
"mtu");
3797 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3798 groupValid = (settingsMap.count() > 0);
3800 if (groupValid) outerMap.insert(
"802-3-ethernet", dbusData, TRUE);
else outerMap.remove(
"802-3-ethernet");
3803 dbusData = outerMap[
"infiniband"];
3804 if (infinibandConnection) {
3805 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3807 if (connection->lockedHWAddress.isValid()) {
3808 TDENetworkByteList address = connection->lockedHWAddress.address();
3809 TQT_DBusDataValueList valueList;
3810 TDENetworkByteList::iterator it;
3811 for (it = address.begin(); it != address.end(); ++it) {
3812 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3813 valueList.append(innerDataValue);
3815 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3816 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3819 settingsMap.remove(
"mac-address");
3821 if (connection->mtu > 0) {
3822 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3825 settingsMap.remove(
"mtu");
3827 UPDATE_STRING_SETTING_IF_VALID(tdeIBTransportToNMIBTransport(infinibandConnection->transportMode),
"transport-mode", settingsMap)
3829 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3830 groupValid = (settingsMap.count() > 0);
3832 if (groupValid) outerMap.insert(
"infiniband", dbusData, TRUE);
else outerMap.remove(
"infiniband");
3835 dbusData = outerMap[
"802-11-wireless"];
3836 if (wiFiConnection) {
3837 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3841 TQT_DBusDataValueList valueList;
3842 for (i=0; i<wiFiConnection->SSID.count(); i++) {
3843 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(wiFiConnection->SSID[i]);
3844 valueList.append(innerDataValue);
3846 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3848 if (connection->lockedHWAddress.isValid()) {
3849 TDENetworkByteList address = connection->lockedHWAddress.address();
3850 TQT_DBusDataValueList valueList;
3851 TDENetworkByteList::iterator it;
3852 for (it = address.begin(); it != address.end(); ++it) {
3853 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3854 valueList.append(innerDataValue);
3856 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3857 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3860 settingsMap.remove(
"mac-address");
3862 if (connection->manualHWAddress.isValid()) {
3863 TDENetworkByteList address = connection->manualHWAddress.address();
3864 TQT_DBusDataValueList valueList;
3865 TDENetworkByteList::iterator it;
3866 for (it = address.begin(); it != address.end(); ++it) {
3867 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3868 valueList.append(innerDataValue);
3870 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3871 settingsMap[
"cloned-mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
3874 settingsMap.remove(
"cloned-mac-address");
3876 if (connection->mtu > 0) {
3877 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->mtu));
3880 settingsMap.remove(
"mtu");
3882 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiModeToNMWiFiMode(wiFiConnection->operatingMode),
"mode", settingsMap)
3883 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiFrequencyBandToNMWiFiFrequencyBand(wiFiConnection->bandRestriction), "band", settingsMap)
3884 if (wiFiConnection->channelRestriction > 0) {
3885 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->channelRestriction));
3888 settingsMap.remove(
"channel");
3890 if (wiFiConnection->bitRateRestriction > 0) {
3891 settingsMap[
"rate"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->bitRateRestriction/1000));
3894 settingsMap.remove(
"rate");
3896 if (wiFiConnection->powerRestriction > 0) {
3897 settingsMap[
"tx-power"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->powerRestriction));
3900 settingsMap.remove(
"tx-power");
3902 if (wiFiConnection->accessPointRestriction.isValid()) {
3903 TDENetworkByteList address = wiFiConnection->accessPointRestriction.address();
3904 TQT_DBusDataValueList valueList;
3905 TDENetworkByteList::iterator it;
3906 for (it = address.begin(); it != address.end(); ++it) {
3907 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
3908 valueList.append(innerDataValue);
3910 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
3911 settingsMap[
"bssid"] = convertDBUSDataToVariantData(nmHWAddress);
3914 settingsMap.remove(
"bssid");
3917 TQT_DBusDataValueList valueList;
3918 TDEMACAddressList::iterator it;
3919 for (it = wiFiConnection->blacklistedBSSIDs.begin(); it != wiFiConnection->blacklistedBSSIDs.end(); ++it) {
3920 valueList.append(TQT_DBusData::fromString((*it).toString()));
3922 if (valueList.count() > 0) settingsMap[
"mac-address-blacklist"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3925 TQT_DBusDataValueList valueList;
3926 TDEMACAddressList::iterator it;
3927 for (it = wiFiConnection->heardBSSIDs.begin(); it != wiFiConnection->heardBSSIDs.end(); ++it) {
3928 valueList.append(TQT_DBusData::fromString((*it).toString()));
3930 if (valueList.count() > 0) settingsMap[
"seen-bssids"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3933 if (wiFiConnection->securityRequired) {
3934 settingsMap[
"security"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(
"802-11-wireless-security"));
3937 settingsMap.remove(
"security");
3941 if (wiFiConnection->isHiddenNetwork) {
3942 settingsMap[
"hidden"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(
true));
3945 settingsMap.remove(
"hidden");
3949 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
3950 groupValid = (settingsMap.count() > 0);
3952 if (groupValid) outerMap.insert(
"802-11-wireless", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless");
3955 dbusData = outerMap[
"802-11-wireless-security"];
3956 if (wiFiConnection) {
3957 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
3959 if (wiFiConnection->securityRequired) {
3960 if (wiFiConnection->securityRequired) {
3961 settingsMap[
"key-mgmt"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(tdeWiFiKeyTypeToNMWiFiKeyType(wiFiConnection->securitySettings.keyType)));
3963 if (wiFiConnection->securitySettings.wepKeyIndex > 0) {
3964 settingsMap[
"wep-tx-keyidx"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(wiFiConnection->securitySettings.wepKeyIndex));
3967 settingsMap.remove(
"wep-tx-keyidx");
3969 UPDATE_STRING_SETTING_IF_VALID(tdeWiFiAuthTypeToNMWiFiAuthType(wiFiConnection->securitySettings.authType),
"auth-alg", settingsMap)
3971 TQT_DBusDataValueList valueList;
3973 TQStringList strings = tdeWiFiWPAVersionToNMWiFiWPAVersion(wiFiConnection->securitySettings.wpaVersion);
3974 for (TQStringList::Iterator it = strings.begin(); it != strings.end(); ++it) {
3975 valueList.append(TQT_DBusData::fromString(*it));
3978 if (valueList.count() > 0) settingsMap[
"proto"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3979 else settingsMap.remove(
"proto");
3982 TQT_DBusDataValueList valueList;
3984 if (wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
3985 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
3986 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
3987 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
3988 if (!wiFiConnection->securitySettings.allowedPairWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedPairWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
3990 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedPairWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedPairWiseCiphers.end(); ++it) {
3991 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
3994 if (valueList.count() > 0) settingsMap[
"pairwise"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
3995 else settingsMap.remove(
"pairwise");
3998 TQT_DBusDataValueList valueList;
4000 if (wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::Any)) {
4001 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP40)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP40);
4002 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherWEP104)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherWEP104);
4003 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherTKIP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherTKIP);
4004 if (!wiFiConnection->securitySettings.allowedGroupWiseCiphers.contains(TDENetworkWiFiConnectionCipher::CipherCCMP)) wiFiConnection->securitySettings.allowedGroupWiseCiphers.append(TDENetworkWiFiConnectionCipher::CipherCCMP);
4006 for (TDENetworkWiFiConnectionCipherList::Iterator it = wiFiConnection->securitySettings.allowedGroupWiseCiphers.begin(); it != wiFiConnection->securitySettings.allowedGroupWiseCiphers.end(); ++it) {
4007 valueList.append(TQT_DBusData::fromString(tdeWiFiCipherToNMWiFiCipher(*it)));
4010 if (valueList.count() > 0) settingsMap[
"group"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4011 else settingsMap.remove(
"group");
4013 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapUsername,
"leap-username", settingsMap)
4014 settingsMap["wep-key-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.wepKeyFlags)));
4015 settingsMap["wep-key-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeWepKeyTypeToNMWepKeyType(wiFiConnection->securitySettings.wepKeyType)));
4016 settingsMap["psk-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.pskFlags)));
4017 settingsMap["leap-password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(wiFiConnection->securitySettings.leapPasswordFlags)));
4018 if (wiFiConnection->securitySettings.secretsValid) {
4019 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey0,
"wep-key0", settingsMap)
4020 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey1, "wep-key1", settingsMap)
4021 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey2, "wep-key2", settingsMap)
4022 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.wepKey3, "wep-key3", settingsMap)
4023 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.psk, "psk", settingsMap)
4024 UPDATE_STRING_SETTING_IF_VALID(wiFiConnection->securitySettings.leapPassword, "leap-password", settingsMap)
4027 settingsMap.remove(
"wep-key0");
4028 settingsMap.remove(
"wep-key1");
4029 settingsMap.remove(
"wep-key2");
4030 settingsMap.remove(
"wep-key3");
4031 settingsMap.remove(
"psk");
4032 settingsMap.remove(
"leap-password");
4036 settingsMap.remove(
"key-mgmt");
4037 settingsMap.remove(
"wep-tx-keyidx");
4038 settingsMap.remove(
"auth-alg");
4039 settingsMap.remove(
"proto");
4040 settingsMap.remove(
"pairwise");
4041 settingsMap.remove(
"group");
4042 settingsMap.remove(
"leap-username");
4043 settingsMap.remove(
"wep-key-flags");
4044 settingsMap.remove(
"wep-key-type");
4045 settingsMap.remove(
"psk-flags");
4046 settingsMap.remove(
"leap-password-flags");
4047 settingsMap.remove(
"wep-key0");
4048 settingsMap.remove(
"wep-key1");
4049 settingsMap.remove(
"wep-key2");
4050 settingsMap.remove(
"wep-key3");
4051 settingsMap.remove(
"psk");
4052 settingsMap.remove(
"leap-password");
4055 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4056 groupValid = (settingsMap.count() > 0);
4058 if (groupValid) outerMap.insert(
"802-11-wireless-security", dbusData, TRUE);
else outerMap.remove(
"802-11-wireless-security");
4061 dbusData = outerMap[
"vpn"];
4062 if (vpnConnection) {
4063 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4066 TQString pluginService = vpnConnection->vpnPluginID;
4067 if (pluginService !=
"") {
4068 pluginService =
"org.freedesktop.NetworkManager." + pluginService;
4070 UPDATE_STRING_SETTING_IF_VALID(pluginService,
"service-type", settingsMap)
4072 UPDATE_STRING_SETTING_IF_VALID(vpnConnection->lockedUserName,
"user-name", settingsMap)
4074 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
4075 TDENetworkSettingsMap::const_iterator it;
4076 for (it = vpnConnection->pluginData.begin(); it != vpnConnection->pluginData.end(); ++it) {
4077 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
4079 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"data"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
4080 else settingsMap.remove(
"data");
4082 if (vpnConnection->secretsValid) {
4083 TQMap<TQString, TQT_DBusData> nestedConnectionSettingsMap;
4084 TDENetworkSettingsMap::const_iterator it;
4085 for (it = vpnConnection->pluginSecrets.begin(); it != vpnConnection->pluginSecrets.end(); ++it) {
4086 nestedConnectionSettingsMap[it.key()] = TQT_DBusData::fromString(it.data());
4088 if (nestedConnectionSettingsMap.count() > 0) settingsMap[
"secrets"] = convertDBUSDataToVariantData(TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(nestedConnectionSettingsMap)));
4089 else settingsMap.remove(
"secrets");
4092 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4093 groupValid = (settingsMap.count() > 0);
4095 if (groupValid) outerMap.insert(
"vpn", dbusData, TRUE);
else outerMap.remove(
"vpn");
4098 dbusData = outerMap[
"wimax"];
4099 if (wiMaxConnection) {
4100 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4102 if (connection->lockedHWAddress.isValid()) {
4103 TDENetworkByteList address = connection->lockedHWAddress.address();
4104 TQT_DBusDataValueList valueList;
4105 TDENetworkByteList::iterator it;
4106 for (it = address.begin(); it != address.end(); ++it) {
4107 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
4108 valueList.append(innerDataValue);
4110 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
4111 settingsMap[
"mac-address"] = convertDBUSDataToVariantData(nmHWAddress);
4114 settingsMap.remove(
"mac-address");
4116 UPDATE_STRING_SETTING_IF_VALID(wiMaxConnection->networkServiceProvider,
"network-name", settingsMap)
4118 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4119 groupValid = (settingsMap.count() > 0);
4121 if (groupValid) outerMap.insert(
"wimax", dbusData, TRUE);
else outerMap.remove(
"wimax");
4124 dbusData = outerMap[
"vlan"];
4125 if (vlanConnection) {
4126 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4128 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->kernelName,
"interface-name", settingsMap)
4129 UPDATE_STRING_SETTING_IF_VALID(vlanConnection->parentConnectionUUID, "parent", settingsMap)
4130 settingsMap["
id"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(vlanConnection->vlanID));
4131 settingsMap["flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdeVLANFlagsToNMVLANFlags(vlanConnection->vlanFlags)));
4133 TQT_DBusDataValueList valueList;
4134 TDENetworkPriorityMap::const_iterator it;
4135 for (it = vlanConnection->ingressPriorityMap.begin(); it != vlanConnection->ingressPriorityMap.end(); ++it) {
4136 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4138 if (valueList.count() > 0) settingsMap[
"ingress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4141 TQT_DBusDataValueList valueList;
4142 TDENetworkPriorityMap::const_iterator it;
4143 for (it = vlanConnection->egressPriorityMap.begin(); it != vlanConnection->egressPriorityMap.end(); ++it) {
4144 valueList.append(TQT_DBusData::fromString(TQString(
"%1:%2").arg(it.key()).arg(it.data())));
4146 if (valueList.count() > 0) settingsMap[
"egress-priority-map"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4149 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4150 groupValid = (settingsMap.count() > 0);
4152 if (groupValid) outerMap.insert(
"vlan", dbusData, TRUE);
else outerMap.remove(
"vlan");
4155 dbusData = outerMap[
"serial"];
4156 if (connection->serialConfig.valid) {
4157 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4159 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.baudRate));
4160 settingsMap[
"bits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.byteWidth));
4161 settingsMap[
"parity"] = convertDBUSDataToVariantData(TQT_DBusData::fromByte(tdeParityToNMParity(connection->serialConfig.parity)));
4162 settingsMap[
"stopbits"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->serialConfig.stopBits));
4163 settingsMap[
"send-delay"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt64(connection->serialConfig.txDelay));
4165 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4166 groupValid = (settingsMap.count() > 0);
4168 if (groupValid) outerMap.insert(
"serial", dbusData, TRUE);
else outerMap.remove(
"serial");
4171 dbusData = outerMap[
"ppp"];
4172 if (connection->pppConfig.valid) {
4173 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4175 settingsMap[
"noauth"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.requireServerAuthentication)));
4176 settingsMap[
"refuse-eap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableEAP));
4177 settingsMap[
"refuse-pap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisablePAP));
4178 settingsMap[
"refuse-chap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableCHAP));
4179 settingsMap[
"refuse-mschap"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAP));
4180 settingsMap[
"refuse-mschapv2"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::DisableMSCHAPv2));
4181 settingsMap[
"nobsdcomp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowBSDCompression)));
4182 settingsMap[
"nodeflate"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowDeflateCompression)));
4183 settingsMap[
"no-vj-comp"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->pppConfig.flags & TDENetworkPPPFlags::AllowVJCompression)));
4184 settingsMap[
"require-mppe"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE));
4185 settingsMap[
"require-mppe-128"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::RequireMPPE128));
4186 settingsMap[
"mppe-stateful"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::StatefulMPPE));
4187 settingsMap[
"crtscts"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(connection->pppConfig.flags & TDENetworkPPPFlags::UseHardwareFlowControl));
4188 settingsMap[
"baud"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.baudRate));
4189 if (connection->pppConfig.mru > 0) {
4190 settingsMap[
"mru"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mru));
4193 settingsMap.remove(
"mru");
4195 if (connection->pppConfig.mtu > 0) {
4196 settingsMap[
"mtu"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.mtu));
4199 settingsMap.remove(
"mtu");
4201 if (connection->pppConfig.mtu > 0) {
4202 settingsMap[
"lcp-echo-interval"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoPingInterval));
4205 settingsMap.remove(
"lcp-echo-interval");
4207 if (connection->pppConfig.mtu > 0) {
4208 settingsMap[
"lcp-echo-failure"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(connection->pppConfig.lcpEchoFailureThreshold));
4211 settingsMap.remove(
"lcp-echo-failure");
4214 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4215 groupValid = (settingsMap.count() > 0);
4217 if (groupValid) outerMap.insert(
"ppp", dbusData, TRUE);
else outerMap.remove(
"ppp");
4220 dbusData = outerMap[
"pppoe"];
4221 if (connection->pppoeConfig.valid) {
4222 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4224 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.networkServiceProvider,
"service", settingsMap)
4225 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.username, "username", settingsMap)
4226 if (connection->pppoeConfig.secretsValid) {
4227 UPDATE_STRING_SETTING_IF_VALID(connection->pppoeConfig.password,
"password", settingsMap)
4229 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(connection->pppoeConfig.passwordFlags)));
4231 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4232 groupValid = (settingsMap.count() > 0);
4234 if (groupValid) outerMap.insert(
"pppoe", dbusData, TRUE);
else outerMap.remove(
"pppoe");
4237 dbusData = outerMap[
"802-11-olpc-mesh"];
4238 if (olpcMeshConnection) {
4239 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4243 TQT_DBusDataValueList valueList;
4244 for (i=0; i<olpcMeshConnection->SSID.count(); i++) {
4245 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->SSID[i]);
4246 valueList.append(innerDataValue);
4248 settingsMap[
"ssid"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4250 settingsMap[
"channel"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(olpcMeshConnection->channel));
4253 TQT_DBusDataValueList valueList;
4254 for (i=0; i<olpcMeshConnection->anycastDHCPHWAddress.count(); i++) {
4255 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(olpcMeshConnection->anycastDHCPHWAddress[i]);
4256 valueList.append(innerDataValue);
4258 settingsMap[
"dhcp-anycast-address"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4261 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4262 groupValid = (settingsMap.count() > 0);
4264 if (groupValid) outerMap.insert(
"802-11-olpc-mesh", dbusData, TRUE);
else outerMap.remove(
"802-11-olpc-mesh");
4267 dbusData = outerMap[
"bluetooth"];
4268 if (bluetoothConnection) {
4269 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4271 if (connection->lockedHWAddress.isValid()) {
4272 TDENetworkByteList address = connection->lockedHWAddress.address();
4273 TQT_DBusDataValueList valueList;
4274 TDENetworkByteList::iterator it;
4275 for (it = address.begin(); it != address.end(); ++it) {
4276 TQT_DBusData innerDataValue = TQT_DBusData::fromByte(*it);
4277 valueList.append(innerDataValue);
4279 TQT_DBusData nmHWAddress = TQT_DBusData::fromTQValueList(valueList);
4280 settingsMap[
"bdaddr"] = convertDBUSDataToVariantData(nmHWAddress);
4283 settingsMap.remove(
"bdaddr");
4285 UPDATE_STRING_SETTING_IF_VALID(tdeBluetoothModeToNMBluetoothMode(bluetoothConnection->type),
"type", settingsMap)
4287 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4288 groupValid = (settingsMap.count() > 0);
4290 if (groupValid) outerMap.insert(
"bluetooth", dbusData, TRUE);
else outerMap.remove(
"bluetooth");
4293 dbusData = outerMap[
"cdma"];
4294 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::CDMA)) {
4295 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4297 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.providerDataNumber,
"number", settingsMap)
4298 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.username, "username", settingsMap)
4299 if (connection->pppoeConfig.secretsValid) {
4300 UPDATE_STRING_SETTING_IF_VALID(modemConnection->cdmaConfig.password,
"password", settingsMap)
4302 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->cdmaConfig.passwordFlags)));
4304 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4305 groupValid = (settingsMap.count() > 0);
4307 if (groupValid) outerMap.insert(
"cdma", dbusData, TRUE);
else outerMap.remove(
"cdma");
4310 dbusData = outerMap[
"gsm"];
4311 if ((modemConnection) && (modemConnection->type == TDEModemConnectionType::GSM)) {
4312 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4314 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.providerDataNumber,
"number", settingsMap)
4315 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.username, "username", settingsMap)
4316 if (connection->pppoeConfig.secretsValid) {
4317 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.password,
"password", settingsMap)
4319 settingsMap[
"password-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.passwordFlags)));
4320 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.accessPointName,
"apn", settingsMap)
4321 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.networkID, "network-
id", settingsMap)
4322 settingsMap["network-type"] = convertDBUSDataToVariantData(TQT_DBusData::fromInt32(tdeGSMModeToNMGSMMode(modemConnection->gsmConfig.networkType)));
4323 if (connection->pppoeConfig.secretsValid) {
4324 UPDATE_STRING_SETTING_IF_VALID(modemConnection->gsmConfig.pin,
"pin", settingsMap)
4326 settingsMap[
"pin-flags"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(tdePasswordFlagsToNMPasswordFlags(modemConnection->gsmConfig.pinFlags)));
4327 settingsMap[
"allowed-bands"] = convertDBUSDataToVariantData(TQT_DBusData::fromUInt32(modemConnection->gsmConfig.allowedFrequencyBands));
4328 settingsMap[
"home-only"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(modemConnection->gsmConfig.allowRoaming)));
4330 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4331 groupValid = (settingsMap.count() > 0);
4333 if (groupValid) outerMap.insert(
"gsm", dbusData, TRUE);
else outerMap.remove(
"gsm");
4336 dbusData = outerMap[
"ipv4"];
4338 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4341 TQT_DBusDataValueList valueList;
4342 TDENetworkSingleIPConfigurationList::iterator it;
4343 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4344 if ((*it).isIPv4()) {
4345 TQT_DBusDataValueList innerValueList;
4348 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4350 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4352 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4353 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4356 if (valueList.count() <= 0) {
4358 TQT_DBusData valueList;
4359 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4360 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4363 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4367 if (!connection->ipConfig.dhcpClientIdentifier.isNull()) {
4368 settingsMap[
"dhcp-client-id"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(connection->ipConfig.dhcpClientIdentifier));
4372 TQT_DBusDataValueList valueList;
4373 TDENetworkAddressList::iterator it;
4374 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4375 if ((*it).isIPv4Address()) {
4376 valueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).toIPv4Address())));
4379 if (valueList.count() <= 0) {
4381 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32)));
4384 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4388 TQT_DBusDataValueList valueList;
4389 TDENetworkSearchDomainList::iterator it;
4390 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4391 if ((*it).isIPv4()) {
4392 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4395 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4398 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4401 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV4));
4405 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP) {
4408 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4LocalOnly) {
4409 method =
"link-local";
4411 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4StartConnectionSharingServer) {
4414 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4Disabled) {
4415 method =
"disabled";
4420 if (!method.isNull())
4421 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4424 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPRoutes)));
4427 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4MayUseAsDefaultRoute)));
4430 TQT_DBusDataValueList valueList;
4431 TDENetworkSingleRouteConfigurationList::iterator it;
4432 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4433 if ((*it).isIPv4()) {
4434 TQT_DBusDataValueList innerValueList;
4437 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).ipAddress.toIPv4Address())));
4439 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4441 innerValueList.append(TQT_DBusData::fromUInt32(reverseIPV4ByteOrder((*it).gateway.toIPv4Address())));
4443 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4444 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4447 if (valueList.count() <= 0) {
4449 TQT_DBusData valueList;
4450 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::UInt32));
4451 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4454 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4458 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4459 groupValid = (settingsMap.count() > 0);
4461 if (groupValid) outerMap.insert(
"ipv4", dbusData, TRUE);
else outerMap.remove(
"ipv4");
4464 dbusData = outerMap[
"ipv6"];
4466 TQMap<TQString, TQT_DBusData> settingsMap = dbusData.toStringKeyMap().toTQMap();
4469 TQT_DBusDataValueList valueList;
4470 TDENetworkSingleIPConfigurationList::iterator it;
4471 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4472 if ((*it).isIPv6()) {
4474 Q_IPV6ADDR v6address;
4475 TQT_DBusDataValueList innerValueList;
4476 TQT_DBusDataValueList innerMostValueList;
4479 innerMostValueList.clear();
4480 v6address = (*it).ipAddress.toIPv6Address();
4481 for (i=0; i<16; i++) {
4482 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4484 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4486 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4488 innerMostValueList.clear();
4489 v6address = (*it).gateway.toIPv6Address();
4490 for (i=0; i<16; i++) {
4491 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4493 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4494 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4497 if (valueList.count() <= 0) {
4499 TQT_DBusDataValueList innerValueList;
4500 TQT_DBusDataValueList innerMostValueList;
4503 innerMostValueList.clear();
4504 innerMostValueList.append(TQT_DBusData::fromByte(0));
4505 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4507 innerValueList.append(TQT_DBusData::fromUInt32(0));
4509 innerMostValueList.clear();
4510 innerMostValueList.append(TQT_DBusData::fromByte(0));
4511 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4512 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4515 settingsMap[
"addresses"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4519 TQT_DBusDataValueList valueList;
4520 TDENetworkAddressList::iterator it;
4521 for (it = connection->ipConfig.resolvers.begin(); it != connection->ipConfig.resolvers.end(); ++it) {
4522 if ((*it).isIPv6Address()) {
4524 Q_IPV6ADDR v6address;
4525 TQT_DBusDataValueList innerValueList;
4526 v6address = (*it).toIPv6Address();
4527 for (i=0; i<16; i++) {
4528 innerValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4530 valueList.append(TQT_DBusData::fromTQValueList(innerValueList));
4533 if (valueList.count() <= 0) {
4535 TQT_DBusData valueList;
4536 valueList = TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::Byte));
4537 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(valueList)));
4540 settingsMap[
"dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4544 TQT_DBusDataValueList valueList;
4545 TDENetworkSearchDomainList::iterator it;
4546 for (it = connection->ipConfig.searchDomains.begin(); it != connection->ipConfig.searchDomains.end(); ++it) {
4547 if ((*it).isIPv6()) {
4548 valueList.append(TQT_DBusData::fromString((*it).searchDomain()));
4551 if (valueList.count() > 0) settingsMap[
"dns-search"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4554 settingsMap[
"ignore-auto-dns"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPDNS)));
4557 settingsMap[
"may-fail"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!connection->requireIPV6));
4561 if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP) {
4564 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6LocalOnly) {
4565 method =
"link-local";
4567 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6StartConnectionSharingServer) {
4570 else if (connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6Disabled) {
4576 if (!method.isNull())
4577 settingsMap[
"method"] = convertDBUSDataToVariantData(TQT_DBusData::fromString(method));
4580 settingsMap[
"ignore-auto-routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPRoutes)));
4583 settingsMap[
"never-default"] = convertDBUSDataToVariantData(TQT_DBusData::fromBool(!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6MayUseAsDefaultRoute)));
4586 TQT_DBusDataValueList valueList;
4587 TDENetworkSingleRouteConfigurationList::iterator it;
4588 for (it = connection->ipConfig.routeConfigurations.begin(); it != connection->ipConfig.routeConfigurations.end(); ++it) {
4589 if ((*it).isIPv6()) {
4591 Q_IPV6ADDR v6address;
4592 TQT_DBusDataValueList innerValueList;
4593 TQT_DBusDataValueList innerMostValueList;
4596 innerMostValueList.clear();
4597 v6address = (*it).ipAddress.toIPv6Address();
4598 for (i=0; i<16; i++) {
4599 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4601 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4603 innerValueList.append(TQT_DBusData::fromUInt32((*it).networkMask.toCIDRMask()));
4605 innerMostValueList.clear();
4606 v6address = (*it).gateway.toIPv6Address();
4607 for (i=0; i<16; i++) {
4608 innerMostValueList.append(TQT_DBusData::fromByte(v6address.c[i]));
4610 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4612 innerValueList.append(TQT_DBusData::fromUInt32((*it).metric));
4613 valueList.append(TQT_DBusData::fromStruct(innerValueList));
4616 if (valueList.count() <= 0) {
4618 TQT_DBusDataValueList innerValueList;
4619 TQT_DBusDataValueList innerMostValueList;
4622 innerMostValueList.clear();
4623 innerMostValueList.append(TQT_DBusData::fromByte(0));
4624 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4626 innerValueList.append(TQT_DBusData::fromUInt32(0));
4628 innerMostValueList.clear();
4629 innerMostValueList.append(TQT_DBusData::fromByte(0));
4630 innerValueList.append(TQT_DBusData::fromTQValueList(innerMostValueList));
4632 innerValueList.append(TQT_DBusData::fromUInt32(0));
4633 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromList(TQT_DBusDataList(TQT_DBusData::fromStruct(innerValueList))));
4636 settingsMap[
"routes"] = convertDBUSDataToVariantData(TQT_DBusData::fromTQValueList(valueList));
4640 dbusData = TQT_DBusData::fromStringKeyMap(TQT_DBusDataMap<TQString>(settingsMap));
4641 groupValid = (settingsMap.count() > 0);
4643 if (groupValid) outerMap.insert(
"ipv6", dbusData, TRUE);
else outerMap.remove(
"ipv6");
4645 connectionSettingsMap = TQT_DBusDataMap<TQString>(outerMap);
4652 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4653 printf(
"[network-manager comm debug] uploaded DBUS object structure map follows:\n"); fflush(stdout);
4654 printDBUSObjectStructure(TQT_DBusData::fromStringKeyMap(connectionSettingsMap));
4655 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4658 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4659 printf(
"[network-manager comm debug] Updating existing connection\n"); fflush(stdout);
4660 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4662 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4663 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4664 connect(&connectionSettings, SIGNAL(UpdateAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4666 ret = connectionSettings.UpdateAsync(asyncCallID, connectionSettingsMap, error);
4667 if (ret && error.isValid()) {
4669 PRINT_ERROR((error.name() +
": " + error.message()))
4673 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4674 TQTimer nmCallTimeoutTimer;
4675 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4676 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4677 tqApp->processEvents();
4678 if (!nmCallTimeoutTimer.isActive()) {
4679 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4684 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4689 PRINT_ERROR((error.name() +
": " + error.message()))
4694 #ifdef DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4695 printf(
"[network-manager comm debug] Creating new connection\n"); fflush(stdout);
4696 #endif // DEBUG_NETWORK_MANAGER_COMMUNICATIONS 4698 connect(d->m_networkManagerSettings, SIGNAL(AddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4699 connect(d->m_networkManagerSettings, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4701 ret = d->m_networkManagerSettings->AddConnectionAsync(asyncCallID, connectionSettingsMap, error);
4702 if (ret && error.isValid()) {
4704 PRINT_ERROR((error.name() +
": " + error.message()))
4708 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4709 TQTimer nmCallTimeoutTimer;
4710 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4711 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4712 if (!nmCallTimeoutTimer.isActive()) {
4713 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4717 tqApp->processEvents();
4719 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4720 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4721 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4723 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
4724 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
4725 command_failed = true;
4727 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4728 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
4729 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
4731 return ((!timed_out) && (!command_failed));
4735 PRINT_ERROR((error.name() +
": " + error.message()))
4741 bool TDENetworkConnectionManager_BackendNM::deleteConnection(TQString uuid) {
4742 TQT_DBusObjectPath existingConnection;
4743 TQT_DBusError error;
4744 bool timed_out =
false;
4746 if (d->m_networkManagerSettings) {
4747 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4750 DBus::ConnectionSettingsInterface connectionSettings(NM_DBUS_SERVICE, existingConnection);
4751 connectionSettings.setConnection(TQT_DBusConnection::systemBus());
4752 connect(&connectionSettings, SIGNAL(DeleteAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
4754 ret = connectionSettings.DeleteAsync(asyncCallID, error);
4755 if (ret && error.isValid()) {
4757 PRINT_ERROR((error.name() +
": " + error.message()))
4761 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4762 TQTimer nmCallTimeoutTimer;
4763 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4764 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4765 tqApp->processEvents();
4766 if (!nmCallTimeoutTimer.isActive()) {
4767 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4772 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4776 PRINT_ERROR(TQString(
"Unable to remove connection with uuid '%1'").arg(uuid))
4781 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
4786 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
4791 bool TDENetworkConnectionManager_BackendNM::verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type, TDENetworkErrorStringMap* reason) {
4799 if (connection->friendlyName ==
"") {
4800 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidConnectionSetting] = i18n(
"Connection name is invalid");
4801 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidConnectionSetting;
4805 if (connection->ipConfig.valid) {
4807 TDENetworkSingleIPConfigurationList::iterator it;
4808 for (it = connection->ipConfig.ipConfigurations.begin(); it != connection->ipConfig.ipConfigurations.end(); ++it) {
4809 if ((*it).isIPv4()) {
4810 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV4DHCPIP)) {
4811 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4812 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv4Setting] = i18n(
"IPv4 address is invalid");
4813 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv4Setting;
4818 else if ((*it).isIPv6()) {
4819 if (!(connection->ipConfig.connectionFlags & TDENetworkIPConfigurationFlags::IPV6DHCPIP)) {
4820 if (!TDENetworkConnectionManager::validateIPAddress((*it).ipAddress)) {
4821 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidIPv6Setting] = i18n(
"IPv6 address is invalid");
4822 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidIPv6Setting;
4830 TDEWiFiConnection* wiFiConnection =
dynamic_cast<TDEWiFiConnection*
>(connection);
4831 if (wiFiConnection) {
4832 if (wiFiConnection->SSID.count() < 1) {
4833 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessSetting] = i18n(
"No SSID provided");
4834 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessSetting;
4837 if (wiFiConnection->securityRequired) {
4838 if (wiFiConnection->securitySettings.secretsValid) {
4839 if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WEP) || ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && ((wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Open) || (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::Shared)))) {
4840 if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Hexadecimal) {
4841 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4842 if ((wiFiConnection->securitySettings.wepKey0.length() != 10) && (wiFiConnection->securitySettings.wepKey0.length() != 26)) {
4843 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 0 has invalid length");
4844 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4848 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4849 if ((wiFiConnection->securitySettings.wepKey1.length() != 10) && (wiFiConnection->securitySettings.wepKey1.length() != 26)) {
4850 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 1 has invalid length");
4851 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4855 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4856 if ((wiFiConnection->securitySettings.wepKey2.length() != 10) && (wiFiConnection->securitySettings.wepKey2.length() != 26)) {
4857 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 2 has invalid length");
4858 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4862 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4863 if ((wiFiConnection->securitySettings.wepKey3.length() != 10) && (wiFiConnection->securitySettings.wepKey3.length() != 26)) {
4864 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 3 has invalid length");
4865 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4869 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4870 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"No WEP key(s) provided");
4871 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4875 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4876 if (wiFiConnection->securitySettings.wepKey0 !=
"") {
4877 if ((wiFiConnection->securitySettings.wepKey0.length() != 5) && (wiFiConnection->securitySettings.wepKey0.length() != 13)) {
4878 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 0 has invalid length");
4879 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4883 if (wiFiConnection->securitySettings.wepKey1 !=
"") {
4884 if ((wiFiConnection->securitySettings.wepKey1.length() != 5) && (wiFiConnection->securitySettings.wepKey1.length() != 13)) {
4885 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 1 has invalid length");
4886 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4890 if (wiFiConnection->securitySettings.wepKey2 !=
"") {
4891 if ((wiFiConnection->securitySettings.wepKey2.length() != 5) && (wiFiConnection->securitySettings.wepKey2.length() != 13)) {
4892 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 2 has invalid length");
4893 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4897 if (wiFiConnection->securitySettings.wepKey3 !=
"") {
4898 if ((wiFiConnection->securitySettings.wepKey3.length() != 5) && (wiFiConnection->securitySettings.wepKey3.length() != 13)) {
4899 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"WEP key 3 has invalid length");
4900 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4904 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4905 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"No WEP key(s) provided");
4906 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4910 else if (wiFiConnection->securitySettings.wepKeyType == TDENetworkWepKeyType::Ascii) {
4911 if ((wiFiConnection->securitySettings.wepKey0 ==
"") && (wiFiConnection->securitySettings.wepKey1 ==
"") && (wiFiConnection->securitySettings.wepKey2 ==
"") && (wiFiConnection->securitySettings.wepKey3 ==
"")) {
4912 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"No WEP key(s) provided");
4913 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4918 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::DynamicWEP) && (wiFiConnection->securitySettings.authType == TDENetworkWiFiAuthType::LEAP)) {
4919 if ((wiFiConnection->securitySettings.leapUsername.length() < 1) || (wiFiConnection->securitySettings.leapPassword.length() < 1)) {
4920 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"LEAP username and/or password not provided");
4921 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4925 else if ((wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAAdHoc) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAInfrastructure) || (wiFiConnection->securitySettings.keyType == TDENetworkWiFiKeyType::WPAEnterprise)) {
4926 if (wiFiConnection->securitySettings.psk.length() == 64) {
4929 wiFiConnection->securitySettings.psk.toULongLong(&ok, 16);
4931 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"Hexadecimal length PSK contains non-hexadecimal characters");
4932 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4936 else if ((wiFiConnection->securitySettings.psk.length() < 8) || (wiFiConnection->securitySettings.psk.length() > 63)) {
4937 if (reason) (*reason)[TDENetworkConnectionErrorFlags::InvalidWirelessKey] = i18n(
"No PSK provided");
4938 if (type) *type |= TDENetworkConnectionErrorFlags::InvalidWirelessKey;
4949 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::initiateConnection(TQString uuid) {
4950 TQT_DBusObjectPath existingConnection;
4951 TQT_DBusError error;
4953 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
4954 ret = d->m_networkManagerSettings->GetConnectionByUuid(uuid, existingConnection, error);
4956 if (m_macAddress ==
"") {
4957 d->m_dbusDeviceString =
"/";
4960 d->m_dbusDeviceString = deviceInterfaceString(m_macAddress);
4962 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 4963 TQT_DBusObjectPath active_connection;
4964 ret = d->m_networkManagerProxy->ActivateConnection(existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), active_connection, error);
4965 if (ret && error.isValid()) {
4967 PRINT_ERROR((error.name() +
": " + error.message()))
4969 return checkConnectionStatus(uuid);
4970 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 4971 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING 4972 connect(d->m_networkManagerProxy, SIGNAL(ActivateConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)), d, SLOT(processAddConnectionAsyncReply(
int,
const TQT_DBusObjectPath&)));
4973 connect(d->m_networkManagerProxy, SIGNAL(AsyncErrorResponseDetected(
int,
const TQT_DBusError)), d, SLOT(processAddConnectionAsyncError(
int,
const TQT_DBusError)));
4974 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING 4976 ret = d->m_networkManagerProxy->ActivateConnectionAsync(asyncCallID, existingConnection, TQT_DBusObjectPath(d->m_dbusDeviceString.ascii()), TQT_DBusObjectPath(
"/"), error);
4977 if (ret && error.isValid()) {
4979 PRINT_ERROR((error.name() +
": " + error.message()))
4981 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING 4984 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
4985 TQTimer nmCallTimeoutTimer;
4986 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
4987 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
4988 if (!nmCallTimeoutTimer.isActive()) {
4989 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
4992 tqApp->processEvents();
4994 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
4995 if (d->nmAddConnectionAsyncErrorResponse.contains(asyncCallID)) {
4996 PRINT_ERROR((d->nmAddConnectionAsyncErrorResponse[asyncCallID].name() +
": " + d->nmAddConnectionAsyncErrorResponse[asyncCallID].message()));
4997 d->nmAddConnectionAsyncErrorResponse.remove(asyncCallID);
4999 if (!d->nmAddConnectionAsyncResponse[asyncCallID].data()) {
5000 PRINT_ERROR(TQString(
"NetworkManager did not return a new connection object!"))
5002 if (d->nmAddConnectionAsyncResponse.contains(asyncCallID)) {
5003 d->nmAddConnectionAsyncResponse.remove(asyncCallID);
5005 return checkConnectionStatus(uuid);
5009 PRINT_ERROR((error.name() +
": " + error.message()))
5010 return checkConnectionStatus(uuid);
5013 return checkConnectionStatus(uuid);
5015 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 5018 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
5019 return TDENetworkConnectionStatus::Invalid;
5023 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5024 return TDENetworkConnectionStatus::Invalid;
5028 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::checkConnectionStatus(TQString uuid) {
5029 TQT_DBusObjectPath existingConnection;
5030 TQT_DBusError error;
5031 if (d->m_networkManagerProxy) {
5032 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5033 TQT_DBusObjectPathList::iterator it;
5034 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5035 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5036 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5037 if (activeConnection.getUuid(error) == uuid) {
5038 return nmDeviceStateToTDEDeviceState(activeConnection.getState(error));
5041 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
5042 return TDENetworkConnectionStatus::Invalid;
5045 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5046 return TDENetworkConnectionStatus::Invalid;
5050 TQCString TDENetworkConnectionManager_BackendNM::getActiveConnectionPath(TQString uuid) {
5051 TQT_DBusObjectPath existingConnection;
5052 TQT_DBusError error;
5053 if (d->m_networkManagerProxy) {
5054 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5055 TQT_DBusObjectPathList::iterator it;
5056 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5057 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5058 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5059 if (activeConnection.getUuid(error) == uuid) {
5063 PRINT_WARNING(TQString(
"active connection for provided uuid '%1' was not found").arg(uuid));
5064 return TQT_DBusObjectPath();
5067 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5068 return TQT_DBusObjectPath();
5072 TQStringList TDENetworkConnectionManager_BackendNM::connectionPhysicalDeviceUUIDs(TQString uuid) {
5073 if (deviceType() == TDENetworkDeviceType::BackendOnly) {
5074 return TQStringList();
5077 TQT_DBusObjectPath existingConnection;
5078 TQT_DBusError error;
5079 if (d->m_networkManagerProxy) {
5080 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5081 TQT_DBusObjectPathList::iterator it;
5083 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5084 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5085 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5086 if (activeConnection.getUuid(error) == uuid) {
5087 TQValueList<TQT_DBusObjectPath> deviceList = activeConnection.getDevices(error);
5088 TQT_DBusObjectPathList::iterator it2;
5089 for (it2 = deviceList.begin(); it2 != deviceList.end(); ++it2) {
5090 TQString macAddress = macAddressForGenericDevice(*it2);
5091 TQString devUUID = tdeDeviceUUIDForMACAddress(macAddress);
5092 if (devUUID !=
"") {
5093 ret.append(devUUID);
5101 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5102 return TQStringList();
5106 TDENetworkVPNTypeList TDENetworkConnectionManager_BackendNM::availableVPNTypes() {
5107 TDENetworkVPNTypeList ret;
5110 TQDir serviceDir(NM_PLUGIN_SERVICE_DIR, TQString(), TQDir::Name|TQDir::IgnoreCase, TQDir::Files);
5111 TQStringList services = serviceDir.entryList ().grep (
".name",
true);
5113 if (services.count () > 0) {
5115 for (TQStringList::Iterator i = services.begin (); i != services.end (); ++i) {
5116 TQString service = NM_PLUGIN_SERVICE_DIR + TQString (
"/") + *i;
5118 tdeconfig->
setGroup (
"VPN Connection");
5120 TQString serviceName = tdeconfig->
readEntry(
"name", TQString());
5121 serviceName = serviceName.lower();
5123 if (serviceName ==
"openvpn") {
5124 ret.append(TDENetworkVPNType::OpenVPN);
5126 if (serviceName ==
"pptp") {
5127 ret.append(TDENetworkVPNType::PPTP);
5129 if (serviceName ==
"strongswan") {
5130 ret.append(TDENetworkVPNType::StrongSwan);
5132 if (serviceName ==
"vpnc") {
5133 ret.append(TDENetworkVPNType::VPNC);
5143 TDENetworkConnectionStatus::TDENetworkConnectionStatus TDENetworkConnectionManager_BackendNM::deactivateConnection(TQString uuid) {
5144 TQT_DBusObjectPath existingConnection;
5145 TQT_DBusError error;
5147 if ((d->m_networkManagerSettings) && (d->m_networkManagerProxy)) {
5148 existingConnection = getActiveConnectionPath(uuid);
5149 if (existingConnection.isValid()) {
5150 if (m_macAddress ==
"") {
5151 d->m_dbusDeviceString =
"/";
5154 d->m_dbusDeviceString = deviceInterfaceString(m_macAddress);
5156 #ifndef USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 5157 ret = d->m_networkManagerProxy->DeactivateConnection(existingConnection, error);
5158 if (ret && error.isValid()) {
5160 PRINT_ERROR((error.name() +
": " + error.message()))
5162 return checkConnectionStatus(uuid);
5163 #else // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 5164 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING 5165 connect(d->m_networkManagerProxy, SIGNAL(DeactivateConnectionAsyncReply(
int)), d, SLOT(processConnectionSettingsUpdateAsyncReply(
int)));
5166 #endif // WAIT_FOR_OPERATION_BEFORE_RETURNING 5168 ret = d->m_networkManagerProxy->DeactivateConnectionAsync(asyncCallID, existingConnection, error);
5169 if (ret && error.isValid()) {
5171 PRINT_ERROR((error.name() +
": " + error.message()))
5173 #ifdef WAIT_FOR_OPERATION_BEFORE_RETURNING 5176 d->nmConnectionSettingsAsyncCallWaiting[asyncCallID] =
true;
5177 TQTimer nmCallTimeoutTimer;
5178 nmCallTimeoutTimer.start(NM_ASYNC_TIMEOUT_MS, TRUE);
5179 while (d->nmConnectionSettingsAsyncCallWaiting[asyncCallID]) {
5180 if (!nmCallTimeoutTimer.isActive()) {
5181 PRINT_ERROR(TQString(
"DBUS asynchronous call timed out!"))
5184 tqApp->processEvents();
5186 d->nmConnectionSettingsAsyncCallWaiting.remove(asyncCallID);
5187 return checkConnectionStatus(uuid);
5191 PRINT_ERROR((error.name() +
": " + error.message()))
5192 return checkConnectionStatus(uuid);
5195 return checkConnectionStatus(uuid);
5197 #endif // USE_ASYNC_DBUS_CONNECTION_COMMAND_CALLS 5200 PRINT_WARNING(TQString(
"connection for provided uuid '%1' was not found").arg(uuid));
5201 return TDENetworkConnectionStatus::Invalid;
5205 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5206 return TDENetworkConnectionStatus::Invalid;
5210 TQStringList TDENetworkConnectionManager_BackendNM::validSettings() {
5213 ret.append(
"TDENetworkSingleIPConfiguration::ipAddress");
5214 ret.append(
"TDENetworkSingleIPConfiguration::networkMask");
5215 ret.append(
"TDENetworkSingleIPConfiguration::gateway");
5217 ret.append(
"TDENetworkSingleRouteConfiguration::ipAddress");
5218 ret.append(
"TDENetworkSingleRouteConfiguration::networkMask");
5219 ret.append(
"TDENetworkSingleRouteConfiguration::gateway");
5221 ret.append(
"TDENetworkIEEE8021xConfiguration::valid");
5222 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedValid");
5223 ret.append(
"TDENetworkIEEE8021xConfiguration::secretsValid");
5224 ret.append(
"TDENetworkIEEE8021xConfiguration::type");
5225 ret.append(
"TDENetworkIEEE8021xConfiguration::userName");
5226 ret.append(
"TDENetworkIEEE8021xConfiguration::anonymousUserName");
5227 ret.append(
"TDENetworkIEEE8021xConfiguration::pacFileName");
5228 ret.append(
"TDENetworkIEEE8021xConfiguration::caCertificate");
5229 ret.append(
"TDENetworkIEEE8021xConfiguration::additionalCAFilesPath");
5230 ret.append(
"TDENetworkIEEE8021xConfiguration::authServerCertSubjectMatch");
5231 ret.append(
"TDENetworkIEEE8021xConfiguration::alternateAuthServerCertSubjectMatch");
5232 ret.append(
"TDENetworkIEEE8021xConfiguration::clientCertificate");
5233 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPVersion");
5234 ret.append(
"TDENetworkIEEE8021xConfiguration::forcePEAPLabel");
5235 ret.append(
"TDENetworkIEEE8021xConfiguration::fastProvisioningFlags");
5236 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2NonEAPAuthMethod");
5237 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2EAPAuthMethod");
5238 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2NonEAPMethods");
5239 ret.append(
"TDENetworkIEEE8021xConfiguration::allowedPhase2EAPMethods");
5240 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaCertificate");
5241 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2CaFilesPath");
5242 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AuthServerCertSubjectMatch");
5243 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2AlternateAuthServerCertSubjectMatch");
5244 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2ClientCertificate");
5245 ret.append(
"TDENetworkIEEE8021xConfiguration::password");
5246 ret.append(
"TDENetworkIEEE8021xConfiguration::passwordFlags");
5247 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPassword");
5248 ret.append(
"TDENetworkIEEE8021xConfiguration::binaryPasswordFlags");
5249 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKey");
5250 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPassword");
5251 ret.append(
"TDENetworkIEEE8021xConfiguration::privateKeyPasswordFlags");
5252 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKey");
5253 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPassword");
5254 ret.append(
"TDENetworkIEEE8021xConfiguration::phase2PrivateKeyPasswordFlags");
5255 ret.append(
"TDENetworkIEEE8021xConfiguration::forceSystemCaCertificates");
5257 ret.append(
"TDENetworkPPPConfiguration::valid");
5258 ret.append(
"TDENetworkPPPConfiguration::requireServerAuthentication");
5259 ret.append(
"TDENetworkPPPConfiguration::flags");
5260 ret.append(
"TDENetworkPPPConfiguration::baudRate");
5261 ret.append(
"TDENetworkPPPConfiguration::mru");
5262 ret.append(
"TDENetworkPPPConfiguration::mtu");
5263 ret.append(
"TDENetworkPPPConfiguration::lcpEchoPingInterval");
5264 ret.append(
"TDENetworkPPPConfiguration::lcpEchoFailureThreshold");
5266 ret.append(
"TDENetworkPPPOEConfiguration::valid");
5267 ret.append(
"TDENetworkPPPOEConfiguration::secretsValid");
5268 ret.append(
"TDENetworkPPPOEConfiguration::networkServiceProvider");
5269 ret.append(
"TDENetworkPPPOEConfiguration::username");
5270 ret.append(
"TDENetworkPPPOEConfiguration::password");
5271 ret.append(
"TDENetworkPPPOEConfiguration::passwordFlags");
5273 ret.append(
"TDENetworkSerialConfiguration::valid");
5274 ret.append(
"TDENetworkSerialConfiguration::baudRate");
5275 ret.append(
"TDENetworkSerialConfiguration::byteWidth");
5276 ret.append(
"TDENetworkSerialConfiguration::parity");
5277 ret.append(
"TDENetworkSerialConfiguration::stopBits");
5278 ret.append(
"TDENetworkSerialConfiguration::txDelay");
5280 ret.append(
"TDENetworkCDMAConfiguration::valid");
5281 ret.append(
"TDENetworkCDMAConfiguration::secretsValid");
5282 ret.append(
"TDENetworkCDMAConfiguration::providerDataNumber");
5283 ret.append(
"TDENetworkCDMAConfiguration::username");
5284 ret.append(
"TDENetworkCDMAConfiguration::password");
5285 ret.append(
"TDENetworkCDMAConfiguration::passwordFlags");
5287 ret.append(
"TDENetworkGSMConfiguration::valid");
5288 ret.append(
"TDENetworkGSMConfiguration::secretsValid");
5289 ret.append(
"TDENetworkGSMConfiguration::providerDataNumber");
5290 ret.append(
"TDENetworkGSMConfiguration::username");
5291 ret.append(
"TDENetworkGSMConfiguration::password");
5292 ret.append(
"TDENetworkGSMConfiguration::passwordFlags");
5293 ret.append(
"TDENetworkGSMConfiguration::accessPointName");
5294 ret.append(
"TDENetworkGSMConfiguration::networkID");
5295 ret.append(
"TDENetworkGSMConfiguration::networkType");
5296 ret.append(
"TDENetworkGSMConfiguration::pin");
5297 ret.append(
"TDENetworkGSMConfiguration::pinFlags");
5298 ret.append(
"TDENetworkGSMConfiguration::allowedFrequencyBands");
5299 ret.append(
"TDENetworkGSMConfiguration::allowRoaming");
5301 ret.append(
"TDENetworkWiFiSecurityConfiguration::valid");
5302 ret.append(
"TDENetworkWiFiSecurityConfiguration::secretsValid");
5303 ret.append(
"TDENetworkWiFiSecurityConfiguration::keyType");
5304 ret.append(
"TDENetworkWiFiSecurityConfiguration::authType");
5305 ret.append(
"TDENetworkWiFiSecurityConfiguration::wpaVersion");
5306 ret.append(
"TDENetworkWiFiSecurityConfiguration::cipher");
5307 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey0");
5308 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey1");
5309 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey2");
5310 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKey3");
5311 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyFlags");
5312 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyIndex");
5313 ret.append(
"TDENetworkWiFiSecurityConfiguration::wepKeyType");
5314 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedPairWiseCiphers");
5315 ret.append(
"TDENetworkWiFiSecurityConfiguration::allowedGroupWiseCiphers");
5316 ret.append(
"TDENetworkWiFiSecurityConfiguration::psk");
5317 ret.append(
"TDENetworkWiFiSecurityConfiguration::pskFlags");
5318 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapUsername");
5319 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPassword");
5320 ret.append(
"TDENetworkWiFiSecurityConfiguration::leapPasswordFlags");
5322 ret.append(
"TDENetworkIPConfiguration::valid");
5323 ret.append(
"TDENetworkIPConfiguration::connectionFlags");
5324 ret.append(
"TDENetworkIPConfiguration::ipConfigurations");
5325 ret.append(
"TDENetworkIPConfiguration::routeConfigurations");
5326 ret.append(
"TDENetworkIPConfiguration::broadcast");
5327 ret.append(
"TDENetworkIPConfiguration::destination");
5328 ret.append(
"TDENetworkIPConfiguration::resolvers");
5329 ret.append(
"TDENetworkIPConfiguration::searchDomains");
5330 ret.append(
"TDENetworkIPConfiguration::dhcpClientIdentifier");
5332 ret.append(
"TDENetworkConnection::UUID");
5333 ret.append(
"TDENetworkConnection::friendlyName");
5334 ret.append(
"TDENetworkConnection::ipConfig");
5335 ret.append(
"TDENetworkConnection::lockedHWAddress");
5336 ret.append(
"TDENetworkConnection::manualHWAddress");
5337 ret.append(
"TDENetworkConnection::readOnly");
5338 ret.append(
"TDENetworkConnection::autoConnect");
5339 ret.append(
"TDENetworkConnection::fullDuplex");
5340 ret.append(
"TDENetworkConnection::requireIPV4");
5341 ret.append(
"TDENetworkConnection::requireIPV6");
5342 ret.append(
"TDENetworkConnection::mtu");
5343 ret.append(
"TDENetworkConnection::eapConfig");
5344 ret.append(
"TDENetworkConnection::pppConfig");
5345 ret.append(
"TDENetworkConnection::pppoeConfig");
5346 ret.append(
"TDENetworkConnection::serialConfig");
5347 ret.append(
"TDENetworkConnection::authorizedUsers");
5348 ret.append(
"TDENetworkConnection::masterConnectionUUID");
5349 ret.append(
"TDENetworkConnection::slaveType");
5350 ret.append(
"TDENetworkConnection::lastKnownConnection");
5352 ret.append(
"TDEWiFiConnection::SSID");
5353 ret.append(
"TDEWiFiConnection::operatingMode");
5354 ret.append(
"TDEWiFiConnection::bandRestriction");
5355 ret.append(
"TDEWiFiConnection::channelRestriction");
5356 ret.append(
"TDEWiFiConnection::bitRateRestriction");
5357 ret.append(
"TDEWiFiConnection::powerRestriction");
5358 ret.append(
"TDEWiFiConnection::accessPointRestriction");
5359 ret.append(
"TDEWiFiConnection::blacklistedBSSIDs");
5360 ret.append(
"TDEWiFiConnection::heardBSSIDs");
5361 ret.append(
"TDEWiFiConnection::isHiddenNetwork");
5362 ret.append(
"TDEWiFiConnection::securityRequired");
5363 ret.append(
"TDEWiFiConnection::securitySettings");
5365 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5367 ret.append(
"TDEVPNConnection::vpnPluginID");
5368 ret.append(
"TDEVPNConnection::lockedUserName");
5369 ret.append(
"TDEVPNConnection::pluginData");
5370 ret.append(
"TDEVPNConnection::secretsValid");
5371 ret.append(
"TDEVPNConnection::pluginSecrets");
5373 ret.append(
"TDEWiMaxConnection::networkServiceProvider");
5375 ret.append(
"TDEVLANConnection::kernelName");
5376 ret.append(
"TDEVLANConnection::parentConnectionUUID");
5377 ret.append(
"TDEVLANConnection::vlanID");
5378 ret.append(
"TDEVLANConnection::vlanFlags");
5379 ret.append(
"TDEVLANConnection::ingressPriorityMap");
5380 ret.append(
"TDEVLANConnection::egressPriorityMap");
5382 ret.append(
"TDEOLPCMeshConnection::SSID");
5383 ret.append(
"TDEOLPCMeshConnection::channel");
5384 ret.append(
"TDEOLPCMeshConnection::anycastDHCPHWAddress");
5386 ret.append(
"TDEBluetoothConnection::type");
5388 ret.append(
"TDEModemConnection::type");
5389 ret.append(
"TDEModemConnection::cdmaConfig");
5390 ret.append(
"TDEModemConnection::gsmConfig");
5392 ret.append(
"TDEWiredInfinibandConnection::transportMode");
5397 TDENetworkWiFiAPInfo* TDENetworkConnectionManager_BackendNM::getAccessPointDetails(TQString dbusPath) {
5398 if (dbusPath ==
"") {
5402 TDENetworkWiFiAPInfo* apInfo =
new TDENetworkWiFiAPInfo;
5403 TQT_DBusError error;
5405 DBus::AccessPointProxy accessPoint(NM_DBUS_SERVICE, dbusPath);
5406 accessPoint.setConnection(TQT_DBusConnection::systemBus());
5408 TQValueList<TQ_UINT8> nmSSID = accessPoint.getSsid(error);
5409 if (error.isValid()) {
5413 TQValueList<TQ_UINT8>::iterator it;
5415 for (it = nmSSID.begin(); it != nmSSID.end(); ++it) {
5416 apInfo->SSID.resize(index+1);
5417 apInfo->SSID[index] = (*it);
5421 apInfo->wpaFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getWpaFlags(error));
5422 apInfo->rsnFlags = nmAPSecFlagsToTDEAPSecFlags(accessPoint.getFlags(error), accessPoint.getRsnFlags(error));
5423 apInfo->frequency = accessPoint.getFrequency(error);
5424 apInfo->BSSID.fromString(accessPoint.getHwAddress(error));
5425 apInfo->maxBitrate = accessPoint.getMaxBitrate(error);
5426 apInfo->signalQuality = (accessPoint.getStrength(error)/100.0);
5428 apInfo->valid =
true;
5433 TDENetworkHWNeighborList* TDENetworkConnectionManager_BackendNM::siteSurvey() {
5434 TQT_DBusError error;
5437 TDENetworkDeviceType::TDENetworkDeviceType myDeviceType = deviceType();
5438 d->m_dbusDeviceString = deviceInterfaceString(m_macAddress);
5439 clearTDENetworkHWNeighborList();
5441 if (myDeviceType == TDENetworkDeviceType::WiFi) {
5442 DBus::WiFiDeviceProxy wiFiDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString);
5443 wiFiDevice.setConnection(TQT_DBusConnection::systemBus());
5446 TQT_DBusObjectPathList accessPoints;
5447 ret = wiFiDevice.GetAccessPoints(accessPoints, error);
5449 TQT_DBusObjectPathList::iterator it;
5450 for (it = accessPoints.begin(); it != accessPoints.end(); ++it) {
5451 TDENetworkWiFiAPInfo* apInfo = getAccessPointDetails(TQString(*it));
5453 m_hwNeighborList->append(apInfo);
5455 d->internalProcessWiFiAccessPointAdded(*it);
5461 return m_hwNeighborList;
5464 bool TDENetworkConnectionManager_BackendNM::networkingEnabled() {
5465 if (d->m_networkManagerProxy) {
5467 TQT_DBusError error;
5468 ret = d->m_networkManagerProxy->getNetworkingEnabled(error);
5469 if (error.isValid()) {
5471 PRINT_ERROR((error.name() +
": " + error.message()))
5483 bool TDENetworkConnectionManager_BackendNM::wiFiHardwareEnabled() {
5484 if (d->m_networkManagerProxy) {
5486 TQT_DBusError error;
5487 ret = d->m_networkManagerProxy->getWirelessHardwareEnabled(error);
5488 if (error.isValid()) {
5490 PRINT_ERROR((error.name() +
": " + error.message()))
5502 bool TDENetworkConnectionManager_BackendNM::enableNetworking(
bool enable) {
5506 if (d->m_networkManagerProxy) {
5508 TQT_DBusError error;
5509 d->m_networkManagerProxy->SleepAsync(asynccallid, !enable, error);
5510 if (error.isValid()) {
5512 PRINT_ERROR((error.name() +
": " + error.message()))
5526 bool TDENetworkConnectionManager_BackendNM::enableWiFi(
bool enable) {
5527 if (d->m_networkManagerProxy) {
5528 TQT_DBusError error;
5529 d->m_networkManagerProxy->setWirelessEnabled(enable, error);
5530 if (error.isValid()) {
5532 PRINT_ERROR((error.name() +
": " + error.message()))
5544 bool TDENetworkConnectionManager_BackendNM::wiFiEnabled() {
5545 if (d->m_networkManagerProxy) {
5547 TQT_DBusError error;
5548 ret = d->m_networkManagerProxy->getWirelessEnabled(error);
5549 if (error.isValid()) {
5551 PRINT_ERROR((error.name() +
": " + error.message()))
5563 TQStringList TDENetworkConnectionManager_BackendNM::defaultNetworkDevices() {
5567 TQT_DBusObjectPath existingConnection;
5568 TQT_DBusError error;
5569 if (d->m_networkManagerProxy) {
5570 TQT_DBusObjectPathList activeConnections = d->m_networkManagerProxy->getActiveConnections(error);
5571 TQT_DBusObjectPathList::iterator it;
5572 for (it = activeConnections.begin(); it != activeConnections.end(); ++it) {
5573 DBus::ActiveConnectionProxy activeConnection(NM_DBUS_SERVICE, (*it));
5574 activeConnection.setConnection(TQT_DBusConnection::systemBus());
5575 if (activeConnection.getDefault(error)) {
5577 TQString uuid = activeConnection.getUuid(error);
5578 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5579 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5583 else if (activeConnection.getDefault6(error)) {
5585 TQString uuid = activeConnection.getUuid(error);
5586 TQStringList devices = connectionPhysicalDeviceUUIDs(uuid);
5587 for (TQStringList::Iterator it2 = devices.begin(); it2 != devices.end(); ++it2) {
5595 PRINT_ERROR(TQString(
"invalid internal network-manager settings proxy object"));
5596 return TQStringList();
5600 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) {
5602 m_dbusSignalConnection =
new TQT_DBusConnection(TQT_DBusConnection::systemBus());
5603 m_dbusSignalReceiver =
new TDENetworkConnectionManager_BackendNM_DBusSignalReceiver(
this);
5604 m_dbusSignalConnection->connect(m_dbusSignalReceiver, TQT_SLOT(dbusSignal(
const TQT_DBusMessage&)));
5607 TDENetworkConnectionManager_BackendNMPrivate::~TDENetworkConnectionManager_BackendNMPrivate() {
5609 if (m_dbusSignalConnection)
delete m_dbusSignalConnection;
5610 if (m_dbusSignalReceiver)
delete m_dbusSignalReceiver;
5613 TQMap<TQString, DBus::AccessPointProxy*>::iterator it;
5614 for (it = m_accessPointProxyList.begin(); it != m_accessPointProxyList.end(); ++it) {
5615 DBus::AccessPointProxy *apProxy = it.data();
5620 m_accessPointProxyList.clear();
5623 #include "network-manager.moc" 5624 #include "network-manager_p.moc" Access KDE Configuration entries.
void setGroup(const TQString &group)
Specifies the group in which keys will be read and written.
static TDEHardwareDevices * hardwareDevices()
Returns a TDEHardwareDevices object.
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
Reads the value of an entry specified by pKey in the current group.