summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qlocalsocket_unix.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2014-12-24 17:01:52 -0200
committerThiago Macieira <thiago.macieira@intel.com>2015-02-15 01:26:28 +0000
commitd866f6e8861647c45f438bc5b21905dacee41f8e (patch)
treefda6c73cc1164ff2cac9bccc02657cf2990347ff /src/network/socket/qlocalsocket_unix.cpp
parent0fa7374f1dc433b6b8955cb14dabb22c10f50854 (diff)
Save two system calls for setting a socket non-blocking on Linux
Linux's socket(2) system call can take SOCK_NONBLOCK and let us avoid the extra two fcntl(2) to change the setting after it's created. Change-Id: Ie0d7a2d51acc21acd850cbee6d0f76e27b1ae859 Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network/socket/qlocalsocket_unix.cpp')
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp
index 57aab2cc77..1f6d42918e 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;