Commit Graph

207 Commits (63f5b1a7fccca3cf8d7082eeffec31a15cc36de7)

Author SHA1 Message Date
BogDan Vatra 3203601315 Fix QLocalServer, create a temp path as small as possible.
If requestedServerName is a full path e.g. "/tmp/some/long/path" the
temp path will end up "/tmp/some/long/path.balblabla/tmp/some/long/path"
and it might fail because it doesn't fit in addr.sun_path.

Change-Id: I6a138fd92be9e0b3b432ab9ac977d04cb330f3fd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-28 21:30:18 +01:00
BogDan Vatra aa4d76e468 Remove redundant permission set.
The temp socket is in a safe place. There is no need to set any
permissions at this point.

Change-Id: I18ea4b71b7c20db65dc46c57ddc5d34d8b93f577
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-28 19:15:46 +01:00
BogDan Vatra 4b8d4034d7 Removed pointless conditional.
Mode is always != 0 at this point (QLocalServer::WorldAccessOption is
a combination of the bits tested later).

Change-Id: I5abfb4e49fdc7903e21398525af05989f40d7f94
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-28 19:15:39 +01:00
BogDan Vatra 80d31849e2 Fix indentation & coding style.
Change-Id: Id974abca3ee2be9cb70c380a842e76c0ba1520bd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-28 19:15:32 +01:00
Shawn Rutledge 2580192def Windows native socket: handle WSAENETRESET the same as WSAECONNRESET
Task-number: QTBUG-41934
Change-Id: Ib92d8a83965e11e2706ef0daba945cb00692d2c5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-22 08:11:20 +02:00
Tom Hirst 1910454fe0 prevent if_nametoindex being called with empty string
Calling if_nametoindex with an empty string will always return 0, but
on ARM linux platforms this call seems to be very expensive (~30ms),
adding a large overhead to calls such as QUdpSocket::writeDatagram()

Task-number: QTBUG-37092
Change-Id: Iad00867585d9534af1ddaee936dd4e4dc5e03611
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-12 10:45:50 +02:00
Alessandro Portale 106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Gabriel de Dietrich 8ab25620d3 Merge remote-tracking branch 'origin/5.3' into 5.4
Conflicts:
	src/network/socket/qnativesocketengine_unix.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I6f1aa320d5ca66cd92d601a95885aeaab0abb191
2014-09-29 13:38:11 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Frederik Gladhorn c96426f19f Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-09-24 12:04:52 +02:00
Alex Trotsenko 48a4a67e8d Fix QAbstractSocket::readData() behavior on buffered socket
Remove an useless check which spontaneously allow direct reads from the
socket engine.

Change-Id: Ia3d2a572d6f1563d613fe2f00d0d6849df259827
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-23 16:55:42 +02:00
Frederik Gladhorn c5a3e5edd9 Merge remote-tracking branch 'origin/5.3' into 5.4
The isAlwaysAskOption was removed in 3862171315
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp

Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qcollator_macx.cpp
	src/corelib/tools/qstring.cpp
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow_p.h
	src/gui/text/qtextengine.cpp
	src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
	src/plugins/platforms/android/qandroidinputcontext.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp
	src/plugins/platforms/xcb/qglxintegration.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	src/testlib/qtestlog.cpp
	src/widgets/dialogs/qfiledialog.cpp
	src/widgets/kernel/qwindowcontainer.cpp
	tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
	tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
	tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
	tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp

Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
2014-09-23 11:23:36 +02:00
Giuseppe D'Angelo 87fbfe074b Fix a mishandling of the fd returned by socket(2)
socket(2) is allowed to return 0, so 0 should not be included
when checking for errors.

Change-Id: I0454ea60347d90078d3ab3046969add8d5c37935
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-22 14:08:57 +02:00
Oliver Wolff 8d0e6000cb WinRT: Fixed initialization of udp socket
udpSocket() can only be called after the socket descriptor is set.

