diff options
Diffstat (limited to 'kppp/pppdata.h')
-rw-r--r-- | kppp/pppdata.h | 513 |
1 files changed, 513 insertions, 0 deletions
diff --git a/kppp/pppdata.h b/kppp/pppdata.h new file mode 100644 index 00000000..d9a77ae7 --- /dev/null +++ b/kppp/pppdata.h @@ -0,0 +1,513 @@ +/* -*- C++ -*- + * + * kPPP: A pppd front end for the KDE project + * + * $Id$ + * + * Copyright (C) 1997 Bernd Johannes Wuebben + * + * 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 _PPPDATA_H_ +#define _PPPDATA_H_ + +#include <unistd.h> +#include <sys/types.h> + +#include <qstring.h> +#include <qstringlist.h> +#include <qcolor.h> + +#include "kpppconfig.h" + +class KConfig; + +// 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 + QString readConfig(const QString &, const QString &, const QString &); + int readNumConfig(const QString &, const QString &, int); + bool readListConfig(const QString &, const QString &, + QStringList &, char sep = ','); + void writeConfig(const QString &, const QString &, const QString &); + void writeConfig(const QString &, const QString &, int); + void writeListConfig(const QString &, const QString &, + QStringList &, char sep = ','); + + // return the current account group + QString currentAccountGroup() { return caccountgroup; } + // return the current modem group + QString currentModemGroup() { return cmodemgroup; } + + // functions to set/get general kppp info + QString password() const; + void setPassword(const QString &); + + const QString defaultAccount(); + void setDefaultAccount(const QString &); + + const QString defaultModem(); + void setDefaultModem(const QString &); + + 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 QString enter(); + void setEnter(const QString &); + + QString 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 QString &); + bool setModemByIndex(int); + + bool isUniqueModname(const QString &); + + bool deleteModem(); + bool deleteModem(const QString &); + int newmodem(); + int copymodem(int i); + + const QString modname(); + void setModname(const QString &); + + + int busyWait(); + void setbusyWait(int); + + bool modemLockFile(); + void setModemLockFile(bool set); + + int modemEscapeGuardTime(); + void setModemEscapeGuardTime(int i); + + void setModemEscapeStr(const QString &); + const QString modemEscapeStr(); + + void setModemEscapeResp(const QString &); + const QString modemEscapeResp(); + + const QString modemDevice(); + void setModemDevice(const QString &); + + QString flowcontrol(); + void setFlowcontrol(const QString &); + + int modemTimeout(); + void setModemTimeout(int); + + int modemToneDuration(); + void setModemToneDuration(int); + + QString volumeInitString(); + int volume(); + void setVolume(int); + + int waitForDialTone(); + void setWaitForDialTone(int i); + + // modem command strings/responses + const QString modemInitStr(int i); + void setModemInitStr(int i, const QString &); + + const QString modemInitResp(); + void setModemInitResp(const QString &); + + int modemPreInitDelay(); + void setModemPreInitDelay(int); + + int modemInitDelay(); + void setModemInitDelay(int); + + QString modemNoDialToneDetectionStr(); + void setModemNoDialToneDetectionStr(const QString &); + + const QString modemDialStr(); + void setModemDialStr(const QString &); + + const QString modemConnectResp(); + void setModemConnectResp(const QString &); + + const QString modemBusyResp(); + void setModemBusyResp(const QString &); + + const QString modemNoCarrierResp(); + void setModemNoCarrierResp(const QString &); + + const QString modemNoDialtoneResp(); + void setModemNoDialtoneResp(const QString &); + + const QString modemHangupStr(); + void setModemHangupStr(const QString &); + + const QString modemHangupResp(); + void setModemHangupResp(const QString &); + + QString modemDLPResp(); + void setModemDLPResp(const QString &); + + const QString modemAnswerStr(); + void setModemAnswerStr(const QString &); + + const QString modemRingResp(); + void setModemRingResp(const QString &); + + const QString modemAnswerResp(); + void setModemAnswerResp(const QString &); + + QString volumeOff(); + void setVolumeOff(const QString &); + + QString volumeMedium(); + void setVolumeMedium(const QString &); + + QString volumeHigh(); + void setVolumeHigh(const QString &); + +#if 0 + void setUseCDLine(const int n); + int UseCDLine(); +#endif + + // functions to set/get account information + int accountCount() const; + bool setAccount(const QString &); + bool setAccountByIndex(int); + + bool isUniqueAccname(const QString &); + + bool deleteAccount(); + bool deleteAccount(const QString &); + int newaccount(); + int copyaccount(int i); + + const QString accname(); + void setAccname(const QString &); + + QStringList &phonenumbers(); + const QString phonenumber(); + void setPhonenumber(const QString &); + + const QString dialPrefix(); + void setDialPrefix(const QString &); + + int authMethod(); + void setAuthMethod(int); + + const QString storedUsername(); + void setStoredUsername(const QString &); + + const QString storedPassword(); + void setStoredPassword(const QString &); + + bool storePassword(); + void setStorePassword(bool); + + int callbackType(); + void setCallbackType(int); + + QString callbackPhone(); + void setCallbackPhone(const QString &); + + bool waitCallback(); + void setWaitCallback(bool); + + const QString speed(); + void setSpeed(const QString &); + + const QString command_before_connect(); + void setCommand_before_connect(const QString &); + + const QString command_on_connect(); + void setCommand_on_connect(const QString &); + + const QString command_on_disconnect(); + void setCommand_on_disconnect(const QString &); + + const QString command_before_disconnect(); + void setCommand_before_disconnect(const QString &); + + const QString ipaddr(); + void setIpaddr(const QString &); + + const QString subnetmask(); + void setSubnetmask(const QString &); + + 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 QString gateway(); + void setGateway(const QString &); + + bool defaultroute(); + void setDefaultroute(bool set); + + QStringList &dns(); + void setDns(QStringList &); + + const QString domain(); + void setDomain(const QString &); + + QStringList &scriptType(); + void setScriptType(QStringList &); + + QStringList &script(); + void setScript(QStringList &); + + QStringList &pppdArgument(); + void setpppdArgumentDefaults(); + void setpppdArgument(QStringList &); + + //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 QString accountingFile(); + void setAccountingFile(const QString &); + + const QString totalCosts(); + void setTotalCosts(const QString &); + + int totalBytes(); + void setTotalBytes(int); + + // graphing widget + void setGraphingOptions(bool enabled, + QColor bg, + QColor text, + QColor in, + QColor out); + void graphingOptions(bool &enabled, + QColor &bg, + QColor &text, + QColor &in, + QColor &out); + bool graphingEnabled(); + + // window positions + void winPosConWin(int &, int &); + void setWinPosConWin(int, int); + void winPosStatWin(int &, int &); + void setWinPosStatWin(int, int); + +private: + QString passwd; + KConfig* 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 + QString cmodemgroup; // name of current modem group + QString 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 + + QStringList phonelist; +}; + +extern PPPData gpppdata; + +#endif |