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.
272 lines
7.9 KiB
272 lines
7.9 KiB
/***************************************************************************
|
|
* 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
|