summaryrefslogtreecommitdiffstats
path: root/src/watools.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/watools.h')
-rw-r--r--src/watools.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/watools.h b/src/watools.h
new file mode 100644
index 0000000..e2088e5
--- /dev/null
+++ b/src/watools.h
@@ -0,0 +1,76 @@
+/***************************************************************************
+ * Copyright (C) 2005 by Pawel Nawrocki *
+ * pnawrocki@interia.pl *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef WATOOLS_H
+#define WATOOLS_H
+
+//maximum number of packets send without any received. When it's exceeded, the connection is considered lost.
+#define WA_TX_THRESHOLD 14
+
+#include <iwlib.h>
+#include <time.h>
+class QStringList;
+
+class WATools
+{
+public:
+ static inline void setInterface( const char* new_ifname ) //sets default (fallback) interface
+ {
+ ifname = (char*)new_ifname;
+ }
+ static inline char* interface() //returns default (fallback) interface
+ {
+ return ifname;
+ }
+ // general interface functions
+ static bool isUp( const char* _ifname = 0 ); //returns current STATUS
+ static bool setUp( bool u, const char* _ifname = 0 ); //bring interface up/down
+ static char* ip( const char* _ifname = 0 ); //returns current IP
+ static int txpackets( const char* _ifname = 0 ); //returns number of packets send via _iface
+ static int rxpackets( const char* _ifname = 0 ); //returns number of packets received via _iface
+
+ // wireless extensions calls
+ static bool isWireless( const char* _ifname ); //returns true if iface is a valid wireless interface
+ static char* essid( const char* _ifname = 0 ); //returns current ESSID
+ static char* ap( const char* _ifname = 0 ); //returns current AP
+ static int quality( const char* _ifname = 0 ); //returns current QUALITY
+ static int txpower( const char* _ifname = 0 ); //returns current TXPOWER
+
+ static bool hasKey( const char* _ifname = 0 ); //returns true if WEP key for the specified interface is set
+
+ static int availableNetworks( const char* _ifname = 0 ); //returns a list of available networks
+
+ // misc functions
+ static bool isConnected( const char* _ifname = 0 ); //returns true if the interface is properly CONFIGURED AND ASSOCIATED
+ static char* kernelModule( const char* _ifname = 0 ); //returns KERNEL MODULE name for the given interface
+ static void cleanup(); //closes open socket etc.
+
+private:
+ static char* ifname;
+ static int iw_socket;
+ static int prev_tx_packets, prev_rx_packets;
+
+ static int getStatistic( const char* statName, const char* _ifname = 0 );
+ static int doRequest( int request, struct ifreq* reqStruct, const char* _ifname = 0 );
+ static int doWirelessRequest( int request, struct iwreq* reqStruct, const char* _ifname = 0 );
+ static int doWirelessStatisticsRequest( iw_statistics* iwStats, const char* _ifname = 0 );
+};
+
+#endif //WATOOLS_H