Congratulations to our 2022 Qt Champions!

SslSocket encrypted() never called on server side on Ubuntu

  • I am building a server/client using a secured connection. I provided my code in a zip file so you can test it out. The "client" and "server" and "server_signals" folders contain the required pro files. Use it by launching a server and then a client to make a connection.

    The "server" folder contains a blocking approach to the problem and works on all OSes no problem.

    /!\ Please run the executables from within their folder since I'm using relative paths for the certificates.

    If you try to launch the server in the server_signals folder, that code does not work for me on Ubuntu 12.04 LTS x64 (and also x86) nor Fedora 20 x64 (both inside a virtualbox), but works perfectly on OSX Mavericks.

    EDIT: A friend just tested the code on Windows 7 x64 and there it also works.
    EDIT2: Another friend tested on Arch Linux x64 and it doesn't work, so it's not Virtualbox related but more linux related.

    I compiled this code using Qt 5.1.2.
    When using the server_signals server, the encrypted() signal is never called on the server side in ubuntu or fedora.

    Inside virtualbox, on Ubuntu 12.04 or Fedora 20 KDE x64, when launching ./server in the server_signals folder, and then ./test in client, the connection times out (encrypted() never called). No Ssl errors or anything are triggered.
    On OSX it works no problem.

    I then tried to compile Qt 4.8 from source with -openssl. When compiling with that version, I get a SslSocketNotifier warning that there are multiple notifiers on one socket (for read). But still same behavior (timeout).

    "You can dowload the folder with certificates and everything here":

Log in to reply