openssl version error - need to detect programmatically



  • I know why I get this error - the program was compiled with one version (1.0.2d) but the libraries were 1.0.2c. The console logs show the issue (it's embedded ARM, not that this matters),

    QSslSocket: cannot call unresolved function SSLv23_client_method
    QSslSocket: cannot call unresolved function SSL_CTX_new
    QSslSocket: cannot call unresolved function SSL_library_init
    QSslSocket: cannot call unresolved function ERR_get_error
    QSslSocket: cannot call unresolved function ERR_get_error

    but my program just knows that a network operation timed out. I'd like to know how to detect this clash and disable the dependent feature (email) as well as display an alert to the user.

    "Network operation timed out"

    pretty sure the error happens here:

            ((QSslSocket*) socket)->startClientEncryption();
    
            if (!((QSslSocket*) socket)->waitForEncrypted(connectionTimeout)) {
                qDebug() << ((QSslSocket*) socket)->errorString();
                emit smtpError(ConnectionTimeoutError);
                return false;
            }


  • any suggestions?



  • https://www.openssl.org/policies/releasestrat.html
    "Minor releases that change the last digit, e.g. 1.0.1 vs. 1.0.2, can and are likely to contain new features, but in a way that does not break binary compatibility."

    So I don't believe what "1.0.2d vs 1.0.2c" itself causes a problem.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.