PCAP/PDML Import: Reworked the test code to use the Ostinato QSettings

This commit is contained in:
Srivats P. 2011-04-12 20:14:57 +05:30
parent 0274fd4479
commit 486fe5dcac
2 changed files with 79 additions and 18 deletions

View File

@ -3,36 +3,47 @@
#include "pcapfileformat.h" #include "pcapfileformat.h"
#include "protocol.pb.h" #include "protocol.pb.h"
#include "protocolmanager.h" #include "protocolmanager.h"
#include "settings.h"
#include <QCoreApplication> #include <QCoreApplication>
#include <QFile>
#include <QSettings>
#include <QString> #include <QString>
extern ProtocolManager *OstProtocolManager; extern ProtocolManager *OstProtocolManager;
int main(int argc, char* argv[]) QSettings *appSettings;
#if defined(Q_OS_WIN32)
QString kGzipPathDefaultValue;
QString kDiffPathDefaultValue;
QString kAwkPathDefaultValue;
#endif
int usage(int argc, char* argv[])
{
printf("usage:\n");
printf("%s <command>\n", argv[0]);
printf("command -\n");
printf(" importpcap\n");
return 255;
}
int testImportPcap(int argc, char* argv[])
{ {
bool isOk; bool isOk;
QCoreApplication app(argc, argv);
QString error; QString error;
if (argc != 2) if (argc != 3)
{ {
printf("%s <infile>\n", argv[0]); printf("usage:\n");
exit(255); printf("%s importpcap <pcapfile>\n", argv[0]);
return 255;
} }
OstProtocolManager = new ProtocolManager();
OstProto::StreamConfigList streams; OstProto::StreamConfigList streams;
QString inFile(argv[1]); QString inFile(argv[2]);
OstProtocolManager = new ProtocolManager();
OstProtoLib::setExternalApplicationPaths(
"c:/Program Files/Wireshark/Tshark.exe",
"d:/srivatsp/projects/ostinato/pdml/bin/gzip.exe",
"d:/srivatsp/projects/ostinato/pdml/bin/diff.exe",
"d:/srivatsp/projects/ostinato/pdml/bin/gawk.exe");
isOk = pcapFileFormat.openStreams(inFile, streams, error); isOk = pcapFileFormat.openStreams(inFile, streams, error);
if (!error.isEmpty()) if (!error.isEmpty())
@ -42,7 +53,57 @@ int main(int argc, char* argv[])
} }
if (!isOk) if (!isOk)
exit(1); return 1;
return 0; return 0;
} }
int main(int argc, char* argv[])
{
QCoreApplication app(argc, argv);
int exitCode = 0;
// app init starts ...
#if defined(Q_OS_WIN32)
kGzipPathDefaultValue = app.applicationDirPath() + "/gzip.exe";
kDiffPathDefaultValue = app.applicationDirPath() + "/diff.exe";
kAwkPathDefaultValue = app.applicationDirPath() + "/gawk.exe";
#endif
app.setApplicationName("Ostinato");
app.setOrganizationName("Ostinato");
OstProtocolManager = new ProtocolManager();
/* (Portable Mode) If we have a .ini file in the same directory as the
executable, we use that instead of the platform specific location
and format for the settings */
QString portableIni = QCoreApplication::applicationDirPath()
+ "/ostinato.ini";
if (QFile::exists(portableIni))
appSettings = new QSettings(portableIni, QSettings::IniFormat);
else
appSettings = new QSettings();
OstProtoLib::setExternalApplicationPaths(
appSettings->value(kTsharkPathKey, kTsharkPathDefaultValue).toString(),
appSettings->value(kGzipPathKey, kGzipPathDefaultValue).toString(),
appSettings->value(kDiffPathKey, kDiffPathDefaultValue).toString(),
appSettings->value(kAwkPathKey, kAwkPathDefaultValue).toString());
// ... app init finished
//
// identify and run specified test
//
if (argc < 2)
exitCode = usage(argc, argv);
else if (strcmp(argv[1],"importpcap") == 0)
exitCode = testImportPcap(argc, argv);
else
exitCode = usage(argc, argv);
delete appSettings;
return exitCode;
}

View File

@ -1,7 +1,7 @@
TEMPLATE = app TEMPLATE = app
CONFIG += qt console CONFIG += qt console
QT += xml network script QT += xml network script
INCLUDEPATH += "../rpc/" "../common/" INCLUDEPATH += "../rpc/" "../common/" "../client"
win32 { win32 {
LIBS += -lwpcap -lpacket LIBS += -lwpcap -lpacket
CONFIG(debug, debug|release) { CONFIG(debug, debug|release) {