示例#1
0
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;
    }
}
示例#2
0
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;
    }
}