+
+ reply["CoreVersion"] = Quassel::buildInfo().fancyVersionString;
+ reply["CoreDate"] = Quassel::buildInfo().buildDate;
+ reply["ProtocolVersion"] = Quassel::buildInfo().protocolVersion;
+ // TODO: Make the core info configurable
+ int uptime = startTime().secsTo(QDateTime::currentDateTime().toUTC());
+ int updays = uptime / 86400; uptime %= 86400;
+ int uphours = uptime / 3600; uptime %= 3600;
+ int upmins = uptime / 60;
+ reply["CoreInfo"] = tr("<b>Quassel Core Version %1</b><br>"
+ "Built: %2<br>"
+ "Up %3d%4h%5m (since %6)").arg(Quassel::buildInfo().fancyVersionString)
+ .arg(Quassel::buildInfo().buildDate)
+ .arg(updays).arg(uphours,2,10,QChar('0')).arg(upmins,2,10,QChar('0')).arg(startTime().toString(Qt::TextDate));
+
+#ifdef HAVE_SSL
+ SslServer *sslServer = qobject_cast<SslServer *>(&_server);
+ QSslSocket *sslSocket = qobject_cast<QSslSocket *>(socket);
+ bool supportSsl = (bool)sslServer && (bool)sslSocket && sslServer->certIsValid();
+#else
+ bool supportSsl = false;
+#endif
+
+#ifndef QT_NO_COMPRESS
+ bool supportsCompression = true;
+#else
+ bool supportsCompression = false;
+#endif
+
+ reply["SupportSsl"] = supportSsl;
+ reply["SupportsCompression"] = supportsCompression;
+ // switch to ssl/compression after client has been informed about our capabilities (see below)
+
+ reply["LoginEnabled"] = true;
+