Fixed app freeze if switching to offline in middle of HTTP transaction.
authorJanne Anttila <janne.anttila@digia.com>
Mon, 12 Apr 2010 15:19:59 +0000 (18:19 +0300)
committerJanne Anttila <janne.anttila@digia.com>
Mon, 12 Apr 2010 15:29:01 +0000 (18:29 +0300)
commit4049dc98f1437cbbfdde5bd1ac16a7e69d65d254
tree23b69411fc747a477bd99e4a4f1fe1073dbb5b67
parent07c347f5401754ebcf15ac2b6aae2cfbdf7b8654
Fixed app freeze if switching to offline in middle of HTTP transaction.

When active socket is disconnected by swithcing to offline mode, native
RSocket completes the active socket operations with KErrCancel (-3).
Open C maps this error code to POSIX errno EINTR (4). Normally in Posix
EINTR is only used to indicate that some operation was interrupted by
POSIX signal. Qt has a while loops in network operations to handle
operations interrupterd by signals. These while loops will be
effectively forever loops in Symbian due to Open C error code mapping.

Because Symbian does not have native support for signals, i.e. the
network operations can never be really interrupted by POSIX signal,
it is ok to remove these while loops completely on Symbian platform.

This fix is a workaround to Open C incorrect error mapping, and
should be removed once Open C has fixed their error mapping.

Task-number: QT-3274
Reviewed-by: Aleksandar Sasha Babic
src/network/socket/qnativesocketengine_unix.cpp