# include <termios.h>
#endif /* Q_OS_WIN */
-#ifdef HAVE_UMASK
-# include <sys/types.h>
-# include <sys/stat.h>
-#endif /* HAVE_UMASK */
-
// ==============================
// Custom Events
// ==============================
Core::Core()
{
-#ifdef HAVE_UMASK
- umask(S_IRWXG | S_IRWXO);
-#endif
_startTime = QDateTime::currentDateTime().toUTC(); // for uptime :)
Quassel::loadTranslation(QLocale::system());
- // FIXME: MIGRATION 0.3 -> 0.4: Move database and core config to new location
- // Move settings, note this does not delete the old files
-#ifdef Q_OS_MAC
- QSettings newSettings("quassel-irc.org", "quasselcore");
-#else
-
-# ifdef Q_OS_WIN
- QSettings::Format format = QSettings::IniFormat;
-# else
- QSettings::Format format = QSettings::NativeFormat;
-# endif
- QString newFilePath = Quassel::configDirPath() + "quasselcore"
- + ((format == QSettings::NativeFormat) ? QLatin1String(".conf") : QLatin1String(".ini"));
- QSettings newSettings(newFilePath, format);
-#endif /* Q_OS_MAC */
-
- if (newSettings.value("Config/Version").toUInt() == 0) {
-# ifdef Q_OS_MAC
- QString org = "quassel-irc.org";
-# else
- QString org = "Quassel Project";
-# endif
- QSettings oldSettings(org, "Quassel Core");
- if (oldSettings.allKeys().count()) {
- quWarning() << "\n\n*** IMPORTANT: Config and data file locations have changed. Attempting to auto-migrate your core settings...";
- foreach(QString key, oldSettings.allKeys())
- newSettings.setValue(key, oldSettings.value(key));
- newSettings.setValue("Config/Version", 1);
- quWarning() << "* Your core settings have been migrated to" << newSettings.fileName();
-
-#ifndef Q_OS_MAC /* we don't need to move the db and cert for mac */
-#ifdef Q_OS_WIN
- QString quasselDir = qgetenv("APPDATA") + "/quassel/";
-#elif defined Q_OS_MAC
- QString quasselDir = QDir::homePath() + "/Library/Application Support/Quassel/";
-#else
- QString quasselDir = QDir::homePath() + "/.quassel/";
-#endif
-
- QFileInfo info(Quassel::configDirPath() + "quassel-storage.sqlite");
- if (!info.exists()) {
- // move database, if we found it
- QFile oldDb(quasselDir + "quassel-storage.sqlite");
- if (oldDb.exists()) {
- bool success = oldDb.rename(Quassel::configDirPath() + "quassel-storage.sqlite");
- if (success)
- quWarning() << "* Your database has been moved to" << Quassel::configDirPath() + "quassel-storage.sqlite";
- else
- quWarning() << "!!! Moving your database has failed. Please move it manually into" << Quassel::configDirPath();
- }
- }
- // move certificate
- QFileInfo certInfo(quasselDir + "quasselCert.pem");
- if (certInfo.exists()) {
- QFile cert(quasselDir + "quasselCert.pem");
- bool success = cert.rename(Quassel::configDirPath() + "quasselCert.pem");
- if (success)
- quWarning() << "* Your certificate has been moved to" << Quassel::configDirPath() + "quasselCert.pem";
- else
- quWarning() << "!!! Moving your certificate has failed. Please move it manually into" << Quassel::configDirPath();
- }
-#endif /* !Q_OS_MAC */
- quWarning() << "*** Migration completed.\n\n";
- }
- }
- // MIGRATION end
-
// check settings version
// so far, we only have 1
CoreSettings s;
connect(&_v6server, SIGNAL(newConnection()), this, SLOT(incomingConnection()));
if (!startListening()) exit(1); // TODO make this less brutal
+ _strictIdentEnabled = Quassel::isOptionSet("strict-ident");
+ if (_strictIdentEnabled) {
+ cacheSysIdent();
+ }
+
if (Quassel::isOptionSet("oidentd")) {
- _oidentdConfigGenerator = new OidentdConfigGenerator(Quassel::isOptionSet("oidentd-strict"), this);
- if (Quassel::isOptionSet("oidentd-strict")) {
- cacheSysIdent();
- }
+ _oidentdConfigGenerator = new OidentdConfigGenerator(this);
}
}
{
Q_ASSERT(!_registeredStorageBackends.empty());
- qsrand(QDateTime::currentDateTime().toTime_t());
+ qsrand(QDateTime::currentDateTime().toMSecsSinceEpoch());
int pass = 0;
for (int i = 0; i < 10; i++) {
pass *= 10;
if (_sessions.contains(uid))
return _sessions[uid];
- SessionThread *session = new SessionThread(uid, restore, this);
+ SessionThread *session = new SessionThread(uid, restore, strictIdentEnabled(), this);
_sessions[uid] = session;
session->start();
return session;