00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _TDENETWORKCONNECTIONS_H
00019 #define _TDENETWORKCONNECTIONS_H
00020
00021
00022 #include <tqobject.h>
00023 #include <tqstring.h>
00024 #include <tqptrlist.h>
00025 #include <tqdatetime.h>
00026 #include <tqstringlist.h>
00027 #include <tqhostaddress.h>
00028 #include "kiconloader.h"
00029 #include "tdelibs_export.h"
00030
00031 #define CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(x) \
00032 inline x operator|(x a, x b) \
00033 { \
00034 return static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
00035 } \
00036 \
00037 inline x operator&(x a, x b) \
00038 { \
00039 return static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
00040 } \
00041 \
00042 inline x operator~(x a) \
00043 { \
00044 return static_cast<x>(~static_cast<int>(a)); \
00045 } \
00046 \
00047 inline x &operator|=(x& a, const x& b) \
00048 { \
00049 a = static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
00050 return a; \
00051 } \
00052 \
00053 inline x &operator&=(x& a, const x& b) \
00054 { \
00055 a = static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
00056 return a; \
00057 }
00058
00059 class TDENetworkDevice;
00060
00061 typedef TQValueList<TQ_UINT8> TDENetworkByteList;
00062 typedef TQValueList<TQHostAddress> TDENetworkAddressList;
00063 typedef TQMap<TQString, TQString> TDENetworkSettingsMap;
00064 typedef TQMap<TQ_UINT32, TQ_UINT32> TDENetworkPriorityMap;
00065
00066 namespace TDENetworkDeviceType {
00067 enum TDENetworkDeviceType {
00068 BackendOnly,
00069 WiredEthernet,
00070 WiFi,
00071 Bluetooth,
00072 OLPCMesh,
00073 WiMax,
00074 Modem,
00075 Infiniband,
00076 Bond,
00077 VLAN,
00078 ADSL,
00079 Other,
00080 Last = Other
00081 };
00082 };
00083
00084 namespace TDENetworkConnectionType {
00085 enum TDENetworkConnectionType {
00086 WiredEthernet,
00087 WiFi,
00088 Bluetooth,
00089 OLPCMesh,
00090 WiMax,
00091 Modem,
00092 Infiniband,
00093 Bond,
00094 VLAN,
00095 ADSL,
00096 VPN,
00097 Other,
00098 Last = Other
00099 };
00100 };
00101
00102 namespace TDENetworkConnectionErrorFlags {
00103 enum TDENetworkConnectionErrorFlags {
00104 NoError = 0x00000000,
00105 InvalidConnectionSetting = 0x00000001,
00106 InvalidIPv4Setting = 0x00000002,
00107 InvalidIPv6Setting = 0x00000004,
00108 InvalidEAPSetting = 0x00000008,
00109 InvalidEAPKey = 0x00000010,
00110 InvalidWirelessSetting = 0x00000020,
00111 InvalidWirelessKey = 0x00000040
00112 };
00113
00114 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionErrorFlags)
00115 };
00116
00117 typedef TQMap<TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags, TQString> TDENetworkErrorStringMap;
00118
00119 namespace TDENetworkInfinibandTransportMode {
00120 enum TDENetworkInfinibandTransportMode {
00121 Datagram,
00122 Connected,
00123 Other,
00124 Last = Other
00125 };
00126 };
00127
00128 namespace TDEWiFiMode {
00129 enum TDEWiFiMode {
00130 AdHoc,
00131 Infrastructure,
00132 Other,
00133 Last = Other
00134 };
00135 };
00136
00137 namespace TDEWiFiFrequencyBand {
00138 enum TDEWiFiFrequencyBand {
00139 None,
00140 Band2_4GHz,
00141 Band5GHz,
00142 Other,
00143 Last = Other
00144 };
00145 };
00146
00147 namespace TDEBluetoothConnectionType {
00148 enum TDEBluetoothConnectionType {
00149 DUN,
00150 PAN,
00151 Other,
00152 Last = Other
00153 };
00154 };
00155
00156 namespace TDEModemConnectionType {
00157 enum TDEModemConnectionType {
00158 CDMA,
00159 GSM,
00160 Other,
00161 Last = Other
00162 };
00163 };
00164
00165 namespace TDEGSMNetworkType {
00166 enum TDEGSMNetworkType {
00167 Any,
00168 Only3G,
00169 GPRSEdge,
00170 Prefer3G,
00171 Prefer2G,
00172 Other,
00173 Last = Other
00174 };
00175 };
00176
00177 namespace TDENetworkParity {
00178 enum TDENetworkParity {
00179 None,
00180 Even,
00181 Odd,
00182 Other,
00183 Last = Other
00184 };
00185 };
00186
00187 namespace TDENetworkSlaveDeviceType {
00188 enum TDENetworkSlaveDeviceType {
00189 None,
00190 Bond,
00191 Other,
00192 Last = Other
00193 };
00194 };
00195
00196 namespace TDENetworkGlobalEventType {
00197 enum TDENetworkGlobalEventType {
00198 ConnectionListChanged,
00199 Other,
00200 Last = Other
00201 };
00202 };
00203
00204 namespace TDENetworkVPNEventType {
00205 enum TDENetworkVPNEventType {
00206 LoginBanner,
00207 Failure,
00208 Other,
00209 Last = Other
00210 };
00211 };
00212
00213 namespace TDENetworkDeviceEventType {
00214 enum TDENetworkDeviceEventType {
00215 BitRateChanged,
00216 Failure,
00217 Other,
00218 Last = Other
00219 };
00220 };
00221
00222 namespace TDENetworkAPEventType {
00223 enum TDENetworkAPEventType {
00224 Discovered,
00225 Lost,
00226 SignalStrengthChanged,
00227 AccessPointChanged,
00228 Other,
00229 Last = Other
00230 };
00231 };
00232
00233 namespace TDENetworkGlobalManagerFlags {
00234 enum TDENetworkGlobalManagerFlags {
00235 Unknown = 0x00000000,
00236 Disconnected = 0x00000001,
00237 Connected = 0x00000002,
00238 EstablishingLink = 0x00000004,
00239 DeactivatingLink = 0x00000008,
00240 LinkLocalAccess = 0x00000010,
00241 SiteLocalAccess = 0x00000020,
00242 GlobalAccess = 0x00000040,
00243 Sleeping = 0x00000080,
00244 BackendUnavailable = 0x00000100,
00245 VPNUnknown = 0x00000200,
00246 VPNEstablishingLink = 0x00000400,
00247 VPNNeedAuthorization = 0x00000800,
00248 VPNConfiguringProtocols = 0x00001000,
00249 VPNVerifyingProtocols = 0x00002000,
00250 VPNConnected = 0x00004000,
00251 VPNFailed = 0x00008000,
00252 VPNDisconnected = 0x00010000,
00253 GlobalMask = 0x000001ff,
00254 VPNMask = 0x0001fe00
00255 };
00256
00257 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkGlobalManagerFlags)
00258 };
00259
00260 namespace TDENetworkDeviceCapabilityFlags {
00261 enum TDENetworkDeviceCapabilityFlags {
00262 None = 0x00000000,
00263 Supported = 0x00000001,
00264 CanDetectLink = 0x00000002
00265 };
00266
00267 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkDeviceCapabilityFlags)
00268 };
00269
00270 namespace TDENetworkPPPFlags {
00271 enum TDENetworkPPPFlags {
00272 None = 0x00000000,
00273 DisableEAP = 0x00000001,
00274 DisablePAP = 0x00000002,
00275 DisableCHAP = 0x00000004,
00276 DisableMSCHAP = 0x00000008,
00277 DisableMSCHAPv2 = 0x00000010,
00278 AllowBSDCompression = 0x00000020,
00279 AllowDeflateCompression = 0x00000040,
00280 AllowVJCompression = 0x00000080,
00281 RequireMPPE = 0x00000100,
00282 RequireMPPE128 = 0x00000200,
00283 StatefulMPPE = 0x00000400,
00284 UseHardwareFlowControl = 0x00000800
00285 };
00286
00287 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPPPFlags)
00288 };
00289
00290 namespace TDENetworkWiFiAPFlags {
00291 enum TDENetworkWiFiAPFlags {
00292 None = 0x00000000,
00293 PrivacySupport = 0x00000001,
00294 PairWEP40 = 0x00000002,
00295 PairWEP104 = 0x00000004,
00296 PairTKIP = 0x00000008,
00297 PairCCMP = 0x00000010,
00298 GroupWEP40 = 0x00000020,
00299 GroupWEP104 = 0x00000040,
00300 GroupTKIP = 0x00000080,
00301 GroupCCMP = 0x00000100,
00302 KeyManagementPSK = 0x00000200,
00303 KeyManagement80211 = 0x00000400,
00304 GeneralFlagsMask = 0x00000001,
00305 EncryptionFlagsMask = 0xfffffffe
00306 };
00307
00308 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiAPFlags)
00309 };
00310
00311 namespace TDENetworkWiFiClientFlags {
00312 enum TDENetworkWiFiClientFlags {
00313 None = 0x00000000,
00314 CipherWEP40 = 0x00000002,
00315 CipherWEP104 = 0x00000004,
00316 CipherTKIP = 0x00000008,
00317 CipherCCMP = 0x00000010,
00318 CipherWPA = 0x00000020,
00319 CipherRSN = 0x00000040
00320 };
00321
00322 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiClientFlags)
00323 };
00324
00325 namespace TDENetworkVPNType {
00326 enum TDENetworkVPNType {
00327 OpenVPN,
00328 PPTP,
00329 StrongSwan,
00330 VPNC,
00331 Other,
00332 Last = Other
00333 };
00334 };
00335
00336 typedef TQValueList<TDENetworkVPNType::TDENetworkVPNType> TDENetworkVPNTypeList;
00337
00338 namespace TDENetworkWiFiConnectionCipher {
00339 enum TDENetworkWiFiConnectionCipher {
00340 None,
00341 CipherWEP40,
00342 CipherWEP104,
00343 CipherTKIP,
00344 CipherCCMP,
00345 CipherWPA,
00346 CipherRSN,
00347 Any
00348 };
00349 };
00350
00351 typedef TQValueList<TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher> TDENetworkWiFiConnectionCipherList;
00352
00353 namespace TDENetworkWepKeyType {
00354 enum TDENetworkWepKeyType {
00355 Hexadecimal,
00356 Ascii,
00357 Passphrase
00358 };
00359 };
00360
00361 namespace TDENetworkVLANFlags {
00362 enum TDENetworkVLANFlags {
00363 None = 0x00000000,
00364 ReorderPacketHeaders = 0x00000001,
00365 UseGVRP = 0x00000002,
00366 LooseBinding = 0x00000004
00367 };
00368
00369 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkVLANFlags)
00370 };
00371
00372 namespace TDENetworkWiFiKeyType {
00373 enum TDENetworkWiFiKeyType {
00374 WEP,
00375 DynamicWEP,
00376 WPAAdHoc,
00377 WPAInfrastructure,
00378 WPAEnterprise,
00379 Other,
00380 Last = Other
00381 };
00382 };
00383
00384 namespace TDENetworkWiFiAuthType {
00385 enum TDENetworkWiFiAuthType {
00386 Open,
00387 Shared,
00388 LEAP,
00389 Other,
00390 Last = Other
00391 };
00392 };
00393
00394 namespace TDENetworkIEEE8021xType {
00395 enum TDENetworkIEEE8021xType {
00396 None,
00397 LEAP,
00398 MD5,
00399 PAP,
00400 CHAP,
00401 MSCHAP,
00402 MSCHAPV2,
00403 Fast,
00404 PSK,
00405 PAX,
00406 SAKE,
00407 GPSK,
00408 TLS,
00409 PEAP,
00410 TTLS,
00411 SIM,
00412 GTC,
00413 OTP
00414 };
00415 };
00416
00417 typedef TQValueList<TDENetworkIEEE8021xType::TDENetworkIEEE8021xType> TDENetworkIEEE8021xTypeList;
00418
00419 namespace TDENetworkIEEE8021xFastFlags {
00420 enum TDENetworkIEEE8021xFastFlags {
00421 None = 0x00000000,
00422 AllowUnauthenticated = 0x00000001,
00423 AllowAuthenticated = 0x00000002
00424 };
00425
00426 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIEEE8021xFastFlags)
00427 };
00428
00429 namespace TDENetworkWiFiWPAVersionFlags {
00430 enum TDENetworkWiFiWPAVersionFlags {
00431 None = 0x00000000,
00432 WPA = 0x00000001,
00433 RSN = 0x00000002,
00434 Any = 0x00000003
00435 };
00436
00437 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiWPAVersionFlags)
00438 };
00439
00440 namespace TDENetworkPasswordHandlingFlags {
00441 enum TDENetworkPasswordHandlingFlags {
00442 None = 0x00000000,
00443 NoSave = 0x00000001,
00444 NoPrompt = 0x00000002,
00445 ExternalStorage = 0x00000004
00446 };
00447
00448 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPasswordHandlingFlags)
00449 };
00450
00451 namespace TDENetworkConnectionStatus {
00452 enum TDENetworkConnectionStatus {
00453 None = 0x00000000,
00454 Invalid = 0x00000001,
00455 Disconnected = 0x00000002,
00456 Connected = 0x00000004,
00457 LinkUnavailable = 0x00000008,
00458 EstablishingLink = 0x00000010,
00459 DeactivatingLink = 0x00000020,
00460 ConfiguringProtocols = 0x00000040,
00461 Reconnecting = 0x00000080,
00462 LinkLost = 0x00000100,
00463 LinkLocalAccess = 0x00000200,
00464 SiteLocalAccess = 0x00000400,
00465 GlobalAccess = 0x00000800,
00466 UnManaged = 0x00001000,
00467 NeedAuthorization = 0x00002000,
00468 Failed = 0x00004000,
00469 VerifyingProtocols = 0x00008000,
00470 DependencyWait = 0x00010000
00471 };
00472
00473 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionStatus)
00474 };
00475
00476 namespace TDENetworkIPConfigurationFlags {
00477 enum TDENetworkIPConfigurationFlags {
00478 None = 0x00000000,
00479 IPV4DHCPIP = 0x00000001,
00480 IPV4DHCPDNS = 0x00000002,
00481 IPV4DHCPRoutes = 0x00000004,
00482 IPV4LocalOnly = 0x00000008,
00483 IPV4StartConnectionSharingServer = 0x00000010,
00484 IPV4Disabled = 0x00000020,
00485 IPV4MayUseAsDefaultRoute = 0x00000040,
00486 IPV6DHCPIP = 0x00000080,
00487 IPV6DHCPDNS = 0x00000100,
00488 IPV6DHCPRoutes = 0x00000200,
00489 IPV6LocalOnly = 0x00000400,
00490 IPV6StartConnectionSharingServer = 0x00000800,
00491 IPV6Disabled = 0x00001000,
00492 IPV6MayUseAsDefaultRoute = 0x00002000
00493 };
00494
00495 CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIPConfigurationFlags)
00496 };
00497
00498 class TDECORE_EXPORT TDENetworkSearchDomain
00499 {
00500 public:
00501 TDENetworkSearchDomain();
00502 TDENetworkSearchDomain(TQString domain, bool ipv6=false);
00503 ~TDENetworkSearchDomain();
00504
00505 TQString searchDomain();
00506 void setSearchDomain(TQString domain, bool ipv6=false);
00507
00508 bool isIPv4();
00509 bool isIPv6();
00510
00511 private:
00512 TQString m_domain;
00513 bool m_isIPV6;
00514 };
00515
00516 typedef TQValueList<TDENetworkSearchDomain> TDENetworkSearchDomainList;
00517
00518 class TDECORE_EXPORT TDENetMask
00519 {
00520 public:
00521 TDENetMask();
00522 TDENetMask(TQ_UINT32 netmask);
00523 TDENetMask(TQ_UINT8* netmask);
00524 ~TDENetMask();
00525
00526 void fromCIDRMask(unsigned char mask, bool ipv6=false);
00527 unsigned char toCIDRMask();
00528 void fromString(TQString mask);
00529 TQString toString();
00530
00531 bool isIPv4();
00532 bool isIPv6();
00533
00534 private:
00535 TQ_UINT32 m_ipv4NetMask;
00536 TQHostAddress m_ipv6NetMask;
00537 bool m_isIPV6;
00538 };
00539
00540 class TDECORE_EXPORT TDEMACAddress
00541 {
00542 public:
00543 TDEMACAddress();
00544 TDEMACAddress(TDENetworkByteList address);
00545 ~TDEMACAddress();
00546
00547 TDENetworkByteList address();
00548 void setAddress(TDENetworkByteList address);
00549 TQString toString();
00550 void fromString(TQString address);
00551 bool isValid();
00552
00553 private:
00554 bool m_isValid;
00555 TDENetworkByteList m_macAddress;
00556
00557 friend bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
00558 friend bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
00559 };
00560
00561 TDECORE_EXPORT bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
00562 TDECORE_EXPORT bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
00563
00564 typedef TQValueList<TDEMACAddress> TDEMACAddressList;
00565
00566 class TDECORE_EXPORT TDENetworkSingleIPConfiguration
00567 {
00568 public:
00569 TDENetworkSingleIPConfiguration();
00570 ~TDENetworkSingleIPConfiguration();
00571
00572 bool isIPv4();
00573 bool isIPv6();
00574
00575 public:
00576 bool valid;
00577 TQHostAddress ipAddress;
00578 TDENetMask networkMask;
00579 TQHostAddress gateway;
00580 };
00581
00582 typedef TQValueList<TDENetworkSingleIPConfiguration> TDENetworkSingleIPConfigurationList;
00583
00584 class TDECORE_EXPORT TDENetworkSingleRouteConfiguration
00585 {
00586 public:
00587 TDENetworkSingleRouteConfiguration();
00588 ~TDENetworkSingleRouteConfiguration();
00589
00590 bool isIPv4();
00591 bool isIPv6();
00592
00593 public:
00594 bool valid;
00595 TQHostAddress ipAddress;
00596 TDENetMask networkMask;
00597 TQHostAddress gateway;
00598 TQ_UINT32 metric;
00599 };
00600
00601 typedef TQValueList<TDENetworkSingleRouteConfiguration> TDENetworkSingleRouteConfigurationList;
00602
00603 class TDECORE_EXPORT TDENetworkIEEE8021xConfiguration
00604 {
00605 public:
00606 TDENetworkIEEE8021xConfiguration();
00607 ~TDENetworkIEEE8021xConfiguration();
00608
00609 public:
00610 bool valid;
00611 bool allowedValid;
00612 bool secretsValid;
00613 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType type;
00614 TQString userName;
00615 TQString anonymousUserName;
00616 TQString pacFileName;
00617 TQByteArray caCertificate;
00618 TQString additionalCAFilesPath;
00619 TQString authServerCertSubjectMatch;
00620 TQStringList alternateAuthServerCertSubjectMatch;
00621 TQByteArray clientCertificate;
00622 TQString forcePEAPVersion;
00623 TQString forcePEAPLabel;
00624 TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags fastProvisioningFlags;
00625 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2NonEAPAuthMethod;
00626 TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2EAPAuthMethod;
00627 TDENetworkIEEE8021xTypeList allowedPhase2NonEAPMethods;
00628 TDENetworkIEEE8021xTypeList allowedPhase2EAPMethods;
00629 TQByteArray phase2CaCertificate;
00630 TQString phase2CaFilesPath;
00631 TQString phase2AuthServerCertSubjectMatch;
00632 TQStringList phase2AlternateAuthServerCertSubjectMatch;
00633 TQByteArray phase2ClientCertificate;
00634 TQString password;
00635 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
00636 TQByteArray binaryPassword;
00637 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags binaryPasswordFlags;
00638 TQByteArray privateKey;
00639 TQString privateKeyPassword;
00640 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags privateKeyPasswordFlags;
00641 TQByteArray phase2PrivateKey;
00642 TQString phase2PrivateKeyPassword;
00643 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags phase2PrivateKeyPasswordFlags;
00644 bool forceSystemCaCertificates;
00645 };
00646
00647 class TDECORE_EXPORT TDENetworkPPPConfiguration
00648 {
00649 public:
00650 TDENetworkPPPConfiguration();
00651 virtual ~TDENetworkPPPConfiguration();
00652
00653 public:
00654 bool valid;
00655 bool requireServerAuthentication;
00656 TDENetworkPPPFlags::TDENetworkPPPFlags flags;
00657 TQ_UINT32 baudRate;
00658 TQ_UINT32 mru;
00659 TQ_UINT32 mtu;
00660 TQ_UINT32 lcpEchoPingInterval;
00661 TQ_UINT32 lcpEchoFailureThreshold;
00662 };
00663
00664 class TDECORE_EXPORT TDENetworkPPPOEConfiguration
00665 {
00666 public:
00667 TDENetworkPPPOEConfiguration();
00668 virtual ~TDENetworkPPPOEConfiguration();
00669
00670 public:
00671 bool valid;
00672 bool secretsValid;
00673 TQString networkServiceProvider;
00674 TQString username;
00675 TQString password;
00676 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
00677 };
00678
00679 class TDECORE_EXPORT TDENetworkSerialConfiguration
00680 {
00681 public:
00682 TDENetworkSerialConfiguration();
00683 virtual ~TDENetworkSerialConfiguration();
00684
00685 public:
00686 bool valid;
00687 TQ_UINT32 baudRate;
00688 TQ_UINT32 byteWidth;
00689 TDENetworkParity::TDENetworkParity parity;
00690 TQ_UINT32 stopBits;
00691 TQ_UINT64 txDelay;
00692 };
00693
00694 class TDECORE_EXPORT TDENetworkCDMAConfiguration
00695 {
00696 public:
00697 TDENetworkCDMAConfiguration();
00698 virtual ~TDENetworkCDMAConfiguration();
00699
00700 public:
00701 bool valid;
00702 bool secretsValid;
00703 TQString providerDataNumber;
00704 TQString username;
00705 TQString password;
00706 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
00707 };
00708
00709 class TDECORE_EXPORT TDENetworkGSMConfiguration
00710 {
00711 public:
00712 TDENetworkGSMConfiguration();
00713 virtual ~TDENetworkGSMConfiguration();
00714
00715 public:
00716 bool valid;
00717 bool secretsValid;
00718 TQString providerDataNumber;
00719 TQString username;
00720 TQString password;
00721 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
00722 TQString accessPointName;
00723 TQString networkID;
00724 TDEGSMNetworkType::TDEGSMNetworkType networkType;
00725 TQString pin;
00726 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pinFlags;
00727 TQ_UINT32 allowedFrequencyBands;
00728 bool allowRoaming;
00729 };
00730
00731
00732 class TDENetworkWiFiSecurityConfiguration
00733 {
00734 public:
00735 TDENetworkWiFiSecurityConfiguration();
00736 ~TDENetworkWiFiSecurityConfiguration();
00737
00738 public:
00739 bool valid;
00740 bool secretsValid;
00741 TDENetworkWiFiKeyType::TDENetworkWiFiKeyType keyType;
00742 TDENetworkWiFiAuthType::TDENetworkWiFiAuthType authType;
00743 TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags wpaVersion;
00744 TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher;
00745 TQString wepKey0;
00746 TQString wepKey1;
00747 TQString wepKey2;
00748 TQString wepKey3;
00749 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags wepKeyFlags;
00750 TQ_UINT32 wepKeyIndex;
00751 TDENetworkWepKeyType::TDENetworkWepKeyType wepKeyType;
00752 TDENetworkWiFiConnectionCipherList allowedPairWiseCiphers;
00753 TDENetworkWiFiConnectionCipherList allowedGroupWiseCiphers;
00754 TQString psk;
00755 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pskFlags;
00756 TQString leapUsername;
00757 TQString leapPassword;
00758 TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags leapPasswordFlags;
00759 };
00760
00761 class TDECORE_EXPORT TDENetworkIPConfiguration
00762 {
00763 public:
00764 TDENetworkIPConfiguration();
00765 ~TDENetworkIPConfiguration();
00766
00767 public:
00768 bool valid;
00769 TDENetworkIPConfigurationFlags::TDENetworkIPConfigurationFlags connectionFlags;
00770 TDENetworkSingleIPConfigurationList ipConfigurations;
00771 TDENetworkSingleRouteConfigurationList routeConfigurations;
00772 TQHostAddress broadcast;
00773 TQHostAddress destination;
00774 TDENetworkAddressList resolvers;
00775 TDENetworkSearchDomainList searchDomains;
00776 TQString dhcpClientIdentifier;
00777 };
00778
00779 class TDECORE_EXPORT TDENetworkWiFiDeviceInfo
00780 {
00781 public:
00782 TDENetworkWiFiDeviceInfo();
00783 ~TDENetworkWiFiDeviceInfo();
00784
00785 public:
00786 bool valid;
00787 TDEMACAddress hwAddress;
00788 TDEMACAddress permanentHWAddress;
00789 TDEWiFiMode::TDEWiFiMode operatingMode;
00790 unsigned int bitrate;
00791 TDEMACAddress activeAccessPointBSSID;
00792 TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags wirelessFlags;
00793 };
00794
00795 class TDECORE_EXPORT TDENetworkDeviceInformation
00796 {
00797 public:
00798 TDENetworkDeviceInformation();
00799 ~TDENetworkDeviceInformation();
00800
00801 public:
00802 bool valid;
00803 TDENetworkConnectionStatus::TDENetworkConnectionStatus statusFlags;
00804 TQString UUID;
00805 TQString backendDriver;
00806 TQString backendDriverVersion;
00807 TQString firmwareVersion;
00808 TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags capabilityFlags;
00809 TDENetworkIPConfiguration ipConfiguration;
00810 bool managed;
00811 bool autoConnect;
00812 bool firmwareMissing;
00813 TDENetworkDeviceType::TDENetworkDeviceType deviceType;
00814 TQString activeConnectionUUID;
00815 TDENetworkWiFiDeviceInfo wiFiInfo;
00816 };
00817
00818 class TDECORE_EXPORT TDENetworkHWNeighbor
00819 {
00820 public:
00821 TDENetworkHWNeighbor();
00822 virtual ~TDENetworkHWNeighbor();
00823
00824 public:
00825 bool valid;
00826 };
00827
00828 class TDECORE_EXPORT TDENetworkWiFiAPInfo : public TDENetworkHWNeighbor
00829 {
00830 public:
00831 TDENetworkWiFiAPInfo();
00832 virtual ~TDENetworkWiFiAPInfo();
00833
00834 public:
00835 TQString friendlySSID() const;
00836
00837 public:
00838 TQByteArray SSID;
00839 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags wpaFlags;
00840 TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags rsnFlags;
00841 unsigned int frequency;
00842 TDEMACAddress BSSID;
00843 unsigned int maxBitrate;
00844 double signalQuality;
00845 };
00846
00847 typedef TQPtrList< TDENetworkHWNeighbor > TDENetworkHWNeighborList;
00848
00849 class TDECORE_EXPORT TDENetworkConnection
00850 {
00851 public:
00852 TDENetworkConnection();
00853 virtual ~TDENetworkConnection();
00854
00855 public:
00856 TDENetworkConnectionType::TDENetworkConnectionType type();
00857
00858 public:
00859 TQString UUID;
00860 TQString friendlyName;
00861 TDENetworkIPConfiguration ipConfig;
00862 TDEMACAddress lockedHWAddress;
00863 TDEMACAddress manualHWAddress;
00864 bool readOnly;
00865 bool autoConnect;
00866 bool fullDuplex;
00867 bool requireIPV4;
00868 bool requireIPV6;
00869 TQ_UINT32 mtu;
00870 TDENetworkIEEE8021xConfiguration eapConfig;
00871 TDENetworkPPPConfiguration pppConfig;
00872 TDENetworkPPPOEConfiguration pppoeConfig;
00873 TDENetworkSerialConfiguration serialConfig;
00874 TQStringList authorizedUsers;
00875 TQString masterConnectionUUID;
00876 TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slaveType;
00877 TQDateTime lastKnownConnection;
00878 };
00879
00880 class TDECORE_EXPORT TDEWiredEthernetConnection : public TDENetworkConnection
00881 {
00882 public:
00883 TDEWiredEthernetConnection();
00884 virtual ~TDEWiredEthernetConnection();
00885 };
00886
00887 class TDECORE_EXPORT TDEWiFiConnection : public TDENetworkConnection
00888 {
00889 public:
00890 TDEWiFiConnection();
00891 virtual ~TDEWiFiConnection();
00892
00893 public:
00894 TQByteArray SSID;
00895 TDEWiFiMode::TDEWiFiMode operatingMode;
00896 TDEWiFiFrequencyBand::TDEWiFiFrequencyBand bandRestriction;
00897 TQ_INT32 channelRestriction;
00898 TQ_INT32 bitRateRestriction;
00899 TQ_INT32 powerRestriction;
00900 TDEMACAddress accessPointRestriction;
00901 TDEMACAddressList blacklistedBSSIDs;
00902 TDEMACAddressList heardBSSIDs;
00903 bool isHiddenNetwork;
00904 bool securityRequired;
00905 TDENetworkWiFiSecurityConfiguration securitySettings;
00906 };
00907
00908 class TDECORE_EXPORT TDEWiredInfinibandConnection : public TDENetworkConnection
00909 {
00910 public:
00911 TDEWiredInfinibandConnection();
00912 virtual ~TDEWiredInfinibandConnection();
00913
00914 public:
00915 TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode transportMode;
00916 };
00917
00918 class TDECORE_EXPORT TDEVPNConnection : public TDENetworkConnection
00919 {
00920 public:
00921 TDEVPNConnection();
00922 virtual ~TDEVPNConnection();
00923
00924 public:
00925 TQString vpnPluginID;
00926 TQString lockedUserName;
00927 TDENetworkSettingsMap pluginData;
00928 bool secretsValid;
00929 TDENetworkSettingsMap pluginSecrets;
00930 };
00931
00932 class TDECORE_EXPORT TDEWiMaxConnection : public TDENetworkConnection
00933 {
00934 public:
00935 TDEWiMaxConnection();
00936 virtual ~TDEWiMaxConnection();
00937
00938 public:
00939 TQString networkServiceProvider;
00940 };
00941
00942 class TDECORE_EXPORT TDEVLANConnection : public TDENetworkConnection
00943 {
00944 public:
00945 TDEVLANConnection();
00946 virtual ~TDEVLANConnection();
00947
00948 public:
00949 TQString kernelName;
00950 TQString parentConnectionUUID;
00951 TQ_UINT32 vlanID;
00952 TDENetworkVLANFlags::TDENetworkVLANFlags vlanFlags;
00953 TDENetworkPriorityMap ingressPriorityMap;
00954 TDENetworkPriorityMap egressPriorityMap;
00955 };
00956
00957 class TDECORE_EXPORT TDEOLPCMeshConnection : public TDENetworkConnection
00958 {
00959 public:
00960 TDEOLPCMeshConnection();
00961 virtual ~TDEOLPCMeshConnection();
00962
00963 public:
00964 TQByteArray SSID;
00965 TQ_INT32 channel;
00966 TQByteArray anycastDHCPHWAddress;
00967 };
00968
00969 class TDECORE_EXPORT TDEBluetoothConnection : public TDENetworkConnection
00970 {
00971 public:
00972 TDEBluetoothConnection();
00973 virtual ~TDEBluetoothConnection();
00974
00975 public:
00976 TDEBluetoothConnectionType::TDEBluetoothConnectionType type;
00977 };
00978
00979 class TDECORE_EXPORT TDEModemConnection : public TDENetworkConnection
00980 {
00981 public:
00982 TDEModemConnection();
00983 virtual ~TDEModemConnection();
00984
00985 public:
00986 TDEModemConnectionType::TDEModemConnectionType type;
00987 TDENetworkCDMAConfiguration cdmaConfig;
00988 TDENetworkGSMConfiguration gsmConfig;
00989 };
00990
00991 typedef TQPtrList< TDENetworkConnection > TDENetworkConnectionList;
00992
00996 class TDENetworkEventQueueEvent_Private
00997 {
00998 public:
00999 int eventType;
01000 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState;
01001 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState;
01002 TDENetworkConnectionStatus::TDENetworkConnectionStatus newConnStatus;
01003 TDENetworkConnectionStatus::TDENetworkConnectionStatus previousConnStatus;
01004 TDEMACAddress BSSID;
01005 TQString message;
01006 TQString deviceNode;
01007 TDENetworkAPEventType::TDENetworkAPEventType apevent;
01008 TDENetworkDeviceEventType::TDENetworkDeviceEventType ndevent;
01009 TDENetworkVPNEventType::TDENetworkVPNEventType vpnevent;
01010 TDENetworkGlobalEventType::TDENetworkGlobalEventType globalevent;
01011 };
01012 typedef TQValueList<TDENetworkEventQueueEvent_Private> TDENetworkEventQueueEvent_PrivateList;
01013
01014 class TQTimer;
01015
01016 class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject
01017 {
01018 Q_OBJECT
01019
01020 public:
01027 TDENetworkConnectionManager(TDENetworkDevice *networkDevice);
01028
01032 ~TDENetworkConnectionManager();
01033
01037 virtual TQString backendName() = 0;
01038
01042 virtual TDENetworkDeviceType::TDENetworkDeviceType deviceType() = 0;
01043
01047 virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus() = 0;
01048
01052 virtual TDENetworkDeviceInformation deviceInformation() = 0;
01053
01062 virtual TDENetworkDeviceInformation deviceStatus() = 0;
01063
01070 virtual void loadConnectionInformation() = 0;
01071
01078 virtual void loadConnectionAllowedValues(TDENetworkConnection* connection) = 0;
01079
01085 virtual bool loadConnectionSecrets(TQString uuid) = 0;
01086
01092 virtual bool saveConnection(TDENetworkConnection* connection) = 0;
01093
01099 virtual bool deleteConnection(TQString uuid) = 0;
01100
01110 virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL) = 0;
01111
01119 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid) = 0;
01120
01125 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid) = 0;
01126
01132 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid) = 0;
01133
01139 virtual TQStringList validSettings() = 0;
01140
01150 virtual TDENetworkHWNeighborList* siteSurvey() = 0;
01151
01158 virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid) = 0;
01159
01164 virtual TDENetworkVPNTypeList availableVPNTypes() = 0;
01165
01169 virtual bool networkingEnabled() = 0;
01170
01175 virtual bool enableNetworking(bool enable) = 0;
01176
01180 virtual bool wiFiHardwareEnabled() = 0;
01181
01186 virtual bool enableWiFi(bool enable) = 0;
01187
01191 virtual bool wiFiEnabled() = 0;
01192
01197 virtual TQStringList defaultNetworkDevices() = 0;
01198
01199 signals:
01204 void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
01205
01212 void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString deviceNode);
01213
01218 void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
01219
01225 void networkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
01226
01232 void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
01233
01238 void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
01239
01240 public:
01254 virtual TDENetworkConnectionList* connections();
01255
01259 TQString deviceNode();
01260
01264 TQString deviceMACAddress();
01265
01272 TDENetworkConnection* findConnectionByUUID(TQString uuid);
01273
01280 TDENetworkDevice* findDeviceByUUID(TQString uuid);
01281
01288 TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
01289
01293 static TQString friendlyConnectionTypeName(TDENetworkConnectionType::TDENetworkConnectionType type);
01294
01298 static bool validateIPAddress(TQHostAddress address);
01299
01303 static bool validateIPNeworkMask(TQHostAddress netmask);
01304
01305 protected:
01309 void clearTDENetworkConnectionList();
01310
01314 void clearTDENetworkHWNeighborList();
01315
01320 void internalNetworkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState);
01321
01326 void internalNetworkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TQString deviceNode=TQString::null);
01327
01332 void internalAccessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
01333
01338 void internalNetworkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
01339
01344 void internalVpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
01345
01350 void internalNetworkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
01351
01352 protected slots:
01353 void emitQueuedSignals();
01354
01355 protected:
01356 TDENetworkConnectionList* m_connectionList;
01357 TDENetworkHWNeighborList* m_hwNeighborList;
01358 TDENetworkDevice* m_networkDevice;
01359 TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags m_prevConnectionStatus;
01360 TQMap<TQString, TDENetworkConnectionStatus::TDENetworkConnectionStatus> m_prevDeviceStatus;
01361 TQTimer* m_emissionTimer;
01362 TDENetworkEventQueueEvent_PrivateList m_globalEventQueueEventList;
01363 };
01364
01365 class TDECORE_EXPORT TDEGlobalNetworkManager : public TQObject
01366 {
01367 Q_OBJECT
01368
01369 public:
01373 TDEGlobalNetworkManager();
01374
01378 ~TDEGlobalNetworkManager();
01379
01383 virtual TQString backendName();
01384
01388 virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus();
01389
01396 virtual void loadConnectionInformation();
01397
01404 virtual void loadConnectionAllowedValues(TDENetworkConnection* connection);
01405
01411 virtual bool loadConnectionSecrets(TQString uuid);
01412
01418 virtual bool saveConnection(TDENetworkConnection* connection);
01419
01425 virtual bool deleteConnection(TQString uuid);
01426
01436 virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL);
01437
01443 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid);
01444
01449 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid);
01450
01456 virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid);
01457
01463 virtual TQStringList validSettings();
01464
01474 virtual TDENetworkHWNeighborList* siteSurvey();
01475
01482 virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid);
01483
01488 virtual TDENetworkVPNTypeList availableVPNTypes();
01489
01493 virtual bool networkingEnabled();
01494
01499 virtual bool enableNetworking(bool enable);
01500
01504 virtual bool wiFiHardwareEnabled();
01505
01510 virtual bool enableWiFi(bool enable);
01511
01515 virtual bool wiFiEnabled();
01516
01521 virtual TQStringList defaultNetworkDevices();
01522
01523 signals:
01528 void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
01529
01536 void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString deviceNode);
01537
01542 void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
01543
01549 void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
01550
01555 void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
01556
01557 public:
01571 virtual TDENetworkConnectionList* connections();
01572
01579 TDENetworkConnection* findConnectionByUUID(TQString uuid);
01580
01587 TDENetworkDevice* findDeviceByUUID(TQString uuid);
01588
01595 TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
01596
01597 private:
01598 TDENetworkConnectionManager* m_internalConnectionManager;
01599 };
01600
01601 #endif // _TDENETWORKCONNECTIONS_H