Change-Id: If651ff58507cd66c98de4b699a80149913d9ffcf
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-03 13:17:00 +02:00
Oliver Wolff 365c6e81be WinRT: Fixed construction of QNativeSocketEngine without parent
Change-Id: If55a8049224a7dceca33a3cf3089d541a3a97b8e
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-03 09:33:23 +02:00
Andrew Knight da72e1b0e8 winrt: Refactor internal socket buffer
Simplify the temporary buffer usage by using the built-in WinRT Buffer
class. This also allows one use of the local event loop to be removed.

Change-Id: Ice552910227ffbe31c6e8716ff7896af7c4532ef
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-08-28 05:59:15 +02:00
Andrew Knight dd305aee78 winrt: Fix socket descriptor storage in native socket engine
This stores the socket pointer in the descriptor, rather than an
abitrary handle, so that it is easier to access from e.g. SSL socket.

To further support SSL sockets, a special case for SSL sockets is
made so that the the socket reader installation can be delayed until
after the socket is encrypted (as this is the only supported mode of
operation with StreamSocket).

Change-Id: I693229189722dc43b221b167e8256f5497a50346
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-08-28 05:58:43 +02:00
Markus Goetz 3e68148a4d Network: Fix NTLM (SSPI) with HTTP and HTTPS proxies
This commit should fix proxy authentication when NTLM is used.
NTLM differs from normal HTTP(S) authentication by having 2 roundtrips
instead of 1, some parts of our code however were not prepared for that.

I've tested this patch with Microsoft Forefront, both with normal
NTLM and with NTLM SSPI (in Windows domain).

I removed an optimization added in 3c3ea9a8, I could not see that behavior
anymore. That commit was the wrong fix in my opinion.

[ChangeLog][QtNetwork] Fix NTLM (SSPI) Proxy Authentication (HTTP/HTTPS)

Task-number: QTBUG-30829
Task-number: QTBUG-35101
Change-Id: Idcc9c0dbf388b011d49f2806e9a6dd55ebc35cec
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-08-23 17:35:51 +02:00
Frederik Gladhorn ca524e5b70 Merge remote-tracking branch 'origin/5.3' into 5.4
Manually included changes from
3a347a4e70
in src/opengl/qgl.cpp.

Conflicts:
	src/opengl/qgl_qpa.cpp
	src/plugins/platforms/android/androidjnimain.cpp

Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
2014-08-12 13:05:02 +02:00
Thiago Macieira 5a882d0359 Doc: document that we have unfixed bugs with waitForXxx on Windows
We have to document because we don't know how to fix the bug and don't
know when they will be fixed. We should also disable the unit tests
related to those functions, as they probably cause CI instability.

Task-number: QTBUG-24451
Change-Id: I0e60682ec4af7570258b13735339051ba8f4a6e4
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-08-11 16:44:50 +02:00
Robin Burchell 83080e8a7c QNativeSocketEngine: Add debug in createNewSocket.
If this fails, we want to know about it when trying to debug.

Change-Id: I33f05186e93fcd9284a7e7c609d00fe7ac87cd4e
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-08-04 05:05:53 +02:00
Robin Burchell e9782fee8f QNativeSocketEngine: use stream-style qDebug to fix a warning about FD types.
FD types differ depending on the platform, so using the stream form is the
easiest way to make this work.

Change-Id: I00b1a303f3d865fe5e89ba97bd438c51c6cd8f09
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-08-04 05:05:50 +02:00
Frederik Gladhorn ea90032685 Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	src/network/ssl/qsslsocket_openssl_symbols.cpp

Change-Id: Ic62419fa1fee5f4de6c372459d72e6e16f9a810b
2014-07-29 12:56:06 +02:00
Artem Shevchenko 553325abfd Fix buffer overrun error with some proxy servers
In some cases, depending on the proxy server response, the current
implementation of QHttpSocketEngine may write to memory beyond the
allocated buffer size. That will trigger undefined behavior on UNIX
systems and a buffer overrun exception if compiled with visual studio.

