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.
knmap/src/compoundwidget.cpp

683 lines
34 KiB

/***************************************************************************
* *
* Copyright (C) 2005, 2006 by Kevin Gilbert *
* kev.gilbert@cdu.edu.au *
* *
* 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. *
* *
***************************************************************************/
#include <ntqcheckbox.h>
#include <ntqiconset.h>
#include <ntqlabel.h>
#include <ntqlayout.h>
#include <ntqlineedit.h>
#include <ntqpushbutton.h>
#include <ntqspinbox.h>
#include <tdeconfig.h>
#include <kdebug.h>
#include <tdeglobal.h>
#include <kiconloader.h>
#include <tdelocale.h>
#include <tdemessagebox.h>
#include "compoundwidget.h"
#include "knmap.h"
#include "whatsthis.h"
// constructor
// ===========
CompoundWidget::CompoundWidget( TQWidget* parent, const char* name )
: TQWidget( parent, name )
{ createLayout( );
}
// createLayout
// ============
void CompoundWidget::createLayout( )
{ TQGridLayout* gridLayout = new TQGridLayout( this );
TDEIconLoader* iconLoader = TDEGlobal::iconLoader( );
TQIconSet clearLeftIconSet = iconLoader->loadIconSet( "clear_left", TDEIcon::Small );
TQIconSet fileOpenIconSet = iconLoader->loadIconSet( "fileopen", TDEIcon::Small );
m_decoyButton = new TQPushButton( clearLeftIconSet, NULL, this, "target file button" );
m_excludeButton = new TQPushButton( clearLeftIconSet, NULL, this, "target file button" );
m_interfaceButton = new TQPushButton( clearLeftIconSet, NULL, this, "target file button" );
m_sourceIPButton = new TQPushButton( clearLeftIconSet, NULL, this, "target file button" );
m_spoofMacButton = new TQPushButton( clearLeftIconSet, NULL, this, "target file button" );
m_dataDirButton = new TQPushButton( fileOpenIconSet, NULL, this, "datadir button" );
m_excludeFileButton = new TQPushButton( fileOpenIconSet, NULL, this, "exclude file button" );
m_targetFileButton = new TQPushButton( fileOpenIconSet, NULL, this, "target file button" );
m_dataDirCheckBox = new TQCheckBox( i18n( "Data directory (--datadir <name>) " ), this, "datadir checkbox" );
m_dataLengthCheckBox = new TQCheckBox( i18n( "Data length (--data_length <value>" ), this, "data length checkbox" );
m_debugLevelCheckBox = new TQCheckBox( i18n( "Debug level (-d)" ), this, "debug checkbox" );
m_decoyCheckBox = new TQCheckBox( i18n( "Decoy hosts (-D <host list>)" ), this, "decoy checkbox" );
m_excludeCheckBox = new TQCheckBox( i18n( "Exclude hosts (--exclude <hosts>) " ), this, "exclude checkbox" );
m_excludeFileCheckBox = new TQCheckBox( i18n( "Exclude file (--excludefile <path>) " ), this, "exclude checkbox" );
m_fragmentLevelCheckBox = new TQCheckBox( i18n( "Fragment level (-f)" ), this, "fragment checkbox" );
m_interfaceCheckBox = new TQCheckBox( i18n( "Interface (-e)" ), this, "interface checkbox" );
m_maxSocketsCheckBox = new TQCheckBox( i18n( "Max sockets (-M <value>)" ), this, "max sockets checkbox" );
m_randomIPCheckBox = new TQCheckBox( i18n( "Random IP scan (-iR <value>)" ), this, "random ip checkbox" );
m_sourceIPCheckBox = new TQCheckBox( i18n( "Source IP addr (-S <value>)" ), this, "source ip checkbox" );
m_sourcePortCheckBox = new TQCheckBox( i18n( "Source port (-g <value>)" ), this, "source port checkbox" );
m_spoofMacCheckBox = new TQCheckBox( i18n( "Spoof MAC addr (--spoof_mac <value>)" ), this, "spoof mac checkbox" );
m_targetFileCheckBox = new TQCheckBox( i18n( "Target hosts file (-iL <path>) " ), this, "target checkbox" );
m_ttlCheckBox = new TQCheckBox( i18n( "TTL (--ttl <value>)" ), this, "ttl checkbox" );
m_dataDirLineEdit = new TQLineEdit( this, "datadir line edit" );
m_decoyLineEdit = new TQLineEdit( this, "decoy edit" );
m_excludeLineEdit = new TQLineEdit( this, "exclude line edit" );
m_excludeFileLineEdit = new TQLineEdit( this, "exclude file line edit" );
m_interfaceLineEdit = new TQLineEdit( this, "interface edit" );
m_sourceIPLineEdit = new TQLineEdit( this, "source ip edit" );
m_spoofMacLineEdit = new TQLineEdit( this, "spoof mac edit" );
m_targetFileLineEdit = new TQLineEdit( this, "target file line edit" );
m_dataLengthSpinBox = new TQSpinBox( 1, 1460, 128, this, "data length spin box" );
m_debugLevelSpinBox = new TQSpinBox( 1, 5, 1, this, "debug spin box" );
m_fragmentLevelSpinBox = new TQSpinBox( 1, 2, 1, this, "fragment spin box" );
m_maxSocketsSpinBox = new TQSpinBox( 1, 999, 10, this, "max sockets spin box" );
m_randomIPSpinBox = new TQSpinBox( 1, 999, 10, this, "random ip spin box" );
m_sourcePortSpinBox = new TQSpinBox( 1, 65535, 64, this, "source port spin box" );
m_ttlSpinBox = new TQSpinBox( 1, 255, 32, this, "ttl spin box" );
byte row = 1;
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_dataLengthCheckBox, row, 3 );
gridLayout->addWidget( m_dataLengthSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_debugLevelCheckBox, row, 3 );
gridLayout->addWidget( m_debugLevelSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( "#", this ), row, 1 );
gridLayout->addWidget( m_fragmentLevelCheckBox, row, 3 );
gridLayout->addWidget( m_fragmentLevelSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_maxSocketsCheckBox, row, 3 );
gridLayout->addWidget( m_maxSocketsSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_randomIPCheckBox, row, 3 );
gridLayout->addWidget( m_randomIPSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_sourcePortCheckBox, row, 3 );
gridLayout->addWidget( m_sourcePortSpinBox, row++, 4 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 1 );
gridLayout->addWidget( m_ttlCheckBox, row, 3 );
gridLayout->addWidget( m_ttlSpinBox, row++, 4 );
byte rowBlock1 = row;
row = 1;
gridLayout->addWidget( new TQLabel( "#", this ), row, 6 );
gridLayout->addWidget( m_decoyCheckBox, row, 8 );
gridLayout->addWidget( m_decoyLineEdit, row, 9 );
gridLayout->addWidget( m_decoyButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_excludeCheckBox, row, 8 );
gridLayout->addWidget( m_excludeLineEdit, row, 9 );
gridLayout->addWidget( m_excludeButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_interfaceCheckBox, row, 8 );
gridLayout->addWidget( m_interfaceLineEdit, row, 9 );
gridLayout->addWidget( m_interfaceButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_sourceIPCheckBox, row, 8 );
gridLayout->addWidget( m_sourceIPLineEdit, row, 9 );
gridLayout->addWidget( m_sourceIPButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_spoofMacCheckBox, row, 8 );
gridLayout->addWidget( m_spoofMacLineEdit, row, 9 );
gridLayout->addWidget( m_spoofMacButton, row++, 10 );
row++;
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_excludeFileCheckBox, row, 8 );
gridLayout->addWidget( m_excludeFileLineEdit, row, 9 );
gridLayout->addWidget( m_excludeFileButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_dataDirCheckBox, row, 8 );
gridLayout->addWidget( m_dataDirLineEdit, row, 9 );
gridLayout->addWidget( m_dataDirButton, row++, 10 );
gridLayout->addWidget( new TQLabel( " ", this ), row, 6 );
gridLayout->addWidget( m_targetFileCheckBox, row, 8 );
gridLayout->addWidget( m_targetFileLineEdit, row, 9 );
gridLayout->addWidget( m_targetFileButton, row++, 10 );
byte rowBlock2 = row;
gridLayout->setColStretch( 0, 4 );
gridLayout->setColStretch( 2, 1 );
gridLayout->setColStretch( 4, 20 );
gridLayout->setColStretch( 5, 4 );
gridLayout->setColStretch( 7, 1 );
gridLayout->setColStretch( 9, 20 );
gridLayout->setColStretch( 11, 4 );
gridLayout->setRowStretch( 0, 1 );
gridLayout->setRowStretch( _max_( rowBlock1, rowBlock2 ), 1 );
}
// finaliseInitialisation
// ======================
void CompoundWidget::finaliseInitialisation( )
{ WhatsThis* whatsThis = new WhatsThis( this );
connect( m_dataDirButton, SIGNAL( clicked( )), SLOT( slotDataDirButtonClicked( )));
connect( m_dataDirCheckBox, SIGNAL( clicked( )), SLOT( slotDataDirCheckBoxClicked( )));
connect( m_dataLengthCheckBox, SIGNAL( clicked( )), SLOT( slotDataLengthCheckBoxClicked( )));
connect( m_debugLevelCheckBox, SIGNAL( clicked( )), SLOT( slotDebugLevelCheckBoxClicked( )));
connect( m_decoyButton, SIGNAL( clicked( )), SLOT( slotDecoyButtonClicked( )));
connect( m_decoyCheckBox, SIGNAL( clicked( )), SLOT( slotDecoyCheckBoxClicked( )));
connect( m_excludeButton, SIGNAL( clicked( )), SLOT( slotExcludeButtonClicked( )));
connect( m_excludeCheckBox, SIGNAL( clicked( )), SLOT( slotExcludeCheckBoxClicked( )));
connect( m_excludeFileButton, SIGNAL( clicked( )), SLOT( slotExcludeFileButtonClicked( )));
connect( m_excludeFileCheckBox, SIGNAL( clicked( )), SLOT( slotExcludeFileCheckBoxClicked( )));
connect( m_fragmentLevelCheckBox, SIGNAL( clicked( )), SLOT( slotFragmentLevelCheckBoxClicked( )));
connect( m_interfaceButton, SIGNAL( clicked( )), SLOT( slotInterfaceButtonClicked( )));
connect( m_interfaceCheckBox, SIGNAL( clicked( )), SLOT( slotInterfaceCheckBoxClicked( )));
connect( m_maxSocketsCheckBox, SIGNAL( clicked( )), SLOT( slotMaxSocketsCheckBoxClicked( )));
connect( m_randomIPCheckBox, SIGNAL( clicked( )), SLOT( slotRandomIPCheckBoxClicked( )));
connect( m_sourceIPButton, SIGNAL( clicked( )), SLOT( slotSourceIPButtonClicked( )));
connect( m_sourceIPCheckBox, SIGNAL( clicked( )), SLOT( slotSourceIPCheckBoxClicked( )));
connect( m_sourcePortCheckBox, SIGNAL( clicked( )), SLOT( slotSourcePortCheckBoxClicked( )));
connect( m_spoofMacButton, SIGNAL( clicked( )), SLOT( slotSpoofMACButtonClicked( )));
connect( m_spoofMacCheckBox, SIGNAL( clicked( )), SLOT( slotSpoofMacCheckBoxClicked( )));
connect( m_targetFileButton, SIGNAL( clicked( )), SLOT( slotTargetFileButtonClicked( )));
connect( m_targetFileCheckBox, SIGNAL( clicked( )), SLOT( slotTargetFileCheckBoxClicked( )));
connect( m_ttlCheckBox, SIGNAL( clicked( )), SLOT( slotTTLCheckBoxClicked( )));
connect( whatsThis, SIGNAL( clicked( )), SLOT( slotWhatsThisClicked( )));
connect( m_dataDirCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_dataDirLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_dataLengthCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_dataLengthSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_debugLevelCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_debugLevelSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_decoyCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_decoyLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_excludeCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_excludeLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_excludeFileCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_excludeFileLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_fragmentLevelCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_fragmentLevelSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_interfaceCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_interfaceLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_maxSocketsCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_maxSocketsSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_randomIPCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_randomIPSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_sourceIPCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_sourceIPLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_sourcePortCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_sourcePortSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
connect( m_spoofMacCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_spoofMacLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_targetFileCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_targetFileLineEdit, SIGNAL( textChanged( const TQString& )), SIGNAL( optionsDirty( )));
connect( m_ttlCheckBox, SIGNAL( clicked( )), SIGNAL( optionsDirty( )));
connect( m_ttlSpinBox, SIGNAL( valueChanged( int )), SIGNAL( optionsDirty( )));
}
// getOptions
// ==========
bool CompoundWidget::getOptions( bool& needRoot )
{ bool dataDirState = m_dataDirCheckBox->isChecked( );
TQString dataDirValue = m_dataDirLineEdit->text( );
bool decoyState = m_decoyCheckBox->isChecked( );
TQString decoyValue = m_decoyLineEdit->text( );
bool excludeState = m_excludeCheckBox->isChecked( );
TQString excludeValue = m_excludeLineEdit->text( );
bool excludeFileState = m_excludeFileCheckBox->isChecked( );
TQString excludeFileValue = m_excludeFileLineEdit->text( );
bool interfaceState = m_interfaceCheckBox->isChecked( );
TQString interfaceValue = m_interfaceLineEdit->text( );
bool sourceIPState = m_sourceIPCheckBox->isChecked( );
TQString sourceIPValue = m_sourceIPLineEdit->text( );
bool spoofMacState = m_spoofMacCheckBox->isChecked( );
TQString spoofMacValue = m_spoofMacLineEdit->text( );
bool targetFileState = m_targetFileCheckBox->isChecked( );
TQString targetFileValue = m_targetFileLineEdit->text( );
if( dataDirState && dataDirValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Data directory name not specified" )), i18n( "Data directory name error" ));
return false;
}
if( decoyState && decoyValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Decoy host list not specified" )), i18n( "Decoy hosts error" ));
return false;
}
if( excludeState && excludeValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Exclude hosts not specified" )), i18n( "Exclude hosts error" ));
return false;
}
if( excludeFileState && excludeFileValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Exclude hosts file name not specified" )), i18n( "Exclude hosts file name error" ));
return false;
}
if( interfaceState && interfaceValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Interface name not specified" )), i18n( "Interface name error" ));
return false;
}
if( sourceIPState && sourceIPValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Source IP address not specified" )), i18n( "Source IP address error" ));
return false;
}
if( spoofMacState && spoofMacValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Spoof MAC address not specified" )), i18n( "Spoof MAC address error" ));
return false;
}
if( targetFileState && targetFileValue.isEmpty( ))
{ KMessageBox::error( this, i18n( TQString( "Target hosts file name not specified" )), i18n( "Target hosts file name error" ));
return false;
}
m_dataDirState = dataDirState;
m_dataDirValue = dataDirValue;
m_dataLengthState = m_dataLengthCheckBox->isChecked( );
m_dataLengthValue = m_dataLengthSpinBox->value( );
m_debugLevelState = m_debugLevelCheckBox->isChecked( );
m_debugLevelValue = m_debugLevelSpinBox->value( );
m_decoyState = decoyState;
m_decoyValue = decoyValue;
m_excludeState = excludeState;
m_excludeValue = excludeValue;
m_excludeFileState = excludeFileState;
m_excludeFileValue = excludeFileValue;
m_fragmentLevelState = m_fragmentLevelCheckBox->isChecked( );
m_fragmentLevelValue = m_fragmentLevelSpinBox->value( );
m_interfaceState = interfaceState;
m_interfaceValue = interfaceValue;
m_maxSocketsState = m_maxSocketsCheckBox->isChecked( );
m_maxSocketsValue = m_maxSocketsSpinBox->value( );
m_randomIPState = m_randomIPCheckBox->isChecked( );
m_randomIPValue = m_randomIPSpinBox->value( );
m_sourceIPState = sourceIPState;
m_sourceIPValue = sourceIPValue;
m_sourcePortState = m_sourcePortCheckBox->isChecked( );
m_sourcePortValue = m_sourcePortSpinBox->value( );
m_spoofMacState = spoofMacState;
m_spoofMacValue = spoofMacValue;
m_targetFileState = targetFileState;
m_targetFileValue = targetFileValue;
m_ttlState = m_ttlCheckBox->isChecked( );
m_ttlValue = m_ttlSpinBox->value( );
needRoot = needRoot || m_decoyState || m_fragmentLevelState;
return true;
}
// readProfile
// ===========
void CompoundWidget::readProfile( TDEConfig* config )
{ m_dataDirState = config->readBoolEntry( "dataDirState" );
m_dataDirValue = config->readEntry( "dataDirValue" );
m_dataLengthState = config->readBoolEntry( "dataLengthState" );
m_dataLengthValue = config->readNumEntry( "dataLengthValue", 40 );
m_debugLevelState = config->readBoolEntry( "debugLevelState" );
m_debugLevelValue = config->readNumEntry( "debugLevelValue" );
m_decoyState = config->readBoolEntry( "decoyState" );
m_decoyValue = config->readEntry( "decoyValue" );
m_excludeState = config->readBoolEntry( "excludeState" );
m_excludeValue = config->readEntry( "excludeValue" );
m_excludeFileState = config->readBoolEntry( "excludeFileState" );
m_excludeFileValue = config->readEntry( "excludeFileValue" );
m_fragmentLevelState = config->readBoolEntry( "fragmentLevelState" );
m_fragmentLevelValue = config->readNumEntry( "fragmentLevelValue" );
m_interfaceState = config->readBoolEntry( "interfaceState" );
m_interfaceValue = config->readEntry( "interfaceValue" );
m_maxSocketsState = config->readBoolEntry( "maxSocketsState" );
m_maxSocketsValue = config->readNumEntry( "maxSocketsValue" );
m_randomIPState = config->readBoolEntry( "randomIPState" );
m_randomIPValue = config->readNumEntry( "randomIPValue" );
m_sourceIPState = config->readBoolEntry( "sourceIPState" );
m_sourceIPValue = config->readEntry( "sourceIPValue" );
m_sourcePortState = config->readBoolEntry( "sourcePortState" );
m_sourcePortValue = config->readNumEntry( "sourcePortValue" );
m_spoofMacState = config->readBoolEntry( "spoofMacState" );
m_spoofMacValue = config->readEntry( "spoofMacValue" );
m_targetFileState = config->readBoolEntry( "targetFileState" );
m_targetFileValue = config->readEntry( "targetFileValue" );
m_ttlState = config->readBoolEntry( "ttlState" );
m_ttlValue = config->readNumEntry( "ttlValue" );
}
// saveProfile
// ===========
void CompoundWidget::saveProfile( TDEConfig* config )
{ config->writeEntry( "dataDirState", m_dataDirState );
config->writeEntry( "dataDirValue", m_dataDirValue );
config->writeEntry( "dataLengthState", m_dataLengthState );
config->writeEntry( "dataLengthValue", m_dataLengthValue );
config->writeEntry( "debugLevelState", m_debugLevelState );
config->writeEntry( "debugLevelValue", m_debugLevelValue );
config->writeEntry( "decoyState", m_decoyState );
config->writeEntry( "decoyValue", m_decoyValue );
config->writeEntry( "excludeState", m_excludeState );
config->writeEntry( "excludeValue", m_excludeValue );
config->writeEntry( "excludeFileState", m_excludeFileState );
config->writeEntry( "excludeFileValue", m_excludeFileValue );
config->writeEntry( "fragmentLevelState", m_fragmentLevelState );
config->writeEntry( "fragmentLevelValue", m_fragmentLevelValue );
config->writeEntry( "interfaceState", m_interfaceState );
config->writeEntry( "interfaceValue", m_interfaceValue );
config->writeEntry( "maxSocketsState", m_maxSocketsState );
config->writeEntry( "maxSocketsValue", m_maxSocketsValue );
config->writeEntry( "randomIPState", m_randomIPState );
config->writeEntry( "randomIPValue", m_randomIPValue );
config->writeEntry( "sourceIPState", m_sourceIPState );
config->writeEntry( "sourceIPValue", m_sourceIPValue );
config->writeEntry( "sourcePortState", m_sourcePortState );
config->writeEntry( "sourcePortValue", m_sourcePortValue );
config->writeEntry( "spoofMacState", m_spoofMacState );
config->writeEntry( "spoofMacValue", m_spoofMacValue );
config->writeEntry( "targetFileState", m_targetFileState );
config->writeEntry( "targetFileValue", m_targetFileValue );
config->writeEntry( "ttlState", m_ttlState );
config->writeEntry( "ttlValue", m_ttlValue );
}
// setInitialValues
// ================
void CompoundWidget::setInitialValues( )
{ m_dataDirCheckBox->setChecked( m_dataDirState );
m_dataDirLineEdit->setText( m_dataDirValue );
m_dataLengthCheckBox->setChecked( m_dataLengthState );
m_dataLengthSpinBox->setValue( m_dataLengthValue );
m_debugLevelCheckBox->setChecked( m_debugLevelState );
m_debugLevelSpinBox->setValue( m_debugLevelValue );
m_decoyCheckBox->setChecked( m_decoyState );
m_decoyLineEdit->setText( m_decoyValue );
m_excludeCheckBox->setChecked( m_excludeState );
m_excludeLineEdit->setText( m_excludeValue );
m_excludeFileCheckBox->setChecked( m_excludeFileState );
m_excludeFileLineEdit->setText( m_excludeFileValue );
m_fragmentLevelCheckBox->setChecked( m_fragmentLevelState );
m_fragmentLevelSpinBox->setValue( m_fragmentLevelValue );
m_interfaceCheckBox->setChecked( m_interfaceState );
m_interfaceLineEdit->setText( m_interfaceValue );
m_maxSocketsCheckBox->setChecked( m_maxSocketsState );
m_maxSocketsSpinBox->setValue( m_maxSocketsValue );
m_randomIPCheckBox->setChecked( m_randomIPState );
m_randomIPSpinBox->setValue( m_randomIPValue );
m_sourceIPCheckBox->setChecked( m_sourceIPState );
m_sourceIPLineEdit->setText( m_sourceIPValue );
m_sourcePortCheckBox->setChecked( m_sourcePortState );
m_sourcePortSpinBox->setValue( m_sourcePortValue );
m_spoofMacCheckBox->setChecked( m_spoofMacState );
m_spoofMacLineEdit->setText( m_spoofMacValue );
m_targetFileCheckBox->setChecked( m_targetFileState );
m_targetFileLineEdit->setText( m_targetFileValue );
m_ttlCheckBox->setChecked( m_ttlState );
m_ttlSpinBox->setValue( m_ttlValue );
slotDataDirCheckBoxClicked( );
slotDataLengthCheckBoxClicked( );
slotDebugLevelCheckBoxClicked( );
slotDecoyCheckBoxClicked( );
slotExcludeCheckBoxClicked( );
slotExcludeFileCheckBoxClicked( );
slotFragmentLevelCheckBoxClicked( );
slotInterfaceCheckBoxClicked( );
slotMaxSocketsCheckBoxClicked( );
slotRandomIPCheckBoxClicked( );
slotSourceIPCheckBoxClicked( );
slotSourcePortCheckBoxClicked( );
slotSpoofMacCheckBoxClicked( );
slotTargetFileCheckBoxClicked( );
slotTTLCheckBoxClicked( );
}
// slotDataDirButtonClicked
// ========================
void CompoundWidget::slotDataDirButtonClicked( )
{ Knmap::getDirPath( "Data directory", m_dataDirValue, m_dataDirLineEdit );
}
// slotDataDirCheckBoxClicked
// ==========================
void CompoundWidget::slotDataDirCheckBoxClicked( )
{ m_dataDirButton->setEnabled( m_dataDirCheckBox->isChecked( ));
m_dataDirLineEdit->setEnabled( m_dataDirCheckBox->isChecked( ));
}
// slotDataLengthCheckBoxClicked
// =============================
void CompoundWidget::slotDataLengthCheckBoxClicked( )
{ m_dataLengthSpinBox->setEnabled( m_dataLengthCheckBox->isChecked( ));
}
// slotDebugLevelCheckBoxClicked
// =============================
void CompoundWidget::slotDebugLevelCheckBoxClicked( )
{ m_debugLevelSpinBox->setEnabled( m_debugLevelCheckBox->isChecked( ));
}
// slotDecoyButtonClicked
// ======================
void CompoundWidget::slotDecoyButtonClicked( )
{ m_decoyLineEdit->clear( );
}
// slotDecoyCheckBoxClicked
// ========================
void CompoundWidget::slotDecoyCheckBoxClicked( )
{ m_decoyButton->setEnabled( m_decoyCheckBox->isChecked( ));
m_decoyLineEdit->setEnabled( m_decoyCheckBox->isChecked( ));
}
// slotExcludeButtonClicked
// ========================
void CompoundWidget::slotExcludeButtonClicked( )
{ m_excludeLineEdit->clear( );
}
// slotExcludeCheckBoxClicked
// ==========================
void CompoundWidget::slotExcludeCheckBoxClicked( )
{ m_excludeButton->setEnabled( m_excludeCheckBox->isChecked( ));
m_excludeLineEdit->setEnabled( m_excludeCheckBox->isChecked( ));
}
// slotExcludeFileButtonClicked
// ============================
void CompoundWidget::slotExcludeFileButtonClicked( )
{ Knmap::getFilePath( "Exclude hosts file", m_excludeFileValue, m_excludeFileLineEdit, false );
}
// slotExcludeFileCheckBoxClicked
// ==============================
void CompoundWidget::slotExcludeFileCheckBoxClicked( )
{ m_excludeFileButton->setEnabled( m_excludeFileCheckBox->isChecked( ));
m_excludeFileLineEdit->setEnabled( m_excludeFileCheckBox->isChecked( ));
}
// slotFragmentLevelCheckBoxClicked
// ================================
void CompoundWidget::slotFragmentLevelCheckBoxClicked( )
{ m_fragmentLevelSpinBox->setEnabled( m_fragmentLevelCheckBox->isChecked( ));
}
// slotInterfaceButtonClicked
// ==========================
void CompoundWidget::slotInterfaceButtonClicked( )
{ m_interfaceLineEdit->clear( );
}
// slotInterfaceCheckBoxClicked
// ============================
void CompoundWidget::slotInterfaceCheckBoxClicked( )
{ m_interfaceButton->setEnabled( m_interfaceCheckBox->isChecked( ));
m_interfaceLineEdit->setEnabled( m_interfaceCheckBox->isChecked( ));
}
// slotMaxSocketsCheckBoxClicked
// =============================
void CompoundWidget::slotMaxSocketsCheckBoxClicked( )
{ m_maxSocketsSpinBox->setEnabled( m_maxSocketsCheckBox->isChecked( ));
}
// slotRandomIPCheckBoxClicked
// ===========================
void CompoundWidget::slotRandomIPCheckBoxClicked( )
{ m_randomIPSpinBox->setEnabled( m_randomIPCheckBox->isChecked( ));
}
// slotSourceIPButtonClicked
// =========================
void CompoundWidget::slotSourceIPButtonClicked( )
{ m_sourceIPLineEdit->clear( );
}
// slotSourceIPCheckBoxClicked
// ===========================
void CompoundWidget::slotSourceIPCheckBoxClicked( )
{ m_sourceIPButton->setEnabled( m_sourceIPCheckBox->isChecked( ));
m_sourceIPLineEdit->setEnabled( m_sourceIPCheckBox->isChecked( ));
}
// slotSourcePortCheckBoxClicked
// =============================
void CompoundWidget::slotSourcePortCheckBoxClicked( )
{ m_sourcePortSpinBox->setEnabled( m_sourcePortCheckBox->isChecked( ));
}
// slotSpoofMACButtonClicked
// =========================
void CompoundWidget::slotSpoofMACButtonClicked( )
{ m_spoofMacLineEdit->clear( );
}
// slotSpoofMacCheckBoxClicked
// ===========================
void CompoundWidget::slotSpoofMacCheckBoxClicked( )
{ m_spoofMacButton->setEnabled( m_spoofMacCheckBox->isChecked( ));
m_spoofMacLineEdit->setEnabled( m_spoofMacCheckBox->isChecked( ));
}
// slotTargetFileButtonClicked
// ===========================
void CompoundWidget::slotTargetFileButtonClicked( )
{ Knmap::getFilePath( "Target hosts file", m_targetFileValue, m_targetFileLineEdit, false );
}
// slotTargetFileCheckBoxClicked
// =============================
void CompoundWidget::slotTargetFileCheckBoxClicked( )
{ m_targetFileButton->setEnabled( m_targetFileCheckBox->isChecked( ));
m_targetFileLineEdit->setEnabled( m_targetFileCheckBox->isChecked( ));
}
// slotTTLCheckBoxClicked
// ======================
void CompoundWidget::slotTTLCheckBoxClicked( )
{ m_ttlSpinBox->setEnabled( m_ttlCheckBox->isChecked( ));
}
// slotWhatsThisClicked
// ====================
void CompoundWidget::slotWhatsThisClicked( )
{ if( m_dataDirButton->hasMouse( )) emit( displayHelp( "--datadir" ));
else if( m_dataDirCheckBox->hasMouse( )) emit( displayHelp( "--datadir" ));
else if( m_dataDirLineEdit->hasMouse( )) emit( displayHelp( "--datadir" ));
else if( m_dataLengthCheckBox->hasMouse( )) emit( displayHelp( "--data_length" ));
else if( m_dataLengthSpinBox->hasMouse( )) emit( displayHelp( "--data_length" ));
else if( m_decoyButton->hasMouse( )) emit( displayHelp( "-D" ));
else if( m_decoyCheckBox->hasMouse( )) emit( displayHelp( "-D" ));
else if( m_decoyLineEdit->hasMouse( )) emit( displayHelp( "-D" ));
else if( m_debugLevelCheckBox->hasMouse( )) emit( displayHelp( "-d" ));
else if( m_debugLevelSpinBox->hasMouse( )) emit( displayHelp( "-d" ));
else if( m_excludeButton->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_excludeCheckBox->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_excludeLineEdit->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_excludeFileButton->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_excludeFileCheckBox->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_excludeFileLineEdit->hasMouse( )) emit( displayHelp( "--exclude" ));
else if( m_fragmentLevelCheckBox->hasMouse( )) emit( displayHelp( "-f" ));
else if( m_fragmentLevelSpinBox->hasMouse( )) emit( displayHelp( "-f" ));
else if( m_interfaceButton->hasMouse( )) emit( displayHelp( "-e" ));
else if( m_interfaceCheckBox->hasMouse( )) emit( displayHelp( "-e" ));
else if( m_interfaceLineEdit->hasMouse( )) emit( displayHelp( "-e" ));
else if( m_maxSocketsCheckBox->hasMouse( )) emit( displayHelp( "-M" ));
else if( m_maxSocketsSpinBox->hasMouse( )) emit( displayHelp( "-M" ));
else if( m_randomIPCheckBox->hasMouse( )) emit( displayHelp( "-iR" ));
else if( m_randomIPSpinBox->hasMouse( )) emit( displayHelp( "-iR" ));
else if( m_sourceIPButton->hasMouse( )) emit( displayHelp( "-S" ));
else if( m_sourceIPCheckBox->hasMouse( )) emit( displayHelp( "-S" ));
else if( m_sourceIPLineEdit->hasMouse( )) emit( displayHelp( "-S" ));
else if( m_sourcePortCheckBox->hasMouse( )) emit( displayHelp( "--source_port" ));
else if( m_sourcePortSpinBox->hasMouse( )) emit( displayHelp( "--source_port" ));
else if( m_spoofMacButton->hasMouse( )) emit( displayHelp( "--spoof_mac" ));
else if( m_spoofMacCheckBox->hasMouse( )) emit( displayHelp( "--spoof_mac" ));
else if( m_spoofMacLineEdit->hasMouse( )) emit( displayHelp( "--spoof_mac" ));
else if( m_targetFileButton->hasMouse( )) emit( displayHelp( "-iL" ));
else if( m_targetFileCheckBox->hasMouse( )) emit( displayHelp( "-iL" ));
else if( m_targetFileLineEdit->hasMouse( )) emit( displayHelp( "-iL" ));
else if( m_ttlCheckBox->hasMouse( )) emit( displayHelp( "--ttl" ));
else if( m_ttlSpinBox->hasMouse( )) emit( displayHelp( "--ttl" ));
else emit( displayUnknown( ));
}