X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Fquassel.cpp;h=f498ae757f07c2ce89e95e7a1a4d2c5b26ea6203;hb=dc0c6b90a8d6788d6a14b164c5685ce45b3b0a49;hp=954d91ede7397a7266ebd531ec8d6fe2ba972671;hpb=dd711790dddee81442e2138b3917764dac39c487;p=quassel.git
diff --git a/src/common/quassel.cpp b/src/common/quassel.cpp
index 954d91ed..f498ae75 100644
--- a/src/common/quassel.cpp
+++ b/src/common/quassel.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -72,6 +72,11 @@ Quassel::Quassel()
// We catch SIGTERM and SIGINT (caused by Ctrl+C) to graceful shutdown Quassel.
signal(SIGTERM, handleSignal);
signal(SIGINT, handleSignal);
+#ifndef Q_OS_WIN
+ // SIGHUP is used to reload configuration (i.e. SSL certificates)
+ // Windows does not support SIGHUP
+ signal(SIGHUP, handleSignal);
+#endif
}
@@ -261,15 +266,16 @@ void Quassel::setupBuildInfo()
_buildInfo.baseVersion = QUASSEL_VERSION_STRING;
_buildInfo.generatedVersion = GIT_DESCRIBE;
- // This will be imprecise for incremental builds not touching this file, but we really don't want to always recompile
- _buildInfo.buildDate = QString("%1 %2").arg(__DATE__, __TIME__);
-
// Check if we got a commit hash
- if (!QString(GIT_HEAD).isEmpty())
+ if (!QString(GIT_HEAD).isEmpty()) {
_buildInfo.commitHash = GIT_HEAD;
+ QDateTime date;
+ date.setTime_t(GIT_COMMIT_DATE);
+ _buildInfo.commitDate = date.toString();
+ }
else if (!QString(DIST_HASH).contains("Format")) {
_buildInfo.commitHash = DIST_HASH;
- _buildInfo.commitDate = QString(DIST_DATE).toUInt();
+ _buildInfo.commitDate = QString(DIST_DATE);
}
// create a nice version string
@@ -279,7 +285,7 @@ void Quassel::setupBuildInfo()
_buildInfo.plainVersionString = QString("v%1 (dist-%2)")
.arg(_buildInfo.baseVersion)
.arg(_buildInfo.commitHash.left(7));
- _buildInfo.fancyVersionString = QString("v%1 (dist-%2)")
+ _buildInfo.fancyVersionString = QString("v%1 (dist-%2)")
.arg(_buildInfo.baseVersion)
.arg(_buildInfo.commitHash.left(7))
.arg(_buildInfo.commitHash);
@@ -297,7 +303,7 @@ void Quassel::setupBuildInfo()
_buildInfo.plainVersionString = QString("v%1 (%2git-%3%4)")
.arg(_buildInfo.baseVersion, distance, rx.cap(3), rx.cap(4));
if (!_buildInfo.commitHash.isEmpty()) {
- _buildInfo.fancyVersionString = QString("v%1 (%2git-%3%4)")
+ _buildInfo.fancyVersionString = QString("v%1 (%2git-%3%4)")
.arg(_buildInfo.baseVersion, distance, rx.cap(3), rx.cap(4), _buildInfo.commitHash);
}
}
@@ -322,6 +328,20 @@ void Quassel::handleSignal(int sig)
else
QCoreApplication::quit();
break;
+#ifndef Q_OS_WIN
+// Windows does not support SIGHUP
+ case SIGHUP:
+ // Most applications use this as the 'configuration reload' command, e.g. nginx uses it for
+ // graceful reloading of processes.
+ if (_instance) {
+ // If the instance exists, reload the configuration
+ quInfo() << "Caught signal" << SIGHUP <<"- reloading configuration";
+ if (_instance->reloadConfig()) {
+ quInfo() << "Successfully reloaded configuration";
+ }
+ }
+ break;
+#endif
case SIGABRT:
case SIGSEGV:
#ifndef Q_OS_WIN