Change-Id: I5769d10c56b6a7483d6d94672aa4321287b82651
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-07-28 13:30:28 +02:00
Frederik Gladhorn a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/network/socket/qnativesocketengine_winrt.cpp
	src/plugins/platforms/android/androidjniaccessibility.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp

Manually adjusted:
	mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
	to include 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
Andrew Knight 6dd9146938 winrt: use ComPtr in network classes
This removes extra code and potential memory leaks by using smart
pointers instead of calling Release() directly.

Task-number: QTBUG-38115
Change-Id: If799d6948af8c3df3d0c1617742653b104087e3b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-06-25 16:34:14 +02:00
Thiago Macieira 3ccfc351fd QProcess: Handle spurious socket notifications for stdout and stderr
On Unix systems where the GUI event dispatcher uses a notification
system for socket notifiers that is out of band compared to select(),
it's possible for the QSocketNotifier to activate after the pipe has
been read from. When that happened, the ioctl(2) call with FIONREAD
might return 0 bytes available, which we interpreted to mean EOF.

Instead of doing that, always try to read at least one byte and examine
the returned byte count from read(2). If it returns 0, that's a real
EOF; if it returns -1 EWOULDBLOCK, we simply ignore the situation.

That's the case on OS X: the Cocoa event dispatcher uses CFSocket to get
notifications and those use kevent (and, apparently, an auxiliary
thread) instead of an in-thread select() or poll(). That means the event
loop would activate the QSocketNotifier even though there is nothing to
be read.

Task-number: QTBUG-39488
Change-Id: I1a58b5b1db7a47034fb36a78a005ebff96290efb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-12 17:54:11 +02:00
Oliver Wolff 7e9f08302c winrt: set error if tcp socket initialization fails
Change-Id: I31a2684ffdc864c69fe896829bca860e88c4a6ca
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-06-06 16:52:24 +02:00
Oliver Wolff 9cd7403801 winrt: do not try to close non existent sockets
Change-Id: I41103db89985f8fbde1faaccaf33c7a76c275f7d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-06-06 16:52:24 +02:00
J-P Nurmi 0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/qt.prf
	src/plugins/platforms/xcb/qxcbwindow.h
	src/tools/qdoc/qdocindexfiles.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
2014-06-05 22:26:44 +02:00
Maurice Kalinowski 6b9a9a01e2 remove HSTRING instances
HSTRING needs to be released or handles will be leaked.
Instead use HString which takes care of resource management
on its own.

Task-Number: QTBUG-38115
Change-Id: I2c767776c1f22f45acd8dd77b693f30d63d894b9
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-06-03 09:55:30 +02:00
Maurice Kalinowski 262d2cba12 WinRT: Fix compile warnings
Change-Id: If223dd73b9558a0f5144be38f19a61316f8c807b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-05-26 15:06:12 +02:00
Thiago Macieira 385692b3ad IPv6 scope ID of zero is not valid
IANA reserves scope ID of 0x0 to mean "no scope ID", so make sure that
we don't try to set it when reading from the sockaddr_in6 structure.

Change-Id: I71b207e6f8262ab2bf9fde993288a71ba63c7572
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-05-26 00:09:55 +02:00
Frederik Gladhorn ff334fd574 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-05-13 16:08:01 +02:00
Frederik Gladhorn b5552bab40 Merge remote-tracking branch 'origin/stable' into dev
Manually changed enum to LibGL in
    src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
2014-05-13 14:21:22 +02:00
Robin Burchell d11530c2a1 Change debug output to use stream version of debug.
df757e30f8 may have fixed this for one platform,
but different platforms appear to have different ideas on what constitutes a FD.

Just use the stream operator to avoid having to face this nightmare all the
time.

Change-Id: I298c5a4b31e8a4af6b613d039cb9aee6e8263b5a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-05-10 03:03:01 +02:00
Frederik Gladhorn 1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
David Faure 344562aff7 Fix debug output when enabling QABSTRACTSOCKET_DEBUG.
Some calls pass len=32, so garbage was shown when maxlen (readBytes) is smaller.

