You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
3.5 KiB
158 lines
3.5 KiB
/* -*- C++ -*-
|
|
*
|
|
* kPPP: A pppd front end for the KDE project
|
|
*
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 1997 Bernd Johannes Wuebben
|
|
* wuebben@math.cornell.edu
|
|
*
|
|
* based on EzPPP:
|
|
* Copyright (C) 1997 Jay Painter
|
|
*
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library 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
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public
|
|
* License along with this program; if not, write to the Free
|
|
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef _CONNECT_H_
|
|
#define _CONNECT_H_
|
|
|
|
#include <qtimer.h>
|
|
#include <kpushbutton.h>
|
|
#include <qlabel.h>
|
|
#include <qevent.h>
|
|
|
|
#include "kpppconfig.h"
|
|
#include "pwentry.h"
|
|
#include "docking.h"
|
|
#include "loginterm.h"
|
|
|
|
#define MAXLOOPNEST (MAX_SCRIPT_ENTRIES/2)
|
|
|
|
class PPPStats;
|
|
|
|
class ConnectWidget : public QWidget {
|
|
Q_OBJECT
|
|
public:
|
|
ConnectWidget(QWidget *parent, const char *name, PPPStats *st);
|
|
~ConnectWidget();
|
|
|
|
public:
|
|
void set_con_speed_string();
|
|
void setMsg(const QString &);
|
|
void pppdDied();
|
|
|
|
// these are only necessary to prevent the user from clicking in the cancel
|
|
// button during the disconnect delay in KPPPWidget
|
|
void disableButtons();
|
|
void enableButtons();
|
|
|
|
protected:
|
|
void timerEvent(QTimerEvent *);
|
|
void closeEvent( QCloseEvent *e );
|
|
|
|
private slots:
|
|
void readChar(unsigned char);
|
|
void pause();
|
|
void if_waiting_slot();
|
|
|
|
public slots:
|
|
void init();
|
|
void preinit();
|
|
void script_timed_out();
|
|
void if_waiting_timed_out();
|
|
void cancelbutton();
|
|
|
|
signals:
|
|
void if_waiting_signal();
|
|
void debugMessage(const QString &);
|
|
void toggleDebugWindow();
|
|
void closeDebugWindow();
|
|
void debugPutChar(unsigned char);
|
|
void startAccounting();
|
|
void stopAccounting();
|
|
|
|
public:
|
|
QString myreadbuffer; // we want to keep every thing in order to fish for the
|
|
|
|
// connection speed later on
|
|
QPushButton *debug;
|
|
int main_timer_ID;
|
|
|
|
private:
|
|
int vmain;
|
|
int substate;
|
|
int scriptindex;
|
|
QString scriptCommand, scriptArgument;
|
|
QStringList *comlist, *arglist;
|
|
|
|
// static const int maxloopnest=(MAX_SCRIPT_ENTRIES/2);
|
|
int loopnest;
|
|
int loopstartindex[MAXLOOPNEST];
|
|
bool loopend;
|
|
QString loopstr[MAXLOOPNEST];
|
|
|
|
bool semaphore;
|
|
QTimer *inittimer;
|
|
|
|
QTimer *timeout_timer;
|
|
bool execppp();
|
|
void writeline(const QString &);
|
|
void checkBuffers();
|
|
|
|
void setExpect(const QString &);
|
|
bool expecting;
|
|
QString expectstr;
|
|
|
|
QString readbuffer;
|
|
|
|
void setScan(const QString &);
|
|
QString scanvar;
|
|
QString scanstr;
|
|
QString scanbuffer;
|
|
bool scanning;
|
|
|
|
bool pausing;
|
|
PWEntry *prompt;
|
|
LoginTerm *termwindow;
|
|
|
|
int scriptTimeout;
|
|
QTimer *pausetimer;
|
|
QTimer *if_timer;
|
|
QTimer *if_timeout_timer;
|
|
|
|
QLabel *messg;
|
|
KPushButton *cancel;
|
|
|
|
bool firstrunID;
|
|
bool firstrunPW;
|
|
|
|
unsigned int dialnumber; // the current number to dial
|
|
|
|
PPPStats *stats;
|
|
};
|
|
|
|
|
|
// non-member function to kill&wait on the pppd child process
|
|
extern void killppp();
|
|
void adddns();
|
|
void addpeerdns();
|
|
void removedns();
|
|
void add_domain(const QString & newdomain);
|
|
void auto_hostname();
|
|
|
|
#endif
|
|
|