1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
// pppstat.hh for bbppp - a ppp connection manager for Blackbox
//
// 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., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// (See the included file COPYING / GPL-2.0)
//
#ifndef __PPPSTAT_HH
#define __PPPSTAT_HH
#include "bbppp.hh"
#include "Timer.hh"
#include <sys/timeb.h>
class ToolWindow;
class PPPStat : public TimeoutHandler
{
public :
PPPStat(ToolWindow *);
virtual ~PPPStat(void);
void checkPPP(void);
void startPPP(void);
void stopPPP(void);
bool getConnected(void)
{
return(connect_status);
}
private:
pid_t execCommand(char *);
bool stillonline(char *);
int get_statistics(char *);
void get_ppp_stats(struct ppp_stats *cur); // ppp_stats record found in <linux/ppp_defs.h>
float calcThruput(timeb&);
BTimer *timer;
void timeout(void);
ToolWindow *bbtool;
bool connect_status;
long starttime;
long currenttime;
long lasttime;
// long waittime; // never used, but leave it here just in case
long ppp_send,ppp_sl; // *sl vars hold previous packet count
long ppp_recv,ppp_rl;
long ppp_sbytes,ppp_rbytes;
long ppp_lastByteTotal; // previous bytecount sum (send+recv)
double lastTimeMil; // used for throughput calculations, granularity of millisecs
int ppp_h;
char *active_interface;
struct stat st;
pid_t stop_child;
pid_t start_child;
int status;
bool switched_on; // to let checkPPP() know whether it should execute the resume command
}
;
#endif /* __PPPSTAT_HH */
|