summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@accenture.com>2010-12-10 10:27:32 (GMT)
committerShane Kearns <shane.kearns@accenture.com>2010-12-10 10:27:32 (GMT)
commitcb7a89049f1e41edf02aaab56a00cef8c6005eba (patch)
treee837ec91db9c6118f17cf777edaaac25b1fc7d1a /src/network
parent9c3967b7738b50655a7b9d6a5a0e89fdf2afc1df (diff)
downloadQt-cb7a89049f1e41edf02aaab56a00cef8c6005eba.zip
Qt-cb7a89049f1e41edf02aaab56a00cef8c6005eba.tar.gz
Qt-cb7a89049f1e41edf02aaab56a00cef8c6005eba.tar.bz2
Fixes for socket engine autotest failures
Reviewed-by: Markus Goetz
Diffstat (limited to 'src/network')
-rw-r--r--src/network/socket/qsymbiansocketengine.cpp10
-rw-r--r--src/network/socket/qsymbiansocketengine_p.h4
2 files changed, 10 insertions, 4 deletions
diff --git a/src/network/socket/qsymbiansocketengine.cpp b/src/network/socket/qsymbiansocketengine.cpp
index 602df5c..b63dbf6 100644
--- a/src/network/socket/qsymbiansocketengine.cpp
+++ b/src/network/socket/qsymbiansocketengine.cpp
@@ -641,6 +641,10 @@ bool QSymbianSocketEngine::bind(const QHostAddress &address, quint16 port)
d->setPortAndAddress(nativeAddr, port, address);
TInt err = d->nativeSocket.Bind(nativeAddr);
+#ifdef __WINS__
+ if (err == KErrArgument) // winsock prt returns wrong error code
+ err = KErrInUse;
+#endif
if (err) {
d->setError(err);
@@ -781,6 +785,8 @@ qint64 QSymbianSocketEngine::writeDatagram(const char *data, qint64 len,
const QHostAddress &host, quint16 port)
{
Q_D(QSymbianSocketEngine);
+ Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::writeDatagram(), -1);
+ Q_CHECK_TYPE(QNativeSocketEngine::writeDatagram(), QAbstractSocket::UdpSocket, -1);
TPtrC8 buffer((TUint8*)data, (int)len);
TInetAddr addr;
d->setPortAndAddress(addr, port, host);
@@ -940,9 +946,9 @@ qint64 QSymbianSocketEngine::write(const char *data, qint64 len)
Q_D(QSymbianSocketEngine);
TPtrC8 buffer((TUint8*)data, (int)len);
TSockXfrLength sentBytes = 0;
- TRequestStatus status; //TODO: OMG sync send!
+ TRequestStatus status;
d->nativeSocket.Send(buffer, 0, status, sentBytes);
- User::WaitForRequest(status);
+ User::WaitForRequest(status); //TODO: on emulator this blocks for write >16kB (non blocking IO not implemented properly?)
TInt err = status.Int();
if (err) {
diff --git a/src/network/socket/qsymbiansocketengine_p.h b/src/network/socket/qsymbiansocketengine_p.h
index 2d5bcd8..bc85f9c 100644
--- a/src/network/socket/qsymbiansocketengine_p.h
+++ b/src/network/socket/qsymbiansocketengine_p.h
@@ -172,8 +172,8 @@ private:
QReadNotifier* iReadN;
QWriteNotifier* iWriteN;
QExceptionNotifier* iExcN;
- bool m_inSocketEvent; // TODO ?
- bool m_deleteLater; // TODO ?
+ bool m_inSocketEvent;
+ bool m_deleteLater;
RSocket &m_socket;
TUint m_selectFlags;