/*************************************************************************** * 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 #include class TQStringList; 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