--- klamav-0.41.1/src/klamav.cpp.maximum 2007-07-24 22:51:54.000000000 +0300 +++ klamav-0.41.1/src/klamav.cpp 2008-01-10 13:24:01.000000000 +0200 @@ -83,11 +83,21 @@ Klamav::Klamav() firstRunWizard(); } - activityviewer = new Activityviewer(this); - klamscan = new Klamscan(this); tab->addTab(klamscan, i18n("&Scan")); + // catch defaults + config->setGroup("Klamscan"); + + mArcLimits.files = QString(config->readEntry("NoFilesToExtract")).toInt(); + mArcLimits.filesize = QString(config->readEntry("MBsToExtract")).replace("M","").toInt(); + mArcLimits.ratio = QString(config->readEntry("CompressionRatio")).toInt(); + mArcLimits.reclevel = QString(config->readEntry("RecursionLevel")).toInt(); + + KlamavConfig::setArcLimits(&mArcLimits); + + activityviewer = new Activityviewer(this); + klamd = new Klamd(this); tab->addTab(klamd, i18n("&Auto-Scan")); --- klamav-0.41.1/src/arclimits.h.maximum 2008-01-10 13:03:49.000000000 +0200 +++ klamav-0.41.1/src/arclimits.h 2008-01-10 12:38:01.000000000 +0200 @@ -0,0 +1,11 @@ +#ifndef ARCLIMITS_H +#define ARCLIMITS_H + +struct arclimits { + int filesize; + int reclevel; + int files; + int ratio; +}; + +#endif // ARCLIMITS_H --- klamav-0.41.1/src/klamavconfig.cpp.maximum 2008-01-09 19:10:26.000000000 +0200 +++ klamav-0.41.1/src/klamavconfig.cpp 2008-01-10 13:36:23.000000000 +0200 @@ -5,9 +5,15 @@ #include +arclimits *mArcLimits = NULL; KlamavConfig *KlamavConfig::mSelf = 0; static KStaticDeleter staticKlamavConfigDeleter; +KlamavConfig *KlamavConfig::setArcLimits(arclimits *pArcLimits) +{ + mArcLimits = pArcLimits; +} + KlamavConfig *KlamavConfig::self() { if ( !mSelf ) { @@ -25,16 +31,16 @@ KlamavConfig::KlamavConfig( ) setCurrentGroup( QString::fromLatin1( "ArchiveLimits" ) ); KConfigSkeleton::ItemInt *itemCompressionRatio; - itemCompressionRatio = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "CompressionRatio" ), mCompressionRatio, 0 ); + itemCompressionRatio = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "CompressionRatio" ), mCompressionRatio, mArcLimits == NULL ? 0 : mArcLimits->ratio ); addItem( itemCompressionRatio, QString::fromLatin1( "CompressionRatio" ) ); KConfigSkeleton::ItemInt *itemRecursionLevel; - itemRecursionLevel = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "RecursionLevel" ), mRecursionLevel, 0 ); + itemRecursionLevel = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "RecursionLevel" ), mRecursionLevel, mArcLimits == NULL ? 0 : mArcLimits->reclevel ); addItem( itemRecursionLevel, QString::fromLatin1( "RecursionLevel" ) ); KConfigSkeleton::ItemInt *itemMBsToExtract; - itemMBsToExtract = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "MBsToExtract" ), mMBsToExtract, 0 ); + itemMBsToExtract = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "MBsToExtract" ), mMBsToExtract, mArcLimits == NULL ? 0 : mArcLimits->filesize ); addItem( itemMBsToExtract, QString::fromLatin1( "MBsToExtract" ) ); KConfigSkeleton::ItemInt *itemNoFilesToExtract; - itemNoFilesToExtract = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "NoFilesToExtract" ), mNoFilesToExtract, 0 ); + itemNoFilesToExtract = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "NoFilesToExtract" ), mNoFilesToExtract, mArcLimits == NULL ? 0 : mArcLimits->files ); addItem( itemNoFilesToExtract, QString::fromLatin1( "NoFilesToExtract" ) ); KConfigSkeleton::ItemBool *itemVirusLimitsExceeded; itemVirusLimitsExceeded = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "VirusLimitsExceeded" ), mVirusLimitsExceeded, true ); --- klamav-0.41.1/src/scanviewer.cpp.maximum 2008-01-09 18:38:50.000000000 +0200 +++ klamav-0.41.1/src/scanviewer.cpp 2008-01-09 17:51:37.000000000 +0200 @@ -389,16 +389,17 @@ void ScanViewer::slotScan(const QStringL //config->setGroup("Klamscan"); - if (KlamavConfig::noFilesToExtract() > 0) + // Should override clamav defaults + //if (KlamavConfig::noFilesToExtract() > 0) options += "--max-files=" + QString("%1").arg(KlamavConfig::noFilesToExtract()) + " "; - if (KlamavConfig::mBsToExtract() > 0) + //if (KlamavConfig::mBsToExtract() > 0) options += "--max-space=" + QString("%1").arg(KlamavConfig::mBsToExtract()) + " "; - if (KlamavConfig::compressionRatio() > 0) + //if (KlamavConfig::compressionRatio() > 0) options += "--max-ratio=" + QString("%1").arg(KlamavConfig::compressionRatio()) + " "; - if (KlamavConfig::recursionLevel() > 0) + //if (KlamavConfig::recursionLevel() > 0) options += "--max-recursion=" + QString("%1").arg(KlamavConfig::recursionLevel()) + " "; --- klamav-0.41.1/src/klamavconfig.h.maximum 2008-01-09 14:19:43.000000000 +0200 +++ klamav-0.41.1/src/klamavconfig.h 2008-01-10 13:26:15.000000000 +0200 @@ -6,10 +6,13 @@ #include #include +#include "arclimits.h" + class KlamavConfig : public KConfigSkeleton { public: + static KlamavConfig *setArcLimits(arclimits *pArcLimits = NULL); static KlamavConfig *self(); ~KlamavConfig(); --- klamav-0.41.1/src/klamav.h.maximum 2007-07-24 22:51:54.000000000 +0300 +++ klamav-0.41.1/src/klamav.h 2008-01-10 13:25:38.000000000 +0200 @@ -15,6 +15,8 @@ #include +#include "arclimits.h" + class KPrinter; class KToggleAction; class KURL; @@ -126,6 +128,7 @@ private: private: //KlamavView *m_view; + arclimits mArcLimits;