summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-24 17:19:40 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-24 21:02:08 +0100
commit34b14a8472f44f8517577756e033b92ebd4c5912 (patch)
tree66a0575156d0a17a835430137e218e2b3f04cc65 /src/network
parentd34353a065c443aac20376cbd88323480d769183 (diff)
parentedd555425a08f9e074f0a4d9333862636ccaae8d (diff)
Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
Diffstat (limited to 'src/network')
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp10
-rw-r--r--src/network/socket/qnativesocketengine.cpp8
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp4
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp9
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp14
5 files changed, 22 insertions, 23 deletions
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp
index a4b51b16d2..77c5028fb3 100644
--- a/src/network/socket/qlocalsocket_unix.cpp
+++ b/src/network/socket/qlocalsocket_unix.cpp
@@ -235,19 +235,11 @@ void QLocalSocket::connectToServer(OpenMode openMode)
}
// create the socket
- if (-1 == (d->connectingSocket = qt_safe_socket(PF_UNIX, SOCK_STREAM, 0))) {
+ if (-1 == (d->connectingSocket = qt_safe_socket(PF_UNIX, SOCK_STREAM, 0, O_NONBLOCK))) {
d->errorOccurred(UnsupportedSocketOperationError,
QLatin1String("QLocalSocket::connectToServer"));
return;
}
- // set non blocking so we can try to connect and it won't wait
- int flags = fcntl(d->connectingSocket, F_GETFL, 0);
- if (-1 == flags
- || -1 == (fcntl(d->connectingSocket, F_SETFL, flags | O_NONBLOCK))) {
- d->errorOccurred(UnknownSocketError,
- QLatin1String("QLocalSocket::connectToServer"));
- return;
- }
// _q_connectToSocket does the actual connecting
d->connectingName = d->serverName;
diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp
index b78aaef8d0..db6c7c487a 100644
--- a/src/network/socket/qnativesocketengine.cpp
+++ b/src/network/socket/qnativesocketengine.cpp
@@ -357,14 +357,6 @@ bool QNativeSocketEngine::initialize(QAbstractSocket::SocketType socketType, QAb
return false;
}
- // Make the socket nonblocking.
- if (!setOption(NonBlockingSocketOption, 1)) {
- d->setError(QAbstractSocket::UnsupportedSocketOperationError,
- QNativeSocketEnginePrivate::NonBlockingInitFailedErrorString);
- close();
- return false;
- }
-
// Set the broadcasting flag if it's a UDP socket.
if (socketType == QAbstractSocket::UdpSocket
&& !setOption(BroadcastSocketOption, 1)) {
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index 52a2944a36..da36e4a6da 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -138,10 +138,10 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc
int protocol = (socketProtocol == QAbstractSocket::IPv6Protocol || socketProtocol == QAbstractSocket::AnyIPProtocol) ? AF_INET6 : AF_INET;
int type = (socketType == QAbstractSocket::UdpSocket) ? SOCK_DGRAM : SOCK_STREAM;
- int socket = qt_safe_socket(protocol, type, 0);
+ int socket = qt_safe_socket(protocol, type, 0, O_NONBLOCK);
if (socket < 0 && socketProtocol == QAbstractSocket::AnyIPProtocol && errno == EAFNOSUPPORT) {
protocol = AF_INET;
- socket = qt_safe_socket(protocol, type, 0);
+ socket = qt_safe_socket(protocol, type, 0, O_NONBLOCK);
socketProtocol = QAbstractSocket::IPv4Protocol;
}
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index c9477288f2..3dff11ec32 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
+++ b/src/network/socket/qnativesocketengine_win.cpp
@@ -383,8 +383,15 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc
#endif
socketDescriptor = socket;
- return true;
+ // Make the socket nonblocking.
+ if (!setOption(QAbstractSocketEngine::NonBlockingSocketOption, 1)) {
+ setError(QAbstractSocket::UnsupportedSocketOperationError, NonBlockingInitFailedErrorString);
+ q_func()->close();
+ return false;
+ }
+
+ return true;
}
/*! \internal
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp
index 946091b561..d42a360dc8 100644
--- a/src/network/socket/qnativesocketengine_winrt.cpp
+++ b/src/network/socket/qnativesocketengine_winrt.cpp
@@ -768,7 +768,7 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc
return false;
}
socketDescriptor = qintptr(socket.Detach());
- return true;
+ break;
}
case QAbstractSocket::UdpSocket: {
ComPtr<IDatagramSocket> socket;
@@ -780,13 +780,21 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc
EventRegistrationToken token;
socketDescriptor = qintptr(socket.Detach());
udpSocket()->add_MessageReceived(Callback<DatagramReceivedHandler>(this, &QNativeSocketEnginePrivate::handleNewDatagram).Get(), &token);
- return true;
+ break;
}
default:
qWarning("Invalid socket type");
return false;
}
- return false;
+
+ // Make the socket nonblocking.
+ if (!setOption(QAbstractSocketEngine::NonBlockingSocketOption, 1)) {
+ setError(QAbstractSocket::UnsupportedSocketOperationError, NonBlockingInitFailedErrorString);
+ q_func()->close();
+ return false;
+ }
+
+ return true;
}
QNativeSocketEnginePrivate::QNativeSocketEnginePrivate()