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

tdecore

  • tdecore
  • tdehw
tdenetworkconnections.h
1 /* This file is part of the TDE libraries
2  Copyright (C) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License version 2 as published by the Free Software Foundation.
7 
8  This library is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  Library General Public License for more details.
12 
13  You should have received a copy of the GNU Library General Public License
14  along with this library; see the file COPYING.LIB. If not, write to
15  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16  Boston, MA 02110-1301, USA.
17 */
18 #ifndef _TDENETWORKCONNECTIONS_H
19 #define _TDENETWORKCONNECTIONS_H
20 
21 // TDE includes
22 #include <tqobject.h>
23 #include <tqstring.h>
24 #include <tqptrlist.h>
25 #include <tqdatetime.h>
26 #include <tqstringlist.h>
27 #include <tqhostaddress.h>
28 #include "kiconloader.h"
29 #include "tdelibs_export.h"
30 
31 #define CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(x) \
32  inline x operator|(x a, x b) \
33  { \
34  return static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
35  } \
36  \
37  inline x operator&(x a, x b) \
38  { \
39  return static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
40  } \
41  \
42  inline x operator~(x a) \
43  { \
44  return static_cast<x>(~static_cast<int>(a)); \
45  } \
46  \
47  inline x &operator|=(x& a, const x& b) \
48  { \
49  a = static_cast<x>(static_cast<int>(a) | static_cast<int>(b)); \
50  return a; \
51  } \
52  \
53  inline x &operator&=(x& a, const x& b) \
54  { \
55  a = static_cast<x>(static_cast<int>(a) & static_cast<int>(b)); \
56  return a; \
57  }
58 
59 class TDENetworkDevice;
60 
61 typedef TQValueList<TQ_UINT8> TDENetworkByteList;
62 typedef TQValueList<TQHostAddress> TDENetworkAddressList;
63 typedef TQMap<TQString, TQString> TDENetworkSettingsMap;
64 typedef TQMap<TQ_UINT32, TQ_UINT32> TDENetworkPriorityMap;
65 
66 namespace TDENetworkDeviceType {
67  enum TDENetworkDeviceType {
68  BackendOnly,
69  WiredEthernet,
70  WiFi,
71  Bluetooth,
72  OLPCMesh,
73  WiMax,
74  Modem,
75  Infiniband,
76  Bond,
77  VLAN,
78  ADSL,
79  Other,
80  Last = Other
81  };
82 };
83 
84 namespace TDENetworkConnectionType {
85  enum TDENetworkConnectionType {
86  WiredEthernet,
87  WiFi,
88  Bluetooth,
89  OLPCMesh,
90  WiMax,
91  Modem,
92  Infiniband,
93  Bond,
94  VLAN,
95  ADSL,
96  VPN,
97  Other,
98  Last = Other
99  };
100 };
101 
102 namespace TDENetworkConnectionErrorFlags {
103  enum TDENetworkConnectionErrorFlags {
104  NoError = 0x00000000,
105  InvalidConnectionSetting = 0x00000001,
106  InvalidIPv4Setting = 0x00000002,
107  InvalidIPv6Setting = 0x00000004,
108  InvalidEAPSetting = 0x00000008,
109  InvalidEAPKey = 0x00000010,
110  InvalidWirelessSetting = 0x00000020,
111  InvalidWirelessKey = 0x00000040
112  };
113 
114  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionErrorFlags)
115 };
116 
117 typedef TQMap<TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags, TQString> TDENetworkErrorStringMap;
118 
119 namespace TDENetworkInfinibandTransportMode {
120  enum TDENetworkInfinibandTransportMode {
121  Datagram,
122  Connected,
123  Other,
124  Last = Other
125  };
126 };
127 
128 namespace TDEWiFiMode {
129  enum TDEWiFiMode {
130  AdHoc,
131  Infrastructure,
132  Other,
133  Last = Other
134  };
135 };
136 
137 namespace TDEWiFiFrequencyBand {
138  enum TDEWiFiFrequencyBand {
139  None,
140  Band2_4GHz,
141  Band5GHz,
142  Other,
143  Last = Other
144  };
145 };
146 
147 namespace TDEBluetoothConnectionType {
148  enum TDEBluetoothConnectionType {
149  DUN,
150  PAN,
151  Other,
152  Last = Other
153  };
154 };
155 
156 namespace TDEModemConnectionType {
157  enum TDEModemConnectionType {
158  CDMA,
159  GSM,
160  Other,
161  Last = Other
162  };
163 };
164 
165 namespace TDEGSMNetworkType {
166  enum TDEGSMNetworkType {
167  Any,
168  Only3G,
169  GPRSEdge,
170  Prefer3G,
171  Prefer2G,
172  Other,
173  Last = Other
174  };
175 };
176 
177 namespace TDENetworkParity {
178  enum TDENetworkParity {
179  None,
180  Even,
181  Odd,
182  Other,
183  Last = Other
184  };
185 };
186 
187 namespace TDENetworkSlaveDeviceType {
188  enum TDENetworkSlaveDeviceType {
189  None,
190  Bond,
191  Other,
192  Last = Other
193  };
194 };
195 
196 namespace TDENetworkGlobalEventType {
197  enum TDENetworkGlobalEventType {
198  ConnectionListChanged,
199  Other,
200  Last = Other
201  };
202 };
203 
204 namespace TDENetworkVPNEventType {
205  enum TDENetworkVPNEventType {
206  LoginBanner,
207  Failure,
208  Other,
209  Last = Other
210  };
211 };
212 
213 namespace TDENetworkDeviceEventType {
214  enum TDENetworkDeviceEventType {
215  BitRateChanged,
216  Failure,
217  Other,
218  Last = Other
219  };
220 };
221 
222 namespace TDENetworkAPEventType {
223  enum TDENetworkAPEventType {
224  Discovered,
225  Lost,
226  SignalStrengthChanged,
227  AccessPointChanged,
228  Other,
229  Last = Other
230  };
231 };
232 
233 namespace TDENetworkGlobalManagerFlags {
234  enum TDENetworkGlobalManagerFlags {
235  Unknown = 0x00000000,
236  Disconnected = 0x00000001,
237  Connected = 0x00000002,
238  EstablishingLink = 0x00000004,
239  DeactivatingLink = 0x00000008,
240  LinkLocalAccess = 0x00000010,
241  SiteLocalAccess = 0x00000020,
242  GlobalAccess = 0x00000040,
243  Sleeping = 0x00000080,
244  BackendUnavailable = 0x00000100,
245  VPNUnknown = 0x00000200,
246  VPNEstablishingLink = 0x00000400,
247  VPNNeedAuthorization = 0x00000800,
248  VPNConfiguringProtocols = 0x00001000,
249  VPNVerifyingProtocols = 0x00002000,
250  VPNConnected = 0x00004000,
251  VPNFailed = 0x00008000,
252  VPNDisconnected = 0x00010000,
253  GlobalMask = 0x000001ff,
254  VPNMask = 0x0001fe00
255  };
256 
257  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkGlobalManagerFlags)
258 };
259 
260 namespace TDENetworkDeviceCapabilityFlags {
261  enum TDENetworkDeviceCapabilityFlags {
262  None = 0x00000000,
263  Supported = 0x00000001,
264  CanDetectLink = 0x00000002
265  };
266 
267  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkDeviceCapabilityFlags)
268 };
269 
270 namespace TDENetworkPPPFlags {
271  enum TDENetworkPPPFlags {
272  None = 0x00000000,
273  DisableEAP = 0x00000001,
274  DisablePAP = 0x00000002,
275  DisableCHAP = 0x00000004,
276  DisableMSCHAP = 0x00000008,
277  DisableMSCHAPv2 = 0x00000010,
278  AllowBSDCompression = 0x00000020,
279  AllowDeflateCompression = 0x00000040,
280  AllowVJCompression = 0x00000080,
281  RequireMPPE = 0x00000100,
282  RequireMPPE128 = 0x00000200,
283  StatefulMPPE = 0x00000400,
284  UseHardwareFlowControl = 0x00000800
285  };
286 
287  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPPPFlags)
288 };
289 
290 namespace TDENetworkWiFiAPFlags {
291  enum TDENetworkWiFiAPFlags {
292  None = 0x00000000,
293  PrivacySupport = 0x00000001,
294  PairWEP40 = 0x00000002,
295  PairWEP104 = 0x00000004,
296  PairTKIP = 0x00000008,
297  PairCCMP = 0x00000010,
298  GroupWEP40 = 0x00000020,
299  GroupWEP104 = 0x00000040,
300  GroupTKIP = 0x00000080,
301  GroupCCMP = 0x00000100,
302  KeyManagementPSK = 0x00000200,
303  KeyManagement80211 = 0x00000400,
304  GeneralFlagsMask = 0x00000001,
305  EncryptionFlagsMask = 0xfffffffe
306  };
307 
308  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiAPFlags)
309 };
310 
311 namespace TDENetworkWiFiClientFlags {
312  enum TDENetworkWiFiClientFlags {
313  None = 0x00000000,
314  CipherWEP40 = 0x00000002,
315  CipherWEP104 = 0x00000004,
316  CipherTKIP = 0x00000008,
317  CipherCCMP = 0x00000010,
318  CipherWPA = 0x00000020,
319  CipherRSN = 0x00000040
320  };
321 
322  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiClientFlags)
323 };
324 
325 namespace TDENetworkVPNType {
326  enum TDENetworkVPNType {
327  OpenVPN,
328  PPTP,
329  StrongSwan,
330  VPNC,
331  Other,
332  Last = Other
333  };
334 };
335 
336 typedef TQValueList<TDENetworkVPNType::TDENetworkVPNType> TDENetworkVPNTypeList;
337 
338 namespace TDENetworkWiFiConnectionCipher {
339  enum TDENetworkWiFiConnectionCipher {
340  None,
341  CipherWEP40,
342  CipherWEP104,
343  CipherTKIP,
344  CipherCCMP,
345  CipherWPA,
346  CipherRSN,
347  Any
348  };
349 };
350 
351 typedef TQValueList<TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher> TDENetworkWiFiConnectionCipherList;
352 
353 namespace TDENetworkWepKeyType {
354  enum TDENetworkWepKeyType {
355  Hexadecimal,
356  Ascii,
357  Passphrase
358  };
359 };
360 
361 namespace TDENetworkVLANFlags {
362  enum TDENetworkVLANFlags {
363  None = 0x00000000,
364  ReorderPacketHeaders = 0x00000001,
365  UseGVRP = 0x00000002,
366  LooseBinding = 0x00000004
367  };
368 
369  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkVLANFlags)
370 };
371 
372 namespace TDENetworkWiFiKeyType {
373  enum TDENetworkWiFiKeyType {
374  WEP,
375  DynamicWEP,
376  WPAAdHoc,
377  WPAInfrastructure,
378  WPAEnterprise,
379  Other,
380  Last = Other
381  };
382 };
383 
384 namespace TDENetworkWiFiAuthType {
385  enum TDENetworkWiFiAuthType {
386  Open,
387  Shared,
388  LEAP,
389  Other,
390  Last = Other
391  };
392 };
393 
394 namespace TDENetworkIEEE8021xType {
395  enum TDENetworkIEEE8021xType {
396  None,
397  LEAP,
398  MD5,
399  PAP,
400  CHAP,
401  MSCHAP,
402  MSCHAPV2,
403  Fast,
404  PSK,
405  PAX,
406  SAKE,
407  GPSK,
408  TLS,
409  PEAP,
410  TTLS,
411  SIM,
412  GTC,
413  OTP
414  };
415 };
416 
417 typedef TQValueList<TDENetworkIEEE8021xType::TDENetworkIEEE8021xType> TDENetworkIEEE8021xTypeList;
418 
419 namespace TDENetworkIEEE8021xFastFlags {
420  enum TDENetworkIEEE8021xFastFlags {
421  None = 0x00000000,
422  AllowUnauthenticated = 0x00000001,
423  AllowAuthenticated = 0x00000002
424  };
425 
426  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIEEE8021xFastFlags)
427 };
428 
429 namespace TDENetworkWiFiWPAVersionFlags {
430  enum TDENetworkWiFiWPAVersionFlags {
431  None = 0x00000000,
432  WPA = 0x00000001,
433  RSN = 0x00000002,
434  Any = 0x00000003
435  };
436 
437  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkWiFiWPAVersionFlags)
438 };
439 
440 namespace TDENetworkPasswordHandlingFlags {
441  enum TDENetworkPasswordHandlingFlags {
442  None = 0x00000000,
443  NoSave = 0x00000001,
444  NoPrompt = 0x00000002,
445  ExternalStorage = 0x00000004
446  };
447 
448  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkPasswordHandlingFlags)
449 };
450 
451 namespace TDENetworkConnectionStatus {
452  enum TDENetworkConnectionStatus {
453  None = 0x00000000,
454  Invalid = 0x00000001,
455  Disconnected = 0x00000002,
456  Connected = 0x00000004,
457  LinkUnavailable = 0x00000008,
458  EstablishingLink = 0x00000010,
459  DeactivatingLink = 0x00000020,
460  ConfiguringProtocols = 0x00000040,
461  Reconnecting = 0x00000080,
462  LinkLost = 0x00000100,
463  LinkLocalAccess = 0x00000200,
464  SiteLocalAccess = 0x00000400,
465  GlobalAccess = 0x00000800,
466  UnManaged = 0x00001000,
467  NeedAuthorization = 0x00002000,
468  Failed = 0x00004000,
469  VerifyingProtocols = 0x00008000,
470  DependencyWait = 0x00010000
471  };
472 
473  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkConnectionStatus)
474 };
475 
476 namespace TDENetworkIPConfigurationFlags {
477  enum TDENetworkIPConfigurationFlags {
478  None = 0x00000000,
479  IPV4DHCPIP = 0x00000001,
480  IPV4DHCPDNS = 0x00000002,
481  IPV4DHCPRoutes = 0x00000004,
482  IPV4LocalOnly = 0x00000008,
483  IPV4StartConnectionSharingServer = 0x00000010,
484  IPV4Disabled = 0x00000020,
485  IPV4MayUseAsDefaultRoute = 0x00000040,
486  IPV6DHCPIP = 0x00000080,
487  IPV6DHCPDNS = 0x00000100,
488  IPV6DHCPRoutes = 0x00000200,
489  IPV6LocalOnly = 0x00000400,
490  IPV6StartConnectionSharingServer = 0x00000800,
491  IPV6Disabled = 0x00001000,
492  IPV6MayUseAsDefaultRoute = 0x00002000
493  };
494 
495  CREATE_FLAG_BITWISE_MANIPULATION_FUNCTIONS(TDENetworkIPConfigurationFlags)
496 };
497 
498 class TDECORE_EXPORT TDENetworkSearchDomain
499 {
500  public:
501  TDENetworkSearchDomain();
502  TDENetworkSearchDomain(TQString domain, bool ipv6=false);
503  ~TDENetworkSearchDomain();
504 
505  TQString searchDomain();
506  void setSearchDomain(TQString domain, bool ipv6=false);
507 
508  bool isIPv4();
509  bool isIPv6();
510 
511  private:
512  TQString m_domain;
513  bool m_isIPV6;
514 };
515 
516 typedef TQValueList<TDENetworkSearchDomain> TDENetworkSearchDomainList;
517 
518 class TDECORE_EXPORT TDENetMask
519 {
520  public:
521  TDENetMask();
522  TDENetMask(TQ_UINT32 netmask);
523  TDENetMask(TQ_UINT8* netmask);
524  ~TDENetMask();
525 
526  void fromCIDRMask(unsigned char mask, bool ipv6=false);
527  unsigned char toCIDRMask();
528  void fromString(TQString mask);
529  TQString toString();
530 
531  bool isIPv4();
532  bool isIPv6();
533 
534  private:
535  TQ_UINT32 m_ipv4NetMask;
536  TQHostAddress m_ipv6NetMask;
537  bool m_isIPV6;
538 };
539 
540 class TDECORE_EXPORT TDEMACAddress
541 {
542  public:
543  TDEMACAddress();
544  TDEMACAddress(TDENetworkByteList address);
545  ~TDEMACAddress();
546 
547  TDENetworkByteList address();
548  void setAddress(TDENetworkByteList address);
549  TQString toString();
550  void fromString(TQString address);
551  bool isValid();
552 
553  private:
554  bool m_isValid;
555  TDENetworkByteList m_macAddress;
556 
557  friend bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
558  friend bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
559 };
560 
561 TDECORE_EXPORT bool operator==(const TDEMACAddress &a1, const TDEMACAddress &a2);
562 TDECORE_EXPORT bool operator<(const TDEMACAddress &a1, const TDEMACAddress &a2);
563 
564 typedef TQValueList<TDEMACAddress> TDEMACAddressList;
565 
566 class TDECORE_EXPORT TDENetworkSingleIPConfiguration
567 {
568  public:
569  TDENetworkSingleIPConfiguration();
570  ~TDENetworkSingleIPConfiguration();
571 
572  bool isIPv4();
573  bool isIPv6();
574 
575  public:
576  bool valid;
577  TQHostAddress ipAddress;
578  TDENetMask networkMask;
579  TQHostAddress gateway;
580 };
581 
582 typedef TQValueList<TDENetworkSingleIPConfiguration> TDENetworkSingleIPConfigurationList;
583 
584 class TDECORE_EXPORT TDENetworkSingleRouteConfiguration
585 {
586  public:
587  TDENetworkSingleRouteConfiguration();
588  ~TDENetworkSingleRouteConfiguration();
589 
590  bool isIPv4();
591  bool isIPv6();
592 
593  public:
594  bool valid;
595  TQHostAddress ipAddress;
596  TDENetMask networkMask;
597  TQHostAddress gateway;
598  TQ_UINT32 metric;
599 };
600 
601 typedef TQValueList<TDENetworkSingleRouteConfiguration> TDENetworkSingleRouteConfigurationList;
602 
603 class TDECORE_EXPORT TDENetworkIEEE8021xConfiguration
604 {
605  public:
606  TDENetworkIEEE8021xConfiguration();
607  ~TDENetworkIEEE8021xConfiguration();
608 
609  public:
610  bool valid;
611  bool allowedValid;
612  bool secretsValid;
613  TDENetworkIEEE8021xType::TDENetworkIEEE8021xType type;
614  TQString userName;
615  TQString anonymousUserName;
616  TQString pacFileName;
617  TQByteArray caCertificate;
618  TQString additionalCAFilesPath;
619  TQString authServerCertSubjectMatch;
620  TQStringList alternateAuthServerCertSubjectMatch;
621  TQByteArray clientCertificate;
622  TQString forcePEAPVersion;
623  TQString forcePEAPLabel;
624  TDENetworkIEEE8021xFastFlags::TDENetworkIEEE8021xFastFlags fastProvisioningFlags;
625  TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2NonEAPAuthMethod;
626  TDENetworkIEEE8021xType::TDENetworkIEEE8021xType phase2EAPAuthMethod;
627  TDENetworkIEEE8021xTypeList allowedPhase2NonEAPMethods;
628  TDENetworkIEEE8021xTypeList allowedPhase2EAPMethods;
629  TQByteArray phase2CaCertificate;
630  TQString phase2CaFilesPath;
631  TQString phase2AuthServerCertSubjectMatch;
632  TQStringList phase2AlternateAuthServerCertSubjectMatch;
633  TQByteArray phase2ClientCertificate;
634  TQString password;
635  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
636  TQByteArray binaryPassword;
637  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags binaryPasswordFlags;
638  TQByteArray privateKey;
639  TQString privateKeyPassword;
640  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags privateKeyPasswordFlags;
641  TQByteArray phase2PrivateKey;
642  TQString phase2PrivateKeyPassword;
643  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags phase2PrivateKeyPasswordFlags;
644  bool forceSystemCaCertificates;
645 };
646 
647 class TDECORE_EXPORT TDENetworkPPPConfiguration
648 {
649  public:
650  TDENetworkPPPConfiguration();
651  virtual ~TDENetworkPPPConfiguration();
652 
653  public:
654  bool valid;
655  bool requireServerAuthentication;
656  TDENetworkPPPFlags::TDENetworkPPPFlags flags;
657  TQ_UINT32 baudRate;
658  TQ_UINT32 mru;
659  TQ_UINT32 mtu;
660  TQ_UINT32 lcpEchoPingInterval;
661  TQ_UINT32 lcpEchoFailureThreshold;
662 };
663 
664 class TDECORE_EXPORT TDENetworkPPPOEConfiguration
665 {
666  public:
667  TDENetworkPPPOEConfiguration();
668  virtual ~TDENetworkPPPOEConfiguration();
669 
670  public:
671  bool valid;
672  bool secretsValid;
673  TQString networkServiceProvider;
674  TQString username;
675  TQString password;
676  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
677 };
678 
679 class TDECORE_EXPORT TDENetworkSerialConfiguration
680 {
681  public:
682  TDENetworkSerialConfiguration();
683  virtual ~TDENetworkSerialConfiguration();
684 
685  public:
686  bool valid;
687  TQ_UINT32 baudRate;
688  TQ_UINT32 byteWidth;
689  TDENetworkParity::TDENetworkParity parity;
690  TQ_UINT32 stopBits;
691  TQ_UINT64 txDelay;
692 };
693 
694 class TDECORE_EXPORT TDENetworkCDMAConfiguration
695 {
696  public:
697  TDENetworkCDMAConfiguration();
698  virtual ~TDENetworkCDMAConfiguration();
699 
700  public:
701  bool valid;
702  bool secretsValid;
703  TQString providerDataNumber;
704  TQString username;
705  TQString password;
706  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
707 };
708 
709 class TDECORE_EXPORT TDENetworkGSMConfiguration
710 {
711  public:
712  TDENetworkGSMConfiguration();
713  virtual ~TDENetworkGSMConfiguration();
714 
715  public:
716  bool valid;
717  bool secretsValid;
718  TQString providerDataNumber;
719  TQString username;
720  TQString password;
721  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags passwordFlags;
722  TQString accessPointName;
723  TQString networkID;
724  TDEGSMNetworkType::TDEGSMNetworkType networkType;
725  TQString pin;
726  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pinFlags;
727  TQ_UINT32 allowedFrequencyBands;
728  bool allowRoaming;
729 };
730 
731 
732 class TDENetworkWiFiSecurityConfiguration
733 {
734  public:
735  TDENetworkWiFiSecurityConfiguration();
736  ~TDENetworkWiFiSecurityConfiguration();
737 
738  public:
739  bool valid;
740  bool secretsValid;
741  TDENetworkWiFiKeyType::TDENetworkWiFiKeyType keyType;
742  TDENetworkWiFiAuthType::TDENetworkWiFiAuthType authType;
743  TDENetworkWiFiWPAVersionFlags::TDENetworkWiFiWPAVersionFlags wpaVersion;
744  TDENetworkWiFiConnectionCipher::TDENetworkWiFiConnectionCipher cipher;
745  TQString wepKey0;
746  TQString wepKey1;
747  TQString wepKey2;
748  TQString wepKey3;
749  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags wepKeyFlags;
750  TQ_UINT32 wepKeyIndex;
751  TDENetworkWepKeyType::TDENetworkWepKeyType wepKeyType;
752  TDENetworkWiFiConnectionCipherList allowedPairWiseCiphers;
753  TDENetworkWiFiConnectionCipherList allowedGroupWiseCiphers;
754  TQString psk;
755  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags pskFlags;
756  TQString leapUsername;
757  TQString leapPassword;
758  TDENetworkPasswordHandlingFlags::TDENetworkPasswordHandlingFlags leapPasswordFlags;
759 };
760 
761 class TDECORE_EXPORT TDENetworkIPConfiguration
762 {
763  public:
764  TDENetworkIPConfiguration();
765  ~TDENetworkIPConfiguration();
766 
767  public:
768  bool valid;
769  TDENetworkIPConfigurationFlags::TDENetworkIPConfigurationFlags connectionFlags;
770  TDENetworkSingleIPConfigurationList ipConfigurations;
771  TDENetworkSingleRouteConfigurationList routeConfigurations;
772  TQHostAddress broadcast;
773  TQHostAddress destination;
774  TDENetworkAddressList resolvers;
775  TDENetworkSearchDomainList searchDomains;
776  TQString dhcpClientIdentifier;
777 };
778 
779 class TDECORE_EXPORT TDENetworkWiFiDeviceInfo
780 {
781  public:
782  TDENetworkWiFiDeviceInfo();
783  ~TDENetworkWiFiDeviceInfo();
784 
785  public:
786  bool valid;
787  TDEMACAddress hwAddress;
788  TDEMACAddress permanentHWAddress;
789  TDEWiFiMode::TDEWiFiMode operatingMode;
790  unsigned int bitrate;
791  TDEMACAddress activeAccessPointBSSID;
792  TDENetworkWiFiClientFlags::TDENetworkWiFiClientFlags wirelessFlags;
793 };
794 
795 class TDECORE_EXPORT TDENetworkDeviceInformation
796 {
797  public:
798  TDENetworkDeviceInformation();
799  ~TDENetworkDeviceInformation();
800 
801  public:
802  bool valid;
803  TDENetworkConnectionStatus::TDENetworkConnectionStatus statusFlags;
804  TQString UUID;
805  TQString backendDriver;
806  TQString backendDriverVersion;
807  TQString firmwareVersion;
808  TDENetworkDeviceCapabilityFlags::TDENetworkDeviceCapabilityFlags capabilityFlags;
809  TDENetworkIPConfiguration ipConfiguration;
810  bool managed;
811  bool autoConnect;
812  bool firmwareMissing;
813  TDENetworkDeviceType::TDENetworkDeviceType deviceType;
814  TQString activeConnectionUUID;
815  TDENetworkWiFiDeviceInfo wiFiInfo;
816 };
817 
818 class TDECORE_EXPORT TDENetworkHWNeighbor
819 {
820  public:
821  TDENetworkHWNeighbor();
822  virtual ~TDENetworkHWNeighbor();
823 
824  public:
825  bool valid;
826 };
827 
828 class TDECORE_EXPORT TDENetworkWiFiAPInfo : public TDENetworkHWNeighbor
829 {
830  public:
831  TDENetworkWiFiAPInfo();
832  virtual ~TDENetworkWiFiAPInfo();
833 
834  public:
835  TQString friendlySSID() const;
836 
837  public:
838  TQByteArray SSID;
839  TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags wpaFlags;
840  TDENetworkWiFiAPFlags::TDENetworkWiFiAPFlags rsnFlags;
841  unsigned int frequency;
842  TDEMACAddress BSSID;
843  unsigned int maxBitrate;
844  double signalQuality;
845 };
846 
847 typedef TQPtrList< TDENetworkHWNeighbor > TDENetworkHWNeighborList;
848 
849 class TDECORE_EXPORT TDENetworkConnection
850 {
851  public:
852  TDENetworkConnection();
853  virtual ~TDENetworkConnection();
854 
855  public:
856  TDENetworkConnectionType::TDENetworkConnectionType type();
857 
858  public:
859  TQString UUID;
860  TQString friendlyName;
861  TDENetworkIPConfiguration ipConfig;
862  TDEMACAddress lockedHWAddress;
863  TDEMACAddress manualHWAddress;
864  bool readOnly;
865  bool autoConnect;
866  bool fullDuplex;
867  bool requireIPV4;
868  bool requireIPV6;
869  TQ_UINT32 mtu;
870  TDENetworkIEEE8021xConfiguration eapConfig;
871  TDENetworkPPPConfiguration pppConfig;
872  TDENetworkPPPOEConfiguration pppoeConfig;
873  TDENetworkSerialConfiguration serialConfig;
874  TQStringList authorizedUsers;
875  TQString masterConnectionUUID;
876  TDENetworkSlaveDeviceType::TDENetworkSlaveDeviceType slaveType;
877  TQDateTime lastKnownConnection;
878 };
879 
880 class TDECORE_EXPORT TDEWiredEthernetConnection : public TDENetworkConnection
881 {
882  public:
883  TDEWiredEthernetConnection();
884  virtual ~TDEWiredEthernetConnection();
885 };
886 
887 class TDECORE_EXPORT TDEWiFiConnection : public TDENetworkConnection
888 {
889  public:
890  TDEWiFiConnection();
891  virtual ~TDEWiFiConnection();
892 
893  public:
894  TQByteArray SSID;
895  TDEWiFiMode::TDEWiFiMode operatingMode;
896  TDEWiFiFrequencyBand::TDEWiFiFrequencyBand bandRestriction;
897  TQ_INT32 channelRestriction;
898  TQ_INT32 bitRateRestriction;
899  TQ_INT32 powerRestriction;
900  TDEMACAddress accessPointRestriction;
901  TDEMACAddressList blacklistedBSSIDs;
902  TDEMACAddressList heardBSSIDs;
903  bool isHiddenNetwork;
904  bool securityRequired;
905  TDENetworkWiFiSecurityConfiguration securitySettings;
906 };
907 
908 class TDECORE_EXPORT TDEWiredInfinibandConnection : public TDENetworkConnection
909 {
910  public:
911  TDEWiredInfinibandConnection();
912  virtual ~TDEWiredInfinibandConnection();
913 
914  public:
915  TDENetworkInfinibandTransportMode::TDENetworkInfinibandTransportMode transportMode;
916 };
917 
918 class TDECORE_EXPORT TDEVPNConnection : public TDENetworkConnection
919 {
920  public:
921  TDEVPNConnection();
922  virtual ~TDEVPNConnection();
923 
924  public:
925  TQString vpnPluginID;
926  TQString lockedUserName;
927  TDENetworkSettingsMap pluginData;
928  bool secretsValid;
929  TDENetworkSettingsMap pluginSecrets;
930 };
931 
932 class TDECORE_EXPORT TDEWiMaxConnection : public TDENetworkConnection
933 {
934  public:
935  TDEWiMaxConnection();
936  virtual ~TDEWiMaxConnection();
937 
938  public:
939  TQString networkServiceProvider;
940 };
941 
942 class TDECORE_EXPORT TDEVLANConnection : public TDENetworkConnection
943 {
944  public:
945  TDEVLANConnection();
946  virtual ~TDEVLANConnection();
947 
948  public:
949  TQString kernelName;
950  TQString parentConnectionUUID;
951  TQ_UINT32 vlanID;
952  TDENetworkVLANFlags::TDENetworkVLANFlags vlanFlags;
953  TDENetworkPriorityMap ingressPriorityMap;
954  TDENetworkPriorityMap egressPriorityMap;
955 };
956 
957 class TDECORE_EXPORT TDEOLPCMeshConnection : public TDENetworkConnection
958 {
959  public:
960  TDEOLPCMeshConnection();
961  virtual ~TDEOLPCMeshConnection();
962 
963  public:
964  TQByteArray SSID;
965  TQ_INT32 channel;
966  TQByteArray anycastDHCPHWAddress;
967 };
968 
969 class TDECORE_EXPORT TDEBluetoothConnection : public TDENetworkConnection
970 {
971  public:
972  TDEBluetoothConnection();
973  virtual ~TDEBluetoothConnection();
974 
975  public:
976  TDEBluetoothConnectionType::TDEBluetoothConnectionType type;
977 };
978 
979 class TDECORE_EXPORT TDEModemConnection : public TDENetworkConnection
980 {
981  public:
982  TDEModemConnection();
983  virtual ~TDEModemConnection();
984 
985  public:
986  TDEModemConnectionType::TDEModemConnectionType type;
987  TDENetworkCDMAConfiguration cdmaConfig;
988  TDENetworkGSMConfiguration gsmConfig;
989 };
990 
991 typedef TQPtrList< TDENetworkConnection > TDENetworkConnectionList;
992 
996 class TDENetworkEventQueueEvent_Private
997 {
998  public:
999  int eventType;
1000  TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState;
1001  TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState;
1002  TDENetworkConnectionStatus::TDENetworkConnectionStatus newConnStatus;
1003  TDENetworkConnectionStatus::TDENetworkConnectionStatus previousConnStatus;
1004  TDEMACAddress BSSID;
1005  TQString message;
1006  TQString deviceNode;
1007  TDENetworkAPEventType::TDENetworkAPEventType apevent;
1008  TDENetworkDeviceEventType::TDENetworkDeviceEventType ndevent;
1009  TDENetworkVPNEventType::TDENetworkVPNEventType vpnevent;
1010  TDENetworkGlobalEventType::TDENetworkGlobalEventType globalevent;
1011 };
1012 typedef TQValueList<TDENetworkEventQueueEvent_Private> TDENetworkEventQueueEvent_PrivateList;
1013 
1014 class TQTimer;
1015 
1016 class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject
1017 {
1018  TQ_OBJECT
1019 
1020  public:
1027  TDENetworkConnectionManager(TDENetworkDevice *networkDevice);
1028 
1032  ~TDENetworkConnectionManager();
1033 
1037  virtual TQString backendName() = 0;
1038 
1042  virtual TDENetworkDeviceType::TDENetworkDeviceType deviceType() = 0;
1043 
1047  virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus() = 0;
1048 
1052  virtual TDENetworkDeviceInformation deviceInformation() = 0;
1053 
1062  virtual TDENetworkDeviceInformation deviceStatus() = 0;
1063 
1070  virtual void loadConnectionInformation() = 0;
1071 
1078  virtual void loadConnectionAllowedValues(TDENetworkConnection* connection) = 0;
1079 
1085  virtual bool loadConnectionSecrets(TQString uuid) = 0;
1086 
1092  virtual bool saveConnection(TDENetworkConnection* connection) = 0;
1093 
1099  virtual bool deleteConnection(TQString uuid) = 0;
1100 
1110  virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL) = 0;
1111 
1119  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid) = 0;
1120 
1125  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid) = 0;
1126 
1132  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid) = 0;
1133 
1139  virtual TQStringList validSettings() = 0;
1140 
1150  virtual TDENetworkHWNeighborList* siteSurvey() = 0;
1151 
1158  virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid) = 0;
1159 
1164  virtual TDENetworkVPNTypeList availableVPNTypes() = 0;
1165 
1169  virtual bool networkingEnabled() = 0;
1170 
1175  virtual bool enableNetworking(bool enable) = 0;
1176 
1180  virtual bool wiFiHardwareEnabled() = 0;
1181 
1186  virtual bool enableWiFi(bool enable) = 0;
1187 
1191  virtual bool wiFiEnabled() = 0;
1192 
1197  virtual TQStringList defaultNetworkDevices() = 0;
1198 
1199  signals:
1204  void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
1205 
1212  void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString deviceNode);
1213 
1218  void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
1219 
1225  void networkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
1226 
1232  void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
1233 
1238  void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
1239 
1240  public:
1254  virtual TDENetworkConnectionList* connections();
1255 
1259  TQString deviceNode();
1260 
1264  TQString deviceMACAddress();
1265 
1272  TDENetworkConnection* findConnectionByUUID(TQString uuid);
1273 
1280  TDENetworkDevice* findDeviceByUUID(TQString uuid);
1281 
1288  TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
1289 
1293  static TQString friendlyConnectionTypeName(TDENetworkConnectionType::TDENetworkConnectionType type);
1294 
1298  static bool validateIPAddress(TQHostAddress address);
1299 
1303  static bool validateIPNeworkMask(TQHostAddress netmask);
1304 
1305  protected:
1309  void clearTDENetworkConnectionList();
1310 
1314  void clearTDENetworkHWNeighborList();
1315 
1320  void internalNetworkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState);
1321 
1326  void internalNetworkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TQString deviceNode=TQString::null);
1327 
1332  void internalAccessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
1333 
1338  void internalNetworkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType event, TQString message);
1339 
1344  void internalVpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
1345 
1350  void internalNetworkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
1351 
1352  protected slots:
1353  void emitQueuedSignals();
1354 
1355  protected:
1356  TDENetworkConnectionList* m_connectionList;
1357  TDENetworkHWNeighborList* m_hwNeighborList;
1358  TDENetworkDevice* m_networkDevice;
1359  TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags m_prevConnectionStatus;
1360  TQMap<TQString, TDENetworkConnectionStatus::TDENetworkConnectionStatus> m_prevDeviceStatus;
1361  TQTimer* m_emissionTimer;
1362  TDENetworkEventQueueEvent_PrivateList m_globalEventQueueEventList;
1363 };
1364 
1365 class TDECORE_EXPORT TDEGlobalNetworkManager : public TQObject
1366 {
1367  TQ_OBJECT
1368 
1369  public:
1373  TDEGlobalNetworkManager();
1374 
1378  ~TDEGlobalNetworkManager();
1379 
1383  virtual TQString backendName();
1384 
1388  virtual TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags backendStatus();
1389 
1396  virtual void loadConnectionInformation();
1397 
1404  virtual void loadConnectionAllowedValues(TDENetworkConnection* connection);
1405 
1411  virtual bool loadConnectionSecrets(TQString uuid);
1412 
1418  virtual bool saveConnection(TDENetworkConnection* connection);
1419 
1425  virtual bool deleteConnection(TQString uuid);
1426 
1436  virtual bool verifyConnectionSettings(TDENetworkConnection* connection, TDENetworkConnectionErrorFlags::TDENetworkConnectionErrorFlags* type=NULL, TDENetworkErrorStringMap* reason=NULL);
1437 
1443  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus initiateConnection(TQString uuid);
1444 
1449  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus checkConnectionStatus(TQString uuid);
1450 
1456  virtual TDENetworkConnectionStatus::TDENetworkConnectionStatus deactivateConnection(TQString uuid);
1457 
1463  virtual TQStringList validSettings();
1464 
1474  virtual TDENetworkHWNeighborList* siteSurvey();
1475 
1482  virtual TQStringList connectionPhysicalDeviceUUIDs(TQString uuid);
1483 
1488  virtual TDENetworkVPNTypeList availableVPNTypes();
1489 
1493  virtual bool networkingEnabled();
1494 
1499  virtual bool enableNetworking(bool enable);
1500 
1504  virtual bool wiFiHardwareEnabled();
1505 
1510  virtual bool enableWiFi(bool enable);
1511 
1515  virtual bool wiFiEnabled();
1516 
1521  virtual TQStringList defaultNetworkDevices();
1522 
1523  signals:
1528  void networkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags previousState);
1529 
1536  void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString deviceNode);
1537 
1542  void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
1543 
1549  void vpnEvent(TDENetworkVPNEventType::TDENetworkVPNEventType event, TQString message);
1550 
1555  void networkManagementEvent(TDENetworkGlobalEventType::TDENetworkGlobalEventType event);
1556 
1557  public:
1571  virtual TDENetworkConnectionList* connections();
1572 
1579  TDENetworkConnection* findConnectionByUUID(TQString uuid);
1580 
1587  TDENetworkDevice* findDeviceByUUID(TQString uuid);
1588 
1595  TDENetworkWiFiAPInfo* findAccessPointByBSSID(TDEMACAddress bssid);
1596 
1597  private:
1598  TDENetworkConnectionManager* m_internalConnectionManager;
1599 };
1600 
1601 #endif // _TDENETWORKCONNECTIONS_H
TDENetworkEventQueueEvent_Private
INTERNAL CLASS.
Definition: tdenetworkconnections.h:997
KShell::NoError
@ NoError
Success.
Definition: kshell.h:68

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.9.1
This website is maintained by Timothy Pearson.