#include "ostprotolib.h" #include "pcapfileformat.h" #include "protocol.pb.h" #include "protocolmanager.h" #include "settings.h" #include #include #include #include extern ProtocolManager *OstProtocolManager; QSettings *appSettings; #if defined(Q_OS_WIN32) QString kGzipPathDefaultValue; QString kDiffPathDefaultValue; QString kAwkPathDefaultValue; #endif /* * Dummy Stuff for successful linking */ const char *version = ""; const char *revision = ""; quint64 getDeviceMacAddress( int /*portId*/, int /*streamId*/, int /*frameIndex*/) { return 0; } quint64 getNeighborMacAddress( int /*portId*/, int /*streamId*/, int /*frameIndex*/) { return 0; } int usage(int /*argc*/, char* argv[]) { printf("usage:\n"); printf("%s \n", argv[0]); printf("command -\n"); printf(" importpcap\n"); return 255; } /* End of dummy stuff */ int testImportPcap(int argc, char* argv[]) { bool isOk; QString error; if (argc != 3) { printf("usage:\n"); printf("%s importpcap \n", argv[0]); return 255; } OstProto::StreamConfigList streams; QString inFile(argv[2]); isOk = pcapFileFormat.open(inFile, streams, error); if (!error.isEmpty()) { printf("%s: %s\n", qPrintable(inFile), qPrintable(error)); } if (!isOk) return 1; 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; }