/* -*- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _CONNECT_H_ #define _CONNECT_H_ #include #include #include #include #include "kpppconfig.h" #include "pwentry.h" #include "docking.h" #include "loginterm.h" #define MAXLOOPNEST (MAX_SCRIPT_ENTRIES/2) class PPPStats; class ConnectWidget : public TQWidget { Q_OBJECT public: ConnectWidget(TQWidget *parent, const char *name, PPPStats *st); ~ConnectWidget(); public: void set_con_speed_string(); void setMsg(const TQString &); 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(TQTimerEvent *); void closeEvent( TQCloseEvent *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 TQString &); void toggleDebugWindow(); void closeDebugWindow(); void debugPutChar(unsigned char); void startAccounting(); void stopAccounting(); public: TQString myreadbuffer; // we want to keep every thing in order to fish for the // connection speed later on TQPushButton *debug; int main_timer_ID; private: int vmain; int substate; int scriptindex; TQString scriptCommand, scriptArgument; TQStringList *comlist, *arglist; // static const int maxloopnest=(MAX_SCRIPT_ENTRIES/2); int loopnest; int loopstartindex[MAXLOOPNEST]; bool loopend; TQString loopstr[MAXLOOPNEST]; bool semaphore; TQTimer *inittimer; TQTimer *timeout_timer; bool execppp(); void writeline(const TQString &); void checkBuffers(); void setExpect(const TQString &); bool expecting; TQString expectstr; TQString readbuffer; void setScan(const TQString &); TQString scanvar; TQString scanstr; TQString scanbuffer; bool scanning; bool pausing; PWEntry *prompt; LoginTerm *termwindow; int scriptTimeout; TQTimer *pausetimer; TQTimer *if_timer; TQTimer *if_timeout_timer; TQLabel *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 TQString & newdomain); void auto_hostname(); #endif