/* * * 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 _PPPDATA_H_ #define _PPPDATA_H_ #include #include #include #include #include #include "kpppconfig.h" class TDEConfig; // string lengths #define PATH_SIZE 120 #define MODEMSTR_SIZE 80 #define ACCNAME_SIZE 50 #define PHONENUMBER_SIZE 60 #define COMMAND_SIZE 255 #define IPADDR_SIZE 15 #define DOMAIN_SIZE 50 #define TIMEOUT_SIZE 60 // // keys for config file // // groups #define GENERAL_GRP "General" #define MODEM_GRP "Modem" #define ACCOUNT_GRP "Account" #define GRAPH_GRP "Graph" #define WINPOS_GRP "WindowPosition" // general #define DEFAULTACCOUNT_KEY "DefaultAccount" #define DEFAULTMODEM_KEY "DefaultModem" #define PPPDVERSION_KEY "pppdVersion" #define PPPDTIMEOUT_KEY "pppdTimeout" #define SHOWCLOCK_KEY "ShowClock" #define SHOWLOGWIN_KEY "ShowLogWindow" #define AUTOREDIAL_KEY "AutomaticRedial" #define DISCONNECT_KEY "DisconnectOnXServerExit" #define QUITONDISCONNECT_KEY "QuitOnDisconnect" #define NUMACCOUNTS_KEY "NumberOfAccounts" #define NUMMODEMS_KEY "NumberOfModems" #define REDIALONNOCARR_KEY "RedialOnNoCarrier" #define ID_KEY "ID" // modem #define MOD_NAME_KEY "Name" #define MODEMDEV_KEY "Device" #define LOCKFILE_KEY "UseLockFile" #define FLOWCONTROL_KEY "FlowControl" #define SPEED_KEY "Speed" #define TIMEOUT_KEY "Timeout" #define TONEDURATION_KEY "ToneDuration" #define BUSYWAIT_KEY "BusyWait" #define INITSTR_KEY "InitString" #define INITRESP_KEY "InitResponse" #define PREINITDELAY_KEY "PreInitDelay" #define INITDELAY_KEY "InitDelay" #define NODTDETECT_KEY "NoDialToneDetection" #define DIALTONEWAIT_KEY "WaitForDialTone" #define DIALSTR_KEY "DialString" #define CONNECTRESP_KEY "ConnectResponse" #define BUSYRESP_KEY "BusyResponse" #define NOCARRIERRESP_KEY "NoCarrierResponse" #define NODIALTONERESP_KEY "NoDialToneResp" #define HANGUPSTR_KEY "HangupString" #define HANGUPRESP_KEY "HangUpResponse" #define DLPRESP_KEY "DLPResponse" #define ANSWERSTR_KEY "AnswerString" #define RINGRESP_KEY "RingResponse" #define ANSWERRESP_KEY "AnswerResponse" #define ENTER_KEY "Enter" #define ESCAPESTR_KEY "EscapeString" #define ESCAPERESP_KEY "EscapeResponse" #define ESCAPEGUARDTIME_KEY "EscapeGuardTime" #define USECDLINE_KEY "UseCDLine" #define VOLUME_HIGH "VolumeHigh" #define VOLUME_MEDIUM "VolumeMedium" #define VOLUME_OFF "VolumeOff" #define VOLUME_KEY "Volume" // account #define ACC_NAME_KEY "Name" #define PHONENUMBER_KEY "Phonenumber" #define DIAL_PREFIX_KEY "DialPrefix" #define AUTH_KEY "Authentication" #define STORED_PASSWORD_KEY "Password" #define STORED_USERNAME_KEY "Username" #define STORE_PASSWORD_KEY "StorePassword" #define CALLBACK_TYPE_KEY "CallbackType" #define CALLBACK_PHONE_KEY "CallbackPhone" #define BEFORE_CONNECT_KEY "BeforeConnect" #define COMMAND_KEY "Command" #define DISCONNECT_COMMAND_KEY "DisconnectCommand" #define BEFORE_DISCONNECT_KEY "BeforeDisconnect" #define IPADDR_KEY "IPAddr" #define SUBNETMASK_KEY "SubnetMask" #define ACCTENABLED_KEY "AccountingEnabled" #define VOLACCTENABLED_KEY "VolumeAccountingEnabled" #define ACCTFILE_KEY "AccountingFile" #define AUTONAME_KEY "AutoName" #define GATEWAY_KEY "Gateway" #define DEFAULTROUTE_KEY "DefaultRoute" #define DOMAIN_KEY "Domain" #define DNS_KEY "DNS" #define AUTODNS_KEY "AutoDNS" #define EXDNSDISABLED_KEY "ExDNSDisabled" #define SCRIPTCOM_KEY "ScriptCommands" #define SCRIPTARG_KEY "ScriptArguments" #define PPPDARG_KEY "pppdArguments" #define PPP_DEBUG_OPTION "PPPDebug" #define ICONIFY_ON_CONNECT_KEY "iconifyOnConnect" #define DOCKING_KEY "DockIntoPanel" #define TOTALCOSTS_KEY "TotalCosts" #define TOTALBYTES_KEY "TotalBytes" // graph colors #define GENABLED "Enabled" #define GCOLOR_BG "Background" #define GCOLOR_TEXT "Text" #define GCOLOR_IN "InBytes" #define GCOLOR_OUT "OutBytes" // pppd errors #define E_IF_TIMEOUT 1 #define E_PPPD_DIED 2 #define E_CBCP_WAIT 14 // window position #define WINPOS_CONWIN_X "WindowPositionConWinX" #define WINPOS_CONWIN_Y "WindowPositionConWinY" #define WINPOS_STATWIN_X "WindowPositionStatWinX" #define WINPOS_STATWIN_Y "WindowPositionStatWinY" class PPPData { public: PPPData(); ~PPPData() {}; enum { NumInitStrings = 2 }; // general functions bool open(); void save(); void cancel(); int access() const; // read/write access // function to read/write date to configuration file TQString readConfig(const TQString &, const TQString &, const TQString &); int readNumConfig(const TQString &, const TQString &, int); bool readListConfig(const TQString &, const TQString &, TQStringList &, char sep = ','); void writeConfig(const TQString &, const TQString &, const TQString &); void writeConfig(const TQString &, const TQString &, int); void writeListConfig(const TQString &, const TQString &, TQStringList &, char sep = ','); // return the current account group TQString currentAccountGroup() { return caccountgroup; } // return the current modem group TQString currentModemGroup() { return cmodemgroup; } // functions to set/get general kppp info TQString password() const; void setPassword(const TQString &); const TQString defaultAccount(); void setDefaultAccount(const TQString &); const TQString defaultModem(); void setDefaultModem(const TQString &); void set_xserver_exit_disconnect(bool set); bool get_xserver_exit_disconnect(); void set_redial_on_nocarrier(bool set); bool get_redial_on_nocarrier(); void setPPPDebug(bool set); bool getPPPDebug(); void set_quit_on_disconnect(bool); bool quit_on_disconnect(); void set_show_clock_on_caption(bool set); bool get_show_clock_on_caption(); void set_show_log_window(bool set); bool get_show_log_window(); void set_automatic_redial(bool set); bool automatic_redial(); void set_iconify_on_connect(bool set); bool get_iconify_on_connect(); void set_dock_into_panel(bool set); bool get_dock_into_panel(); const TQString enter(); void setEnter(const TQString &); TQString pppdVersion(); bool pppdVersionMin(int ver, int mod, int patch); int pppdTimeout(); void setpppdTimeout(int); // functions to set/get account information int modemCount() const; bool setModem(const TQString &); bool setModemByIndex(int); bool isUniqueModname(const TQString &); bool deleteModem(); bool deleteModem(const TQString &); int newmodem(); int copymodem(int i); const TQString modname(); void setModname(const TQString &); int busyWait(); void setbusyWait(int); bool modemLockFile(); void setModemLockFile(bool set); int modemEscapeGuardTime(); void setModemEscapeGuardTime(int i); void setModemEscapeStr(const TQString &); const TQString modemEscapeStr(); void setModemEscapeResp(const TQString &); const TQString modemEscapeResp(); const TQString modemDevice(); void setModemDevice(const TQString &); TQString flowcontrol(); void setFlowcontrol(const TQString &); int modemTimeout(); void setModemTimeout(int); int modemToneDuration(); void setModemToneDuration(int); TQString volumeInitString(); int volume(); void setVolume(int); int waitForDialTone(); void setWaitForDialTone(int i); // modem command strings/responses const TQString modemInitStr(int i); void setModemInitStr(int i, const TQString &); const TQString modemInitResp(); void setModemInitResp(const TQString &); int modemPreInitDelay(); void setModemPreInitDelay(int); int modemInitDelay(); void setModemInitDelay(int); TQString modemNoDialToneDetectionStr(); void setModemNoDialToneDetectionStr(const TQString &); const TQString modemDialStr(); void setModemDialStr(const TQString &); const TQString modemConnectResp(); void setModemConnectResp(const TQString &); const TQString modemBusyResp(); void setModemBusyResp(const TQString &); const TQString modemNoCarrierResp(); void setModemNoCarrierResp(const TQString &); const TQString modemNoDialtoneResp(); void setModemNoDialtoneResp(const TQString &); const TQString modemHangupStr(); void setModemHangupStr(const TQString &); const TQString modemHangupResp(); void setModemHangupResp(const TQString &); TQString modemDLPResp(); void setModemDLPResp(const TQString &); const TQString modemAnswerStr(); void setModemAnswerStr(const TQString &); const TQString modemRingResp(); void setModemRingResp(const TQString &); const TQString modemAnswerResp(); void setModemAnswerResp(const TQString &); TQString volumeOff(); void setVolumeOff(const TQString &); TQString volumeMedium(); void setVolumeMedium(const TQString &); TQString volumeHigh(); void setVolumeHigh(const TQString &); #if 0 void setUseCDLine(const int n); int UseCDLine(); #endif // functions to set/get account information int accountCount() const; bool setAccount(const TQString &); bool setAccountByIndex(int); bool isUniqueAccname(const TQString &); bool deleteAccount(); bool deleteAccount(const TQString &); int newaccount(); int copyaccount(int i); const TQString accname(); void setAccname(const TQString &); TQStringList &phonenumbers(); const TQString phonenumber(); void setPhonenumber(const TQString &); const TQString dialPrefix(); void setDialPrefix(const TQString &); int authMethod(); void setAuthMethod(int); const TQString storedUsername(); void setStoredUsername(const TQString &); const TQString storedPassword(); void setStoredPassword(const TQString &); bool storePassword(); void setStorePassword(bool); int callbackType(); void setCallbackType(int); TQString callbackPhone(); void setCallbackPhone(const TQString &); bool waitCallback(); void setWaitCallback(bool); const TQString speed(); void setSpeed(const TQString &); const TQString command_before_connect(); void setCommand_before_connect(const TQString &); const TQString command_on_connect(); void setCommand_on_connect(const TQString &); const TQString command_on_disconnect(); void setCommand_on_disconnect(const TQString &); const TQString command_before_disconnect(); void setCommand_before_disconnect(const TQString &); const TQString ipaddr(); void setIpaddr(const TQString &); const TQString subnetmask(); void setSubnetmask(const TQString &); bool AcctEnabled(); void setAcctEnabled(bool set); int VolAcctEnabled(); void setVolAcctEnabled(int set); bool autoDNS(); void setAutoDNS(bool set); bool exDNSDisabled(); void setExDNSDisabled(bool set); bool autoname(); void setAutoname(bool set); const TQString gateway(); void setGateway(const TQString &); bool defaultroute(); void setDefaultroute(bool set); TQStringList &dns(); void setDns(TQStringList &); const TQString domain(); void setDomain(const TQString &); TQStringList &scriptType(); void setScriptType(TQStringList &); TQStringList &script(); void setScript(TQStringList &); TQStringList &pppdArgument(); void setpppdArgumentDefaults(); void setpppdArgument(TQStringList &); //functions to change/set the child pppd process info bool pppdRunning() const; void setpppdRunning(bool set); int pppdError() const; void setpppdError(int err); // functions to set/query the accounting info const TQString accountingFile(); void setAccountingFile(const TQString &); const TQString totalCosts(); void setTotalCosts(const TQString &); int totalBytes(); void setTotalBytes(int); // graphing widget void setGraphingOptions(bool enabled, TQColor bg, TQColor text, TQColor in, TQColor out); void graphingOptions(bool &enabled, TQColor &bg, TQColor &text, TQColor &in, TQColor &out); bool graphingEnabled(); // window positions void winPosConWin(int &, int &); void setWinPosConWin(int, int); void winPosStatWin(int &, int &); void setWinPosStatWin(int, int); private: TQString passwd; TDEConfig* config; // configuration object int accounthighcount; // index of highest account int caccount; // index of the current account int modemhighcount; // index of highest modem int cmodem; // index of the current modem TQString cmodemgroup; // name of current modem group TQString caccountgroup; // name of current account group pid_t suidprocessid; // process ID of setuid child bool pppdisrunning; // pppd process // daemon int pppderror; // error encounterd running pppd int pppdVer, pppdMod, pppdPatch; // pppd version bool waitcallback; // callback waiting flag TQStringList phonelist; }; extern PPPData gpppdata; #endif