Details
-
Task
-
Resolution: Done
-
P1: Critical
-
None
Description
Scope
- Use RSocket and friends instead of OpenC Posix functions to help with performance, bugs and bearer management problems.
- Implement a QAbstractSocketEngine for Symbian
- Look into Qt Bearer Management code, needs to be ported too
- Look at native system proxy for Symbian code- done and in 4.7.2 already
- Reduce the dependency to OpenC
Test plan
- Everything in tests/auto/network.pro
- qtcpsocket (in gui.pro)
- We also need to identify some network using tests in QML / Webkit to verify higher layer users of QtNetwork
- Platforms: 5.0 (5800), s3 (N8), winscw emulator?
- SDK emulator is known broken as the winsock shim doesn't support non blocking IO
- PDK / nokia RND emulator could use the real TCP/IP stack
- Nokia Qt SDK doesn't include WINSCW emulator
- SDK emulator is known broken as the winsock shim doesn't support non blocking IO
- We need to regularly test & compare with previous results & and compare with reference open C implementation
- WLAN testing is inherently unstable
- CI infrastructure can't help us - it doesn't test symbian except compilation.
- Shane has some lashed together with gaffa tape scripts + runonphone which was used to do this on file engine branch
- open C reference should probably be master + test fixes, but check test fixes don't regress open C. Also we want to use the same version of master in both places.
- we do need CI to check we aren't breaking other platforms (does it have a mode that only runs tests?)
Removed features
- socket handles can't be used with open C functions
- we won't adopt open C sockets
Probable Symbian Bugs
- WLAN connections drop with KErrNotReady (-18) socket error during active TCP connections, which makes tests unstable
- if client closes a localhost socket, before the server accepts it, then the accept succeeds but select never completes
- qtcpsocket, disconnectWhileConnectingNoEventLoop test case reproduces this every time
- yielding the client thread so the accept comes before close makes the test pass
- First outgoing UDP packet is always dropped if socket doesn't have an explicit RConnection but a connection is up
- All outgoing UDP packets are dropped while starting a connection implicitly (this isn't a bug, but a feature)
- UDP packet drops have KErrWouldBlock on S^1 but KErrNone on S^3
Compatibility issues that aren't really bugs
- localhost resolves to IPv6 ::1 rather than 127.0.0.1
- binding to any address returns IPv6 Any (0:0:0:0:0:0:0:0) from localname rather than IPv4 Any (0.0.0.0)
Attachments
Issue Links
- is required for
-
QTBUG-16441 Symbian: Move QLocalSocket code away from OpenC/PIPS
- Closed
-
QTBUG-13645 Symbian: Connecting to network causes QML application framerate to drop considerably
- Closed
-
QTBUG-5153 Problem with QTcpServer or QTcpSocket
- Closed
-
QTBUG-14100 QNativeSocketEnginePrivate::nativePendingDatagramSize for Symbian doesn't handle error for ioctl in correct way
- Closed
-
QTBUG-14304 QTcpSocket fails to read data on Symbian wk36 SDK
- Closed
-
QTBUG-14352 QNetworkAccessManager Connection refused randomly
- Closed
-
QTBUG-15359 More than one QNetworkAccessManager in same process on Symbian does not work properly
- Closed
-
QTBUG-15858 [Qt Message] exception on 3 [will close the socket handle - hack]
- Closed
-
QTBUG-16901 Symbian "QNetworkReplyImpl::_q_startOperation was called more than once"
- Closed
-
QTBUG-6094 OpenStreetMap: Sometimes the application crashes on Symbian when exiting it via exit softkey
- Closed
-
QTBUG-9859 Symbian: Network access is wrong
- Closed
-
QTBUG-16724 Socket layer is been constantly reinitialized in Symbian
- Closed
-
QTBUG-14114 Symbian socket engine
- Closed
- relates to
-
QTBUG-13857 QNetworkProxyFactory::systemProxyForQuery() implementation for Symbian
- Closed
-
QTBUG-13606 QHostInfo::lookupHost() returns "Host not found" when the Qt application tries to reconnect to some internet address after n/w roaming(WLAN->GPRS->WLan) or forceful disconnection from ConnectionManager
- Closed
-
QTBUG-16843 Symbian - Qt don't recognize 127.0.0.1 as local connection
- Closed
-
QTBUG-16903 low performance of QNetworkAccessManager::get() while parallel http requests
- Closed