| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change-Id: I4acaed88a46acae1ad117b0a95141b20d8744e12
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of version 10.12 (Sierra), the name of Apple's desktop operating
system will be macOS. Change the occurrences where the Mac platform
is discussed to use a macro \macos, which expands to 'macOS'. This
helps with adapting to future renaming.
Update the instructions on mac-specific Q_OS_* macro usage.
Add a \target for the old 'Qt for OS X' topic to keep links working
for other documentation modules that try to link with the old name.
Change-Id: Id33fb0cd985df702a4ae4efb4c5fd428e77d9b85
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
|
|
| |
Instead of 'true', it should be '-1'.
Change-Id: I5e8f99153da68d34b37477ef4cedbc447fba347f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QLocalSocket's documentation, connectToServer() must
initiate a connection attempt after opening the device. Otherwise, if
a connection succeeds immediately, connected() signal will be emitted
on closed device. So, this patch ensures that TCP-based implementation
behaves correctly.
Change-Id: I4cc9474815e091a1491a429a6dc17f9cf0154f58
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
FreeBSD < 10 doesn't have the LLINDEX macro either in net/if_dl.h, so besides
OpenBSD yet another condition to declare the LLINDEX macro for systems where
it isn't present does make it more complicated than replacing its usage with
the actual code.
Change-Id: I7e8ef3e265564526e05ec3115f9fa765d399f045
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Where accept4() is used, NetBSD offers paccept() as a replacement function.
Modify check for using accept4() and use paccept() on NetBSD.
See http://netbsd.gw.com/cgi-bin/man-cgi?paccept++NetBSD-current
and http://reviews.llvm.org/D12485
Change-Id: I9b3ecba5f3afad6c357d3f7b8f89589bf313e273
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
| |
There is no need for the functions to assert. By returning false they
show that something went wrong and the error will be handled
gracefully.
Change-Id: Ib026adf5c6fb23b5e6b5598533caec3b3669220c
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If runOnXamlThread returns anything but S_OK an exception is thrown
which might cause the application to terminate. So we give the lambda
a reference to hr and check that reference instead of runOnXamlThread's
return value for errors.
Change-Id: I1188ea720c63f6fdf43400f2f3ff928b72afc58e
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
runOnXamlThread should always return S_OK (causes exceptions otherwise)
so we need another way of error reporting to the outside (hr reference).
A failed hr is reported to the outside (of the lambda) and interpreted
as an unknown error.
Specific error cases like the given address not being a local address
or the given address being in use already are handled inside the lambda.
The specificErrorSet variable is necessary in these cases so that the
error is not overwritten by unknownError.
Change-Id: I198d66fe97726d5127bf31e50c7eff3363d5259c
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The two functions are merged and also renamed.
handleConnectionEstablished indicates that the
operation succeeded, but that is not necessarily
the case.
Change-Id: I66a4181a5693353fc9507785a6e6bbb8d5300a4b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
| |
Change-Id: I7c410732f41b86f39b41fd1dccd07815e5ca4e45
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This merge also blacklists a flaky tst_QGL::clipTest test on
OpenSUSE 13.1.
Conflicts:
src/network/socket/qnativesocketengine_winrt.cpp
tests/auto/opengl/qgl/BLACKLIST
Task-number: QTBUG-53133
Change-Id: I14b431aa5a189b7dd1d3e2dfff767d15df20fde3
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If no read was established before (no IO pending) the function
will fail. In this case there is no need to assert though.
Change-Id: Iaa18e4124389783fc2b8363a85c60a308903a713
Task-number: QTBUG-53424
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
OpenBSD does not have EPROTO and LLINDEX.. LLINDEX is only a macro
pointing at sdl_index so use the FreeBSD macro from <net/if_dl.h> as a
a workaround.
Change-Id: Ic3ccecc1b671bb28d14da83ba915ec3fcad2657d
Reviewed-by: Richard J. Moore <rich@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the client has responded to an earlier auth fail sensibly, further
use of the socks connection probably means we have fresh credentials.
So treat AuthenticatingError like Uninitialized. This makes
tst_QNetworkReply::authenticationCacheAfterCancel(*+socksauth) work
again.
Task-number: QTBUG-51545
Change-Id: I237ca5a3194b093cc6480dd33aa7709b7b584941
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/network/socket/qnativesocketengine_winrt.cpp
Change-Id: I8edb72f8ba958d80c3d7993b3feaaae782ca8d9c
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the functionality is not available for udp sockets trying to
call it will cause a crash on socket close.
Task-number: QTBUG-53424
Change-Id: Id80b36a248d12bf360135b2374c0a0efdab3a1f0
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using multiple concurrent requests can cause a delay between a socket
closing and getting deleted. At that point the state was closingDown,
but not wasDeleted yet. Especially on slower arm devices, callbacks are
done from another thread causing synchronization issues.
Hence closingDown needs to be synced and handleReadyRead needs to have
more criterias to return early to avoid invalid access crashes.
Easiest to reproduce is heavy scrolling on the mapviewer example when it
downloads a huge amount of tiles and cancels those requests when not in
view anymore.
Change-Id: I442b6243bbefb3af938b6b1b3739a6a85b4887c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some Windows kernels return a v4-mapped QHostAddress::AnyIPv4 as a
local address of the socket which bound on both IPv4 and IPv6
interfaces. This address does not match to any special address and
should not be used to send the data.
To allow handling of the local addresses properly, replace it with
QHostAddress::Any.
Already tested by tst_qudpsocket.
Task-number: QTBUG-52714
Change-Id: Icb7cb75f48cd7ec9b0a9dfaf861ffe0d3093e20d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: Id9b42f3d40b82ae6a8d581b0fbf6fd0b2ae589aa
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWindowsPipeWriter uses asynchronous API to perform writing. Once a cycle
has been started, the write buffer must remain valid until the write
operation is completed.
To avoid data corruption and possibly undefined behavior, this patch
makes QWindowsPipeWriter::write() take a QByteArray, which it keeps alive
for the duration of the write cycle.
Autotest-by: Thomas Hartmann
Task-number: QTBUG-52401
Change-Id: Ia35faee735c4e684267daa1f6bd689512b670cd2
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Allow sockets in bound state to wait for notifications.
Task-number: QTBUG-52449
Change-Id: I5c02bd61db68abca652312d4d59023963b05b3c5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
The callback was added as the functionality did not work as expected on
Windows 8. The behavior seems to have been fixed so that the callback
is no longer needed and can be removed.
Change-Id: I3def5750271e40eea1c6a88eed693f4da4ea44bb
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reading from the socket must not happen from the managing socket engine
but the socket engines that are spawned for reading/writing data (these
are initialized with the socket descriptor given). With the current
implementation the managing socket engine might be closed after the
first connection so that no other socket requests will be handled.
Change-Id: I76e1356bb75b8641b4f113872be143ca5c8b08cc
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I567418f21eef2f07e0d5283f46a02305d1153e0a
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: Ie52ddc8b0f70ad64d8f503b1942b9da6b72d6c99
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to the documentation tcp sockets are closed properly if
their instances are deleted when no read operation is pending. Thus we
have to keep track of the running read operation, cancel it (only
available on Windows 10) and delete it before closing the socket.
As there is no way to cancel the read operation on Windows 8.1 the
hard reset still happens there.
Change-Id: Idc75178f7d05057b610ac7000e95486d6a52cb85
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I6d39b091e48a911534cb79d42d33d16041261cfb
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I7b4f007107e21c02646140acd5ebe5745ca79bce
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I4f641966af3443d0c487df95d2e565182a945bf3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 0307c008 removed the buffering of data-to-be-written from
QWindowsPipeWriter, because it was assumed that users of this class
(QProcess and QLocalSocket) already buffer data internally.
This assumption was wrong for QLocalSocket. The following sequence
localSocket->write(someData);
localSocket->write(someMoreData);
would not write anything on the second write.
Add a write buffer to the Windows implementation of QLocalSocket.
Task-number: QTBUG-52073
Change-Id: I6d0f03a722ec48138cbde3e2f69aae7dafe790d3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: Iceababb1e137c2363ee8a75476ecb4f5dba53b28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-work QWindowsPipeWriter to not use a thread anymore but the
WriteFileEx API, similar to QWindowsPipeReader. This saves us a lot of
thread synchronization code and enables us to directly write data
without yet another buffering layer.
Also, this fixes the dreaded deadlocks in the QWindowsPipeWriter
destructor that could occur when the reading end was closed before
the write was finished.
Task-number: QTBUG-23378
Task-number: QTBUG-38185
Change-Id: If0ae96dcd756f716ddf6fa38016080095bf3bd4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suppose a client connects while the QLocalServer is still in the loop
that calls addListener. The connection would SetEvent(eventHandle),
but every call to ConnectNamedPipe would ResetEvent(eventHandle).
Thus, the connection is never detected by the notifier on eventHandle.
Callers of addListener must check the connection state of every
listener to make sure that no client connected while setting up
listeners.
Task-number: QTBUG-49254
Change-Id: Ia961927ea76973708e6e3f73510695eb5d6a0e4c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
waitForConnected() could return 'true' even when the socket was
disconnected.
Change-Id: I99d9c9730f4e9b6c8a54696eb92c24c3ef36d261
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
|
|
|
|
|
|
|
|
|
| |
Remove dead code and fix override.
Task-number: QTBUG-50804
Change-Id: I9cc28507e549d56a1f15fcc54bb6f7465beef644
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The native socket engine used strcpy for WinRT, which tries to copy
terminating null character. The QSocketNotifier::async_readDatagramSlot
autotest uses a buffer of size 1, which causes readDatagram to overwrite
the buffer on the stack.
Hence use memcpy instead to protect from additional copies beyond
barriers. Note that we cannot use qstrcpy as that does a buf[size-1] =
'\0' at the end, which would remove content for a buf size of 1.
Change-Id: I20baf9e63646cd28c1c954a20b8ae9c7d5873c31
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
config.tests/common/atomic64/atomic64.cpp
configure
src/3rdparty/forkfd/forkfd.c
src/corelib/io/forkfd_qt.cpp
src/widgets/kernel/qwidgetwindow.cpp
tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp
tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
tools/configure/configureapp.cpp
Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a datagram is sent to a closed host/port combination, the host will
likely send back an ICMP error message. In the regular socket API, there
isn't a good way of actually receiving this error, so some Windows kernels
wired that message back up to the call to WSARecvFrom() as a synthetic
datagram. Reading this datagram results in a WSAECONNRESET error code,
which should reported to the user as a refused connection attempt.
To make the errors a bit more informative, the native error strings for
WSAECONNRESET and WSAENETRESET were also added.
Task-number: QTBUG-49301
Change-Id: If659be54ba1b39965b5f481f0c0cb9eeea0a06d2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In bind+connect scenario, rejected connection can trigger a read
notification while the socket is opened. But unlike UDP, reading from
the socket engine or emitting a readyRead() signal is not allowed for
the TCP socket in bound or connecting state.
To make a bind+connect scenario work properly, disable the read
notifications until a connection is established.
Task-number: QTBUG-50124
Change-Id: I7b3d015b0f6021fb9ff9f83560478aa5545f41f5
Reviewed-by: Richard J. Moore <rich@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the remote peer closed the connection, a read notification needs
to always be emitted, otherwise the higher layer does not get the
disconnected signal. From the other side, underlying QAbstractSocket
object could temporarily disable notifications from the engine at
any time. To avoid possible blocking of the socket, take a pending EOF
into account when the read notifications are re-enabled.
Change-Id: Iac9d4e2f790530be3500baf5a2000f1f63df5cc2
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code says (for Q_OS_UNIX)
if ((mode & QAbstractSocket::ShareAddress) || (mode & QAbstractSocket::ReuseAddressHint))
socketEngine->setOption(QAbstractSocketEngine::AddressReusable, 1);
so clearly ReuseAddressHint does the same as ShareAddress, which is: setting SO_REUSEADDR.
Change-Id: Ic2ab4d139c3f58c3c63723fc609a9d4f71bac97a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| | |
Change-Id: I192e20eef4db27fc19ec9a6e517ae5c8cb88897c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
connecting.
Otherwise, connectInternal becomes a no-op after an initial connection attempt
has been made (making the socket effectively useless if that connection attempt
fails).
A workaround is to close() the socket, which worked by virtue of
QAbstractSocket's close() disconnecting (which ultimately calls
resetSocketLayer, and destroys the socket engine instance) - meaning that the
next connection attempt would have a fresh socks instance to try out the
connection with.
Reported-by: Gabe Edwards <gabe.edwards@me.com>
Change-Id: Iab1e84af6d4248fd75a6dfe5e79a3c73129aae0b
Reviewed-by: Richard J. Moore <rich@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows to use readDatagram on WinRT like on
any other platform, ie using two arguments.
Fixes compilation in auto-tests.
Change-Id: I4a6e34dc72d2845faab9067ce67800d8b386c344
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
connections are pending.
This suppresses the emission of QTcpServer::acceptError() from
QTcpServerPrivate::readNotification().
Task-number: QTBUG-49776
Change-Id: Icfb686d44c0a396ae2bf5867bd31a91232ef3e3c
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/network/socket/qnativesocketengine_p.h
src/network/ssl/qsslsocket_mac.cpp
src/network/ssl/qsslsocket_mac_p.h
src/widgets/kernel/qwidget.cpp
Change-Id: I39592cb37d710dfaf8640769ba3c1b637927d7f4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Wrap related code in QNativeSocketEngine and the tuiotouch
plugin in conditionals.
Change-Id: Ic6861b1c6a9e041fa8a50f96149f7280473a9fba
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Output function, object name and class of the socket. Example:
qt.winrtrunner.app: handleReadyRead(): Could not read into socket stream buffer ("QTcpServer:40000"/QTcpServer). (A method was called at an unexpected time.)
Change-Id: Ic074c2c3a01221bd77dae0715db912e830f21435
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
|