Hello Ivan,
On 09/17/2012 12:05 PM, Ivan Loskutov wrote:
*After upgrade lwip to version 1.4.1 I have an issue in qt-network. In my fork was implemented Ssl support in qt-network for using in web browsers. With new lwip https doesnÂ’t work. Http works, but I think with issues too.
Tbh, I only tested HTTPS support in noux-pkg/lynx which works fine but I will take a look at SSL support in QtNetwork.
I tried to investigate this issue. I think it is related to non-blocking sockets, which implemented in the new version. All simple examples are working properly. Issues occur only in a Qt application. I found that qtapplication calls connect and the connection started in non-blocking mode, connect return EINPROGRESS. After qt made call connect again, in such case connect must return EAGAIN, but it doesnÂ’thappen in lwip. It doesnÂ’t affect for http connection, but ssl connection is dropped. Anyone already faced such issues?*
Unfortunatly lwip does not support these errno value. It always returns EALREADY even if the connection was already established. So we changed this to EISCONN - which works fine for arora, because there is no code in lwip that handles the various steps of a non-blocking connect() in the socket-api (e.g. EAGAIN). That means you will get EINPROGRESS while lwip is connecting and EISCONN when it connected succuessfully.
Regards, Josef