diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-06 12:36:58 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-06 12:36:58 -0600 |
commit | d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a (patch) | |
tree | e5ce4701bac540038a279b4e208c86390a24ba11 /src/kvpncconfig.h | |
download | kvpnc-d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a.tar.gz kvpnc-d08a0ede1d2cb15bb14b0ff75eacf5c682b1fa0a.zip |
Initial import of year-and-a-half-old upstream version 0.9.6a
Diffstat (limited to 'src/kvpncconfig.h')
-rw-r--r-- | src/kvpncconfig.h | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/src/kvpncconfig.h b/src/kvpncconfig.h new file mode 100644 index 0000000..4ea2ddd --- /dev/null +++ b/src/kvpncconfig.h @@ -0,0 +1,271 @@ +/*************************************************************************** + * Copyright (C) 2004 by Christoph Thielecke * + * crissi99@gmx.de * + * * + * 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., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef __KVPNCCONFIG_H__ +#define __KVPNCCONFIG_H__ + +//BEGIN INCLUDES +#include <qobject.h> +#include <qptrlist.h> +#include <qstring.h> +#include <qapplication.h> +#include <qcolor.h> +#include <qpoint.h> +#include <qsize.h> +#include <qfile.h> +#include <qtextstream.h> +#include <qtextedit.h> +#include <qcolor.h> +#include <qstringlist.h> +#include <kconfig.h> +#include <kwallet.h> +#include <kstatusbar.h> + +#include "toolinfo.h" +#include "vpnaccountdata.h" + +// ID for statusbar +#define ID_STATUS_MSG 1 +#define ID_CONNECTION_MSG 2 +#define ID_FLASH_MSG 3 +//END INCLUDES + +/** +This class holds global configuration data. +@author Christoph Thielecke <crissi99@gmx.de> +*/ +class KVpncConfig : public QObject +{ +public: + KVpncConfig(QWidget *parent,KStatusBar *statusbar); + ~KVpncConfig(); + +public: + enum ConnectionStatus {disconnected=0, connecting=1, connected=2}; + enum LogType {info=0, remote=1, error=2, success=3, debug=4}; + + QString pathToVpnc; + QString pathToCiscoVpnc; + QString pathToRacoon; + QString pathToRacoonctl; + QString pathToSetkey; + QString pathToIptables; + QString pathToOpenssl; + QString pathToIpsec; + QString pathToPppd; + QString pathToPptp; + QString pathToL2tpd; + QString pathToXl2tpd; + QString pathToOpenl2tp; + QString pathToKill; + QString pathToKillall; + QString pathToPing; + QString pathToOpenvpn; + QString pathToIp; + QString pathToIfconfig; + QString pathToRoute; + QString pathToNetstat; + QString pathToPkcs11Tool; + QString pathToVtund; + QString pathToCiscoCertMgr; + QString pathToTail; + QString pathToSsh; + QString pathToKsshAskpass; + QString pathToGnomeSshAskpass; + QString AutoConnectProfile; + QString RacoonDebugLevel; + QString Vpnc_pid_file; + QString Pppd_pid_file; + QString lastProfile; + QString logfileName; + QString InterpreterShell; + + QString TmpPassword; //< from enter password dialog + QString TmpGroupPassword; //< from enter password dialog + QString TmpUsername; //< from enter password dialog + QString TmpPrivKeyPassStr; + QString TmpGatewayIP; + QString TmpXauthInterPasscode; //< from Xauth interactive passcode dialog + QString TmpPrivateKeyPass; + QString TmpHttpProxyPassword; + QString DnsDevice; //< device which the dns entry was added + + QString OldDefaultGw; //< default gw before connect + QString OldDefaultDev; //< default gw dev before connect + + QString NewDefaultGw; + + QStringList PlutoDebug; + QStringList KlipsDebug; + + bool minimizeAfterConnect; + bool showDebugConsole; + bool writeLogFile; + bool useDefaultPaths; + bool useSilentQuit; + bool holdGeneratedScripts; + bool programsInPath; + bool enableDebugPppd; + bool enableDebugPptpd; + bool enableDebugL2tpd; + bool enableDebugXl2tpd; + bool enableDebugOpenl2tp; + + bool enableDebugXl2tpdNetwork; + bool enableDebugXl2tpdpacket; + bool enableDebugXl2tpdstate; + bool enableDebugXl2tpdtunnel; + + bool enableFreeswanVerbose; + bool enableDebugOpenvpn; + bool useColorizedLogOutput; + bool showInterfaceIPinTooltip; + bool dontQuitOnCloseEvent; + bool doAutoConnectAtStartup; + bool useKwallet; + bool showStatusBar; + bool showToolBar; + bool hideMainWindow; + bool PppdDebugLevel; + bool firstUseOfKwallet; //< for importing passwords if there are stored before + bool shutdownIsCalled; + bool haveUserData; //< flag if user data already collected, set after data is entered and unset if authretry + bool skipKwalletStoring; //< true if save should skip saving into kwallet + bool hideOnCloseInfo; + bool feedbackMailSent; + bool doKillL2tpdIfStillRunning; //< kill l2tpd if its still running and not started from kvpnc + bool doKillXl2tpdIfStillRunning; //< kill xl2tpd if its still running and not started from kvpnc + bool doKillRacoonIfStillRunning; //< kill racoon if its still running and not started from kvpnc + bool showConnectionTimeInTooltip; //< True if the connection duration should be shown in kicker tooltip + bool WaitingForXauth; //< if waiting for xauth is set to true, needed to detect wrong xautn data on strongswan + bool prefDlgOpen; //< if true prefDlgOpen is open + + bool OpenvpnNeedSecurityParameter; + + int VpncDebugLevel; + int KvpncDebugLevel; + int OpenvpnDebugLevel; + int PptpLogLevel; + int PppdKernelLogLevel; + int SshDebugLevel; + int LogViewerFontSize; + int mainwindow_pos_x; + int mainwindow_pos_y; + int mainwindow_height; + int mainwindow_width; + int connectSleepDelay; //< time beetween retry + int connectSleepRetry; //< count of retries + int tryConnectTimeout; //< timeout in at connecting + int connectionStartTime; + int runningCheckCounter; + int runningCheckTimeout; + int OpenvpnManagementPort; + int AuthRetryCount; //< count of autn retry + int maxConnectRetry; // max connect tries + int currentConnectRetry; + + QPtrList<ToolInfo> *ToolList; + QPtrList<VpnAccountData> *AccountList; + VpnAccountData *currentProfile; + + QColor InfoLogColor; + QColor RemoteLogColor; + QColor ErrorLogColor; + QColor SuccessLogColor; + QColor DebugLogColor; + QColor DebugBackgroundcolor; + + QApplication *appPointer; + QPoint pos; + ConnectionStatus status; + QFile logfile; + QTextStream logFileStream; + QTextEdit *LogOutput; + KWallet::Wallet *wallet; + KConfig* config; //< configuration data + + QPoint WindowPos; + QSize WindowSize; + + struct IpsecImportSection { + QString SectionName; + QStringList SectionData; + }; + + QPtrList<VpnAccountData> *ImportedAccountList; + + QWidget *parent; + KStatusBar *statusbar; + + /** + * Appends a log enty to debug console and log file + * @param msg the text to append + * @param type the type of the msg (info, debug, error, etc) + */ + void appendLogEntry( QString msg, LogType type ); + + /** + * Sets the output textedit for debug output + * @param LogOutput + */ + void setLogOutput(QTextEdit *LogOutput); + + /** + * save configuration + */ + void saveOptions(bool saveOneProfile=false, QString Profile="" ); + + /** + * load configuration + */ + void loadOptions(); + + /** + * check the value of the paths + */ + void checkStandardPathValues(); + + /** + * collects the information of the external helper programs + */ + void getToolsInfo(); + + + /** + * removes a entry from configuration file + * @param Name the entry which should be removed + */ + void removeEntry(QString Name); + + VpnAccountData* findProfile(QPtrList<VpnAccountData> *list,const QString& Name); + QString removeWhiteSpaceAtBegin(const QString); + + void slotStatusMsg( const QString &text, int id = ID_STATUS_MSG ); + void doBackupConfig(); + void restoreBackupConfig(); + + bool exportKvpncConfig(QString filename); + bool importKvpncConfig(QString filename, QString& Name, bool& openProfileManager); //< true if profiles imported + + bool importIpsecConfig(QString filename, QString& Name, bool& openProfileManager); + bool importFritzboxConfig(QString filename, QString& Name, bool& openProfileManager); + +}; + +#endif |