• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdecore
 

tdecore

tdenetworkconnections.h

00001 /* This file is part of the TDE libraries
00002    Copyright (C) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016    Boston, MA 02110-1301, USA.
00017 */
00018 #ifndef _TDENETWORKCONNECTIONS_H
00019 #define _TDENETWORKCONNECTIONS_H
00020 
00021 // TDE includes
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

tdecore

Skip menu "tdecore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdecore

Skip menu "tdecore"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdecore by doxygen 1.7.1
This website is maintained by Timothy Pearson.