Change-Id: I97e61dcdf5a0db032317c57afb4bfb406437d8d5
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-05-06 16:35:56 +02:00
Peter Hartmann d29a750c0c QAbstractSocket: enable read notification for unbuffered sockets
This restores behavior for UDP sockets as it was in 5.2.1. Change
13c246ee11 introduced a behavioral
change / regression in that respect.

Task-number: QTBUG-37489
Change-Id: I8f0b26d763dd66ea6edcc343e91ff5c9c7bdc0f2
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-04-25 06:34:04 +02:00
Andrew Knight 078c71ac8f WinRT: Fix TCP socket reads
All read calls are now pulled from an intermediate buffer which is
populated from the asynchronous callback (this was a TODO previously, and
was breaking downloads of large requests). As a side-benefit, the use of
only async callbacks ensures fewer first-chance exceptions appear in the
debug output.

Task-number: QTBUG-30196
Change-Id: I5653742d8d94934a4b4a4227298865d20518bc4c
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-04-22 13:54:34 +02:00
Frederik Gladhorn 3b5c0bc078 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/image/qjpeghandler.cpp

Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
2014-03-24 16:10:15 +01:00
Robin Burchell a82291aea1 QNativeSocketEngine(UNIX): Report the native socket error, not the Qt-derived error
This prevents error reporting from being useless in case an errno value isn't
one we anticipate.

Change-Id: I65f8c2570d07971a06ba3687d75e9df91a0e7611
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-03-21 16:52:00 +01:00
Peter Hartmann 53f81ac946 BlackBerry networking: call special select() method
... so that the socket notifiers are enabled after selecting and thus
emit signals even after selecting (select() is called e.g. by the
waitFor* methods).

Task-number: QTBUG-36144
Change-Id: I385f288e8c42f92a9c84e53bce843e52f8094ada
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fanda Vacek <fvacek@blackberry.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-03-20 19:01:53 +01:00
Frederik Gladhorn df757e30f8 Fix compilation with QNATIVESOCKETENGINE_DEBUG enabled
Change-Id: Ie60b70aaa1fe11de613ba99427be00e307b6769d
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-03-14 22:38:59 +01:00
Joerg Bornemann 04a632c88a fix namespaced WinRT build
Change-Id: I613a737600f85ef90155e3b8647197b4fd092998
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-03-14 15:27:12 +01:00
Joerg Bornemann c6bb371b4b fix warning
Change-Id: I7afedbf679ae1c8467eea749e79eb10f2516d039
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-03-14 15:27:07 +01:00
Kurt Pattyn 1f4cda9a70 Replace Note: with \note in documentation
Change-Id: I213ac1fb2733e675f3641441fe6c621bab06c1f0
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-03-13 13:25:58 +01:00
Oliver Wolff 553c6416bb WinRT: Added socket engine implementation
Added basic functionality to socket for WinRT. Even though not
all auto tests pass yet, this patch can be seen as a foundation
for upcoming work in this area. Reading from and writing to TCP
socket works and one can listen for tcp connections.

Change-Id: Id4c25ba1c7187ed92b6368c785c4f62837faded7
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-02-15 10:50:12 +01:00
Frederik Gladhorn a1fe728fa5 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/android/androidjnimain.cpp
	src/plugins/platforms/android/qandroidplatformintegration.cpp
	src/plugins/platforms/android/qandroidplatformintegration.h
	src/plugins/platforms/android/qandroidplatformopenglcontext.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/sql/doc/src/sql-driver.qdoc
	src/widgets/widgets/qtoolbararealayout.cpp

Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
2014-02-07 13:07:25 +01:00
Peter Hartmann d0b1bf3996 QAbstractSocket: make build with debug statements compile
Otherwise we would get
qabstractsocket.cpp:2224:24: error: unknown escape sequence: '\c' [-Werror]

Change-Id: I757ff2aa1c46bbba7f0c0b93f49c2f9d84927b19
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-01-23 17:00:30 +01:00