void SslServer::incomingConnection(int socketDescriptor) { QSslSocket *serverSocket = new QSslSocket(this); if (serverSocket->setSocketDescriptor(socketDescriptor)) { if (isCertValid()) { serverSocket->setLocalCertificate(_cert); serverSocket->setPrivateKey(_key); serverSocket->addCaCertificates(_ca); } _pendingConnections << serverSocket; emit newConnection(); } else { delete serverSocket; } }
bool SslServer::reloadCerts() { if (loadCerts()) { return true; } else { // Reloading certificates currently only occur in response to a request. Always print an // error if something goes wrong, in order to simplify checking if it's working. if (isCertValid()) { quWarning() << "SslServer: Unable to reload certificate file, reverting\n" << " Quassel Core will use the previous key to provide SSL for client connections.\n" << " Please see http://quassel-irc.org/faq/cert to learn how to enable SSL support."; } else { quWarning() << "SslServer: Unable to reload certificate file\n" << " Quassel Core will still work, but cannot provide SSL for client connections.\n" << " Please see http://quassel-irc.org/faq/cert to learn how to enable SSL support."; } return false; } }