int main(int argc, char *argv[]) { /* Disable rwx memory. This will also ensure full PAX/Grsecurity protections. */ qputenv("QV4_FORCE_INTERPRETER", "1"); qputenv("QT_ENABLE_REGEXP_JIT", "0"); QApplication a(argc, argv); a.setApplicationVersion(QLatin1String("1.1.2")); a.setOrganizationName(QStringLiteral("Ricochet")); #if !defined(Q_OS_WIN) && !defined(Q_OS_MAC) a.setWindowIcon(QIcon(QStringLiteral(":/icons/ricochet.svg"))); #endif QScopedPointer<SettingsFile> settings(new SettingsFile); SettingsObject::setDefaultFile(settings.data()); QString error; QLockFile *lock = 0; if (!initSettings(settings.data(), &lock, error)) { QMessageBox::critical(0, qApp->translate("Main", "Ricochet Error"), error); return 1; } QScopedPointer<QLockFile> lockFile(lock); initTranslation(); /* Initialize OpenSSL's allocator */ CRYPTO_malloc_init(); /* Seed the OpenSSL RNG */ if (!SecureRNG::seed()) qFatal("Failed to initialize RNG"); qsrand(SecureRNG::randomInt(UINT_MAX)); /* Tor control manager */ Tor::TorManager *torManager = Tor::TorManager::instance(); torManager->setDataDirectory(QFileInfo(settings->filePath()).path() + QStringLiteral("/tor/")); torControl = torManager->control(); torManager->start(); /* Identities */ identityManager = new IdentityManager; QScopedPointer<IdentityManager> scopedIdentityManager(identityManager); /* Window */ QScopedPointer<MainWindow> w(new MainWindow); if (!w->showUI()) return 1; return a.exec(); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); a.setApplicationVersion(QLatin1String("1.1.0")); a.setOrganizationName(QStringLiteral("Ricochet")); initTranslation(); #if !defined(Q_OS_WIN) && !defined(Q_OS_MAC) a.setWindowIcon(QIcon(QStringLiteral(":/icons/ricochet.svg"))); #endif QScopedPointer<SettingsFile> settings(new SettingsFile); SettingsObject::setDefaultFile(settings.data()); QString error; QLockFile *lock = 0; if (!initSettings(settings.data(), &lock, error)) { QMessageBox::critical(0, qApp->translate("Main", "Ricochet Error"), error); return 1; } QScopedPointer<QLockFile> lockFile(lock); /* Initialize OpenSSL's allocator */ CRYPTO_malloc_init(); /* Seed the OpenSSL RNG */ if (!SecureRNG::seed()) qFatal("Failed to initialize RNG"); qsrand(SecureRNG::randomInt(UINT_MAX)); /* Tor control manager */ Tor::TorManager *torManager = Tor::TorManager::instance(); torManager->setDataDirectory(QFileInfo(settings->filePath()).path() + QStringLiteral("/tor/")); torControl = torManager->control(); torManager->start(); /* Identities */ identityManager = new IdentityManager; /* Window */ MainWindow w; return a.exec(); }