Commit Graph

1743 Commits (fbcdf6d7532d62e4e11deda1b6e6aa8f4b9aebaa)

Author SHA1 Message Date
Thiago Macieira 456ae0dfeb QNetworkInterface: fix reporting of virtual interfaces on Linux
We checked if we had seen the interface by looking into seenInterfaces
and seenIndexes, but we never updated those variables with what we saw
in this block.

This fixes the reporting of PPP interfaces as well as TUN/TAP virtual
interfaces.

Change-Id: I33dc971f005a4848bb8ffffd1476830b8482b808
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-24 05:56:53 +00:00
Nico Vertriest bde3384c9e Doc: corrected reference to OpenSSL webpage
Change-Id: I0314aac1e37615605a30d9dcc4962b9e7f883517
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2016-09-23 10:48:50 +00:00
Liang Qi eaec2b664a Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
	src/gui/painting/qcoregraphics.mm
	src/network/access/qnetworkrequest.h
	src/plugins/platforms/cocoa/qcocoahelpers.mm

Change-Id: I81266414c06ea2edf63cbc7e93a86bd5d66a31a5
2016-09-21 09:11:02 +02:00
Jake Petroules 6bceb4a8a9 Make QSslSocketPrivate::sslLibraryVersionString consistent on Windows
The returned string is now more similar to what the Apple (macOS, iOS,
tvOS, watchOS) version returns, and helps prepare for a later patch that
removes usages of QSysInfo::windowsVersion().

Change-Id: I5ba2937b27169ffc6624ccb4e608e6ff56a179bb
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 18:23:19 +00:00
Liang Qi 40a1f69e86 Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
	configure.json
	mkspecs/macx-tvos-clang/qmake.conf
	mkspecs/macx-watchos-clang/qmake.conf

Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
2016-09-15 19:47:57 +02:00
Lars Knoll a668c6a6b6 Convert the old feature system
... to the new qmake based configuration system.

This removes the old qfeatures.txt (distributed over configure.json
files) and qfeatures.h (distributed over qconfig-<module>.h files).

qfeatures.prf is gone without replacement, as attempts to use it would
lead to followup errors anyway.

Change-Id: I1598de19db937082283a905b9592d3849d2199d0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-15 08:24:10 +00:00
Oswald Buddenhagen b754b2815d rename description => label in configure.json
"description" suggests something slightly longer.

this may seem like a gratuitous change, but the upcoming replacement of
the old feature system clarifies makes it seem much less so.

Change-Id: Ibe702e01cb146b59127bf1f990b4acaef1c61d55
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:24:00 +00:00
Lars Knoll 2d3c73fcfe Modularize configure.json/.pri
Move the different parts of configure.json/.pri into the libraries where
they belong.

Gui is not yet fully modularized, and contains many things related to
the different QPA plugins.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:23:53 +00:00
Maurice Kalinowski 25d30ddb3e winrt: Fix build without SSL support
Task-number: QTBUG-55716
Change-Id: I0c843af7592803362ff2498b102e9264a03b389a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-07 04:54:38 +00:00
Sune Vuorela 4ac150682a API Review: Don't reorder existing enum values
Inserting things into the middle of an enum breaks backwards
compatibility, so don't do that.

Change-Id: Ie8e2768e8681f0237e7f233f4461f884b4b1b4f9
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 17:30:59 +00:00
Anton Kudryavtsev 6aa935cd92 Use QString::fromLatin1() less to avoid string allocations
QString::fromLatin1 always allocates memory, but there are
cases where we can avoid/reduce allocations or/and reduce
text size, e.g.:

QStringBuilder expressions
Fix: replace QString::fromLatin1 with QL1S

QString::fromLatin1().arg(String) pattern
Fix: replace with QStringBuilder

Overloaded functions with QL1S arg
Fix: replace QString::fromLatin1 with QL1S

In rare cases if there is no overloaded function
with QL1S and we have deal with string literal,
replace QString::fromLatin1 with QStringLiteral.

Change-Id: Iabe1a3cc0830f40ef78a0548afa4368583c31def
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 15:55:57 +00:00
Jesus Fernandez 7f14ad08bb Add a way to get Content-Length when using compressed data
We are removing the Content-Length header from our QNetworkReply
headers from a compressed HTTP reply.
A new attribute is added to have access to the original length.

Task-number: QTBUG-41840
Change-Id: I4e885e422d4203d63460d49c0eb5f11022003578
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-06 13:56:39 +00:00
Gabriel de Dietrich b09e0636f8 QNetworkProxy: Remove calls to deprecated API on macOS
CFURLCreateDataAndPropertiesFromResource has been
deprecated since 10.9.

Instead of loading the PAC file contents, we call
CFNetworkExecuteProxyAutoConfigurationURL. This
function being asynchronous, we make sure we block
until the CFProxyAutoConfigurationResultCallback
has been invoked.

Change-Id: I97e32d7f9b349e8e15fe1fdcb35b10e7aab39b3a
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-31 14:33:16 +00:00
Liang Qi f510a51dac Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I843994939f126ced22f7fe978ec4403f599fc7c9
2016-08-31 08:24:21 +02:00
Liang Qi 1cc571593a Merge remote-tracking branch 'origin/5.7' into 5.8
cf53aa21bf and 3aaa5d6b32
were reverted because of reconstruction in 5.7.

defineTest(qtConfTest_checkCompiler) in configure.pri is smart
enough to cover the case in a9474d1260.

DirectWrite: Fix advances being scaled to 0

Since 131eee5cd, the stretch of a font can be 0, meaning
"whatever the font provides". In combination with ec7fee96,
this would cause advances in the DirectWrite engine to be scaled to
0, causing the QRawFont test to fail.

Conflicts:
	configure
	mkspecs/features/uikit/device_destinations.sh
	mkspecs/features/uikit/xcodebuild.mk
	src/corelib/global/qglobal.cpp
	src/corelib/global/qnamespace.qdoc
	src/plugins/platforms/cocoa/qcocoamenuitem.h
	src/plugins/platforms/windows/qwindowsservices.cpp
	src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
	src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
	src/widgets/kernel/qapplication.cpp
	tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
	tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp

Change-Id: I4656d8133da7ee9fcc84ad3f1c7950f924432d1e
2016-08-29 15:30:17 +02:00
Liang Qi cc74452d6d Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	configure
	src/plugins/platforms/winrt/qwinrtclipboard.cpp

Change-Id: Ic6d58be3d1ed2bb507f2ba06c82361afd9f9ddb9
2016-08-29 08:13:40 +02:00
Jake Petroules b5dd4bff48 Don't link to SystemConfiguration on watchOS at all
Frameworks are not available on Apple platforms on a device vs simulator
basis. The documentation states that SystemConfiguration is not
available on watchOS:
https://developer.apple.com/reference/systemconfiguration?language=objc

Therefore, it not should be linked to at all. It's only actually used
on macOS, so don't link to it on iOS or tvOS either.

Change-Id: I6f550fd7ddc9b73368cc0f7f997f75ae7f113668
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2016-08-26 22:49:41 +00:00
Alex Trotsenko f063cb7f81 QAbstractSocket: replace a reference to outdated state in documentation
Change-Id: I4acaed88a46acae1ad117b0a95141b20d8744e12
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-25 12:49:13 +00:00
Liang Qi 6f58358791 Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I309691a541ff0b296fb6bbfbc0761cc1c627573a
2016-08-25 11:41:19 +02:00
Marc Mutz dfd77567d0 QNetworkAccessBackend: remove unused fwd declaration
QUrlInfo is not used anywhere near QNetworkAccessBackend.

Change-Id: I1b6031a105b088b9442bc7d3cffb1598ecee8fbe
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-08-24 04:31:07 +00:00
Oswald Buddenhagen d314819fc0 Merge dev into 5.8
Change-Id: I41ee7b50534b01cf042bed8bb8824ba2e5026a29
2016-08-22 11:30:01 +02:00
Jake Petroules 57378a108c Add support for Apple watchOS
Change-Id: I3f9e00569458a463af2eaa5a3a16a6afd1e9c1ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-08-19 21:05:55 +00:00
Allan Sandfeld Jensen 9f888d2fde Support C++17 fallthrough attribute
Replaces our mix of comments for annotating intended absence of break
in switches with the C++17 attribute [[fallthrough]], or its earlier
a clang extension counterpart.

Change-Id: I4b2d0b9b5e4425819c7f1bf01608093c536b6d14
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-19 18:38:53 +00:00
Timur Pocheptsov 4c27221295 Refactor Http2::FrameReader/Http2::FrameWriter
Introduce  new entity: class Http2::Frame with accessors like
payloadSize/type/flags/streamID etc. (they actually read
/interpret raw bytes from a frame's buffer) instead of
duplicating this functionality in reader/writer classes.
Delete defaulted members and remove explicitly defined
move ctors/operators (not needed actually).

Update auto-test ('HTTP/2 server') to use these new classes.

Change-Id: Ie3516efbd095704e212142eef9e792323678ccfa
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-19 16:26:36 +00:00
Alex Trotsenko 6f0814ab83 Micro-optimize QAbstractSocketPrivate::canReadNotification()
Remove unnecessary checks in release build. Refactor the code.

Change-Id: Ibee96790cbc8beb000757fc8e152fb4dcae9d506
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-19 08:16:16 +00:00
Lars Knoll 60985aa42b Use qtConfig throughout in qtbase
Use the new qtConfig macro in all pro/pri files.

This required adding some feature entries, and adding
{private,public}Feature to every referenced already existing entry.

Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:28:05 +00:00
Oswald Buddenhagen 4b288e30ef employ QMAKE_USE: LIBS += -lfoo
this switches all instances of LIBS[_PRIVATE] += -lfoo where a config
tests exists for foo.
this removes some code duplication between tests and project files (in
case of conditionals), and ensures that the projects always actually use
the libraries configure has found.

Change-Id: Ia7e80c8db5f329290c7f1a4e03a8bf78882a687e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:26:43 +00:00
Timur Pocheptsov 3c5b9977cd HTTP/2 - do not set END_HEADERS if we have CONTINUATIONs
Setting END_HEADERS flag on a HEADERS frame means we do not have
CONTINUATION frame(s). So do NOT set it too early, only if we
fit into a single frame.

Change-Id: I891a2db227cee59e4eacfe7c2f18b431cd85fe47
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-17 20:23:34 +00:00
Friedemann Kleint e4bb9395c2 Standardize some "We mean it" comments
Fix the occurrences where the wrong classes are mentioned.

Change-Id: Ia291af77f0f454a39cab93e7376a110c19a07771
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-17 19:51:40 +00:00
Friedemann Kleint 60a695ab5e Fix qdoc warnings
qtbase/src/network/socket/qsctpsocket.cpp:506: warning: Undocumented parameter 'datagram' in QSctpSocket::writeDatagram()
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:129: warning: Undocumented parameter 'encoding' in QSslDiffieHellmanParameters::QSslDiffieHellmanParameters()
qtbase/src/gui/opengl/qopengltextureblitter.cpp:540: warning: Undocumented parameter 'opacity' in QOpenGLTextureBlitter::setOpacity()
qtbase/src/gui/opengl/qopengltextureblitter.cpp:522: warning: Undocumented parameter 'swizzle' in QOpenGLTextureBlitter::setRedBlueSwizzle()
qtbase/src/testlib/qtestcase.qdoc:1124: warning: Cannot find 'createTouchDevice(...)' in '\fn' QTest::createTouchDevice()

Change-Id: Ie8799aa5f63a4ea6c9fe309e2a627fbe3a13b685
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-17 13:18:26 +00:00
Liang Qi 17198e03ab Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/global/qglobal.cpp
	src/corelib/tools/qstring.cpp
	src/network/socket/qabstractsocket.cpp
	src/network/socket/qnativesocketengine_unix.cpp
	src/plugins/platforms/eglfs/api/qeglfsglobal.h

Change-Id: Id5dfdbd30fa996f9b4b66a0b030b7d3b8c0ef288
2016-08-16 07:58:32 +02:00
Timur Pocheptsov bdc16cce79 HTTP/2 - fix QT_NO_SSL build
Recently enabled cleartext fails to build with QT_NO_SSL - fix
test and QNAM.

Change-Id: I467edab8e4eb5113715ad2d3b3022e0d8c027de8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-08-15 07:59:32 +00:00
Liang Qi 6b8f422c5e Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/io/qsettings.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp

Change-Id: I1c6c306ef42c3c0234b19907914b19da706b4a03
2016-08-13 01:05:02 +02:00
Marc Mutz 033ebfae21 QSslDiffieHellmanParameters: make fit for release
- add missing \since 5.8 on free functions
- fix \relates of qHash to point to QSslDHP, not QHash, which is in another module
- API fix: use named instead of unnamed ctors
- share code between ctors
- API fix: add inline move ctor (for now, this requires using a naked d pointer,
  which isn't much of a problem, since the class is immutable).

Change-Id: Ic30f9c3c03b8a3798e0676e38991ead85c587214
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-12 12:33:07 +00:00
Topi Reinio a2ae631c04 Doc: Change instances of '(Mac) OS X' to 'macOS'
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>
2016-08-12 08:30:29 +00:00
Timur Pocheptsov ce2419af89 Document HTTP2Allowed attribute
Change-Id: Ia318bf4b73f4716106f60370ed9ddff94f677eba
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-11 17:47:08 +00:00
Timur Pocheptsov 69ff49e8f1 Enable cleartext HTTP/2 and bring the auto-test back to life
HTTP/2 does not require TLS connection, it can work in a cleartext mode.
Plus at the moment only OpenSSL backend  allows HTTP/2 negotiation
via ALPN/NPN (and none of our CI configurations with OpenSSL supports
these extensions, rendering HTTP/2 auto-test useless). This patch
implements cleartext HTTP/2 ('h2c') in 'direct' mode - this is
allowed if a client has a prior knowledge that HTTP/2 is supported by
a server.

Change-Id: I4978775e9732c40bc77f549b83bb4a5d1761887e
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-11 15:38:20 +00:00
Timur Pocheptsov 193abdfc07 http2frame - do not rely on a socket's buffer
- Whenever we have a read notification, read this data, even if it's not
  enough for a frame's header - otherwise, QNAM can use a socket
  in an Ubuffered mode and FrameReader can potentially fail to read
  anything correctly.

- Do not call/rely on bytesAvailable and do not try to invoke
  _q_receiveReply in Qt::QueuedConnection mode, instead try to read
  until we end up in an incomplete frame or some error.

Change-Id: I7f44ba9e34bc64f3e26bd29080f0050da635b3ae
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-11 12:45:59 +00:00
Alex Trotsenko 04e676c03c QAbstractSocket: prevent waitForReadyRead() from early exit
According to documentation, waitForReadyRead() returns 'true' if
the readyRead() signal is emitted and there is new data available
for reading. Thus, waitForReadyRead() is being blocked in cycle
until canReadNotification() will return 'true'. This patch
adjusts canReadNotification() to return 'true' only when new data
arrives on buffered socket that ensures waitForReadyRead() to
succeed correctly.

Change-Id: Ic38c4a4dd8ef9128f04b6c1d5f3d03068f6c9894
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-11 06:53:27 +00:00
Liang Qi 8ba384a564 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I1a63523de158757964b6fb5ea026cf69a6c5ddcf
2016-08-10 17:43:13 +02:00
Liang Qi 22e96c4d34 Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I36e6b890b65d12bf6931757540bcc9c553b5eb8f
2016-08-09 17:59:51 +02:00
Alex Trotsenko eb4bcdd8ce QNativeSocketEngine::option(): return a correct value on invalid call
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>
2016-08-05 08:30:18 +00:00
Liang Qi 69ef0481fc Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp

Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
2016-08-05 08:58:48 +02:00
Kai Pastor 35117590c8 Remove unneeded ';' after some macros
The unneeded ';' triggered warnings in pedantic compilation mode.

Change-Id: Id2324823e138560bb25234306601253d7bbd713e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-08-04 19:52:18 +00:00
Alex Trotsenko 595c6abf9d QLocalSocket/Tcp: open device before making a connection
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>
2016-08-04 15:25:39 +00:00
Timur Pocheptsov 2d1f137173 Revert "Implement protocol upgrade for HTTP/2 enabled requests"
This reverts commit 12d71f4ea2.
This change is breaking a build + incomplete as my test revealed.
Will have to re-try later.

Change-Id: I7ea089093a832aa5822caaaac56e62f5fda4df17
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-04 10:21:24 +00:00
Timur Pocheptsov 12d71f4ea2 Implement protocol upgrade for HTTP/2 enabled requests
Without ALPN/NPN (== without OpenSSL) we can negotiate HTTP/2
using the protocol upgrade procedure as described by RFC7540.
Since there is no TLS handshake, after our http channel was connected
we first send an 'augmented' HTTP/1.1 request - its header
contains additional 'HTTP2-Settings' and 'Upgrade' (to 'h2c') fields.
If we receive reponse 101 (switch protocol) we re-create a protocol
handler and switch to HTTP/2.

Task-number: QTBUG-50955
Change-Id: I36e9985e06ba76edaf7fdb22bb43770f8d593c61
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-03 15:31:20 +00:00
Alex Trotsenko 733c4de36e Fix some syntax issues in SCTP implementation
Change-Id: I718fd060e313d544a5470fa20183db04ef89b1ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-03 06:21:47 +00:00
Alex Trotsenko fcbbd7bc3d Fix grammar issues in SCTP documentation
Change-Id: I11bfb20dc3d4db98dccfd3bc680fb1ffbd522508
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-02 10:03:45 +00:00
Liang Qi d875d5e2fc Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-08-02 07:54:03 +00:00
Edward Welbourne f6fc34294f Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	configure
5.7 now supports clang on android; but dev re-worked configure

	src/gui/kernel/qevent.h
One side renamed a parameter of a constructor; the other added an
alternate constructor on the next line.  Applied the rename to both
for consistency.

	tests/auto/tools/moc/tst_moc.cpp
Each side added a new test at the end.

	.qmake.conf
Ignored 5.7's change to MODULE_VERSION.

	configure.json
No conflict noticed by git; but changes in 5.7 were needed for the
re-worked configure to accommodate 5.7's stricter handling of C++11.

Change-Id: I9cda53836a32d7bf83828212c7ea00b1de3e09d2
2016-08-01 18:20:00 +02:00
Oswald Buddenhagen 97c00e66c8 fix namespaced build
Change-Id: I37b571db193d444ea60d508375fef89add467d1e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-01 11:51:34 +00:00
Timur Pocheptsov 7876add8b1 QSslDiffieHellmanParameters_dummy - remove Q_UNIMPLEMENTED
As a part of SSL initialization (done by QNAM on the first HTTP get request,
for example), 'dummy'  Diffie/Hellman parameter's mem-functions constantly
and unconditionally print  'Unimplemented code' even without user
actually calling these unimplemented methods. This is not just annoying,
(just realized I saw this 'Unimplemented code' many times today) this also breaks several
our auto-tests (xmlpatterns/qquickimage for example) - the ones that expect output
to be empty.

Task-number: QTBUG-55003
Change-Id: I5e4822e9783de32aa4b00843a9916eafea3689c0
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-07-29 16:51:53 +00:00
Lars Schmertmann 7f77dc84fb Store QSslKey in specific key format to provide more details for key
In a TLS handshake the ephemeral server key is saved in the ssl
configuration. Clients who want to get the length or algorithm of the
key only get "Opaque" and "-1" as a result because the key is always
stored as "Opaque". This change converts the key to specific type so
more details are available and the client don't need to convert the
handle by hand.

Change-Id: I60f90fc2c1805e528640d391b20c676b6eeeb49e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-28 14:32:05 +00:00
Alex Trotsenko 75a9bd2a4f Introduce SCTP sockets support
Add protocol-specific code and the QSctpServer, QSctpSocket classes.

Change-Id: Ie9a1d87bd1fda866a2405043d1c15c12ded5a96e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-27 06:37:24 +00:00
Timur Pocheptsov c0aaef30b1 HTTP/2 - fix 'GOAWAY' frame size validation
Found while implementing cleartext http2 (and sending some erroneous
frames) - GOAWAY can have some 'opaque debug information payload' so the
frame's size is at least 8 bytes, but can be more.

Change-Id: I90fb8a3df22768673c4f40ba3bf6a3f5ffe33058
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-25 18:33:08 +00:00
Richard J. Moore 4bbcc054e0 Add missing overloads for custom verbs
When support for custom verbs was added the overloads for the various
body data options were not.

Task-number: QTBUG-54868
Change-Id: I1a495023d957fc71d1e3b77997a2b4b8531c0a0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-22 17:08:50 +00:00
Edward Welbourne 601019e3f4 Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-07-22 10:15:48 +00:00
Alex Trotsenko aeb36d5292 QAbstractSocket: ensure bind()+connect() works on delayed close
While connecting, the socket goes through the HostLookupState. In
this state, the socket engine is not yet created, unless the socket
had previously been bound. When it has been bound, we should keep
the socket engine even if the user initiates a delayed close by
using the write()+close() sequence.

Change-Id: Iefebcb33cd72cb49617acbac8e02af9d8209c869
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-20 11:36:38 +00:00
Thiago Macieira da04322b4c Make moc obey the preprocessor environment variable for include paths
C preprocessors augment their standard list of include paths from the
environment: Unix preprocessors use $C_INCLUDE_PATH (for C) and
$CPLUS_INCLUDE_PATH (for C++), plus CPATH for both, whereas MSVC uses
the an environment variable simply called "INCLUDE". Handling this for
MSVC is particularly important because the VCVARSALL.BAT script sets the
necessary #include paths in the environment for important things.
Without that being parsed, moc won't find some #defines, like
WINAPI_DESKTOP_FAMILY.

[ChangeLog][moc] qmake and moc now cooperate to use the Visual Studio
environment variables (set by the VCVARSALL.BAT script) to find system
include files. A possible consequence is that moc parses application
headers slightly differently, depending on #if conditions that depended
on macros that previous versions had not seen #define'd. Implementers of
other buildsystems are advised to pass the --compiler-flavor=msvc option
to moc.

Change-Id: I7e06274214d1939b0124e5b4bf169cceaef9ca46
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-07-20 02:54:09 +00:00
Edward Welbourne 782ebeada1 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	qmake/library/qmakebuiltins.cpp
	qmake/library/qmakeevaluator.cpp
	qmake/library/qmakeevaluator.h
	qmake/project.h
QMakeEvaluator:
* evaluateConditional(): one side changed return type, the other
  changed a parameter type.
* split_value_list(): one side changed a parameter adjacent to where ...
* expandVariableReferences(): ... the other killed one overload and
  changed the survivor

	src/corelib/io/qlockfile_unix.cpp
One side changed a #if condition, the other moved NETBSD's part of
what it controlled.

	src/corelib/tools/qdatetime.cpp
One side fixed a reachable Q_UNREACHABLE in toMSecsSinceEpoch(), the
other moved it from the private class to the public one, in the midst
of the "short date-time" optimization, which confused diff entirely.
One side changed a QStringLiteral to QLatin1String, the other rewrote
adjoining code.

	src/network/kernel/qauthenticator.cpp
Both rewrote a line, equivalently; kept the dev version.

	src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
	src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h
One side changed #if-ery that the other removed.

	tools/configure/configureapp.cpp
One side added a check to -target parsing; the other killed -target.

	tests/auto/testlib/selftests/expected_cmptest.lightxml
	tests/auto/testlib/selftests/expected_cmptest.teamcity
	tests/auto/testlib/selftests/expected_cmptest.txt
	tests/auto/testlib/selftests/expected_cmptest.xml
	tests/auto/testlib/selftests/expected_cmptest.xunitxml
Regenerated using generate_expected_output.py
I note that quite a few other expected_* come out changed, now.

There was no git-conflict in
	src/widgets/kernel/qformlayout.cpp
but it didn't compile; one side removed some unused methods; the other
found uses for one of them.  Put FixedColumnMatrix<>::removeRow(int)
back for its new user.

Change-Id: I8cc2a71add48c0a848e13cfc47b5a7754e8ca584
2016-07-19 20:14:40 +02:00
Edward Welbourne 82ea53ad24 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	qmake/library/qmakeevaluator.cpp

One side changed the iterator to use ranged-for, the other changed its
body; they only conflicted because the latter had to add braces around
the body, intruding on the for-line.  Trivial resolution.

Change-Id: Ib487bc3bd6e3c5225db15f94b9a8f6caaa33456b
2016-07-15 20:47:57 +02:00
Anton Kudryavtsev e46e112eb1 Optimize string usage
Use QStringBuilder more.
Use QL1S directly, without QString construction.

Change-Id: Iad844391367681fc1013b9725403d009e7c346e6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-15 08:23:04 +00:00
Friedemann Kleint 69b37630d1 Add "We mean it." warning to HTTP2 protocol handler headers
QtNetwork: qtbase/src/network/access/http2/http2frames_p.h does not have the "We mean it." warning
QtNetwork: qtbase/src/network/access/http2/http2protocol_p.h does not have the "We mean it." warning
QtNetwork: qtbase/src/network/access/http2/http2streams_p.h does not have the "We mean it." warning

Amends change  b2c0f9713c.

Task-number: QTBUG-50956
Change-Id: Ia266a4f8625d89745b3a2dcaff6b15a712e9cadc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-13 10:45:08 +00:00
Friedemann Kleint ff11c363b1 Remove SSL includes from qhttpnetworkconnection_p.h
On Windows, qsslcontext_openssl_p.h pulls in an unsanitized
windows.h, causing the infamous min/max macros to be defined,
requiring a #define NOMINMAX in qhttp2protocolhandler.cpp.

This in turn breaks the MinGW developer build since that has
NOMINMAX globally defined:

access\qhttp2protocolhandler.cpp:40:0: error: "NOMINMAX" redefined [-Werror]

Remove the include, adding missing forward declarations and include
directives to the source files.

Change-Id: Ic1c2c711d87599b15ad6e2d87eae7153a44ace47
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-12 12:36:34 +00:00
Gabriel de Dietrich 8beddf8328 QSslSocketBackendPrivate: Remove QString warnings
Change-Id: I2ab758fe61ea1ba9b84672ac05ac219b85e3de6a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-12 10:46:55 +00:00
Timur Pocheptsov b2c0f9713c HTTP2 protocol handler
Add HTTP2 support in QNAM - QHttp2ProtocolHandler + aux. classes.

[ChangeLog][QtNetwork] Added support for HTTP/2 protocol

Task-number: QTBUG-50956
Change-Id: I3a119cfbb1fb3118d9003225f5e54b46ae2829b6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-08 16:22:32 +00:00
Alex Trotsenko 6f61cfc338 QNativeSocketEngine/Win: fetch connection parameters only once
Exclude sections of code that relate to 'Connecting' state from being
executed in 'Connected' state.

Change-Id: I5e7d28b74dcd9c87c37b4871cc90afc200b2dab9
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-08 13:50:06 +00:00
Anton Kudryavtsev 2788fccd29 Use QStringLiteral more judiciously
Replace it with QL1S in QStringBuilder expressions
and in overloaded functions.

Replace patterns 'QString::number() + QStringLiteral'
and 'QStringLiteral + QString::number()' with
QString::asprintf.

Saves some text size.

Change-Id: Ib39b2332264dfc3df04e77f2c101b47a1030cef4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-08 06:43:02 +00:00
Anton Kudryavtsev 5dc739ba9b Replace QString::trimmed() with QStringRef::trimmed()
... where it's possible. Reduce allocations.

Change-Id: I023adfd316f94948fe50749f60bf55748dca56e2
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-06 18:30:26 +00:00
Marc Mutz a91d0dd369 Q_(U)INT64_C is not a type, so don't use it as if it was
These expressions only work because they contain no non-parenthesized
commas and an int literal is last.

Fix by wrapping only the integer literal in Q_(U)INT64_C.

Change-Id: I6b8e508b6c7c022f4b3342f65c26aab89ce17702
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-06 10:34:38 +00:00
Thiago Macieira 9e49778380 Fix/adapt the uses of {to,set,from}Time_t in the qtbase source code
Move those to the equivalent {to,set,from}SecsSinceEpoch(), except for
the cases that did QDateTime::currentDateTime{,Utc}().toTime_t. Those
are best implemented with QDateTime::currentSecsSinceEpoch().

Change-Id: Ib57b52598e2f452985e9fffd145a366c92cfda20
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-06 06:28:13 +00:00
Alex Trotsenko cddb344f3e QSslSocket: reset connection parameters on disconnect
Otherwise socketDescriptor(), localPort(), localAddress(), peerPort(),
peerAddress(), and peerName() remain uncleared until close() is called.

This could take place when the connection is closed by the remote
endpoint or the user calls disconnectFromHost(). After disconnecting,
connection parameters are no longer valid, while I/O device is still
opened and may have pending data for reading. Usually, the user reads
all incoming data and closes the device independently.

Change-Id: Ic898851c39137faf64019949910f0d94ebb79df7
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-05 19:21:06 +00:00
Edward Welbourne b5695bd5be Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: Ibd81cd1df4a0650d93fcb556a57be90be2e1f569
2016-07-04 15:58:39 +02:00
Ralf Nolden b7744e0b05 Replace LLINDEX macro not present on all BSDs with the code
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>
2016-07-03 10:54:42 +00:00
Lars Knoll 8af681c107 Add qtnetworkglobal.h and qtnetworkglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

That header will later on #include the configuration file
for Qt Network. For now it defines the Q_NETWORK_EXPORT
macro for this library.

Change-Id: I9c45d425baf881c431ed71fd457c7feb2c123855
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-03 07:56:17 +00:00
Liang Qi 200fdd96f0 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	configure
	configure.json

Change-Id: Iba032d9a29c273da2585632bc6e22bbafb961808
2016-07-01 13:21:29 +02:00
Giuseppe D'Angelo 890edc45d8 QSslSocket: improve documentation of the supported protocols
1) To describe a protocol version we should use an "ordinary" name,
not use the values out of the QSsl::SslProtocol enum.

2) Say that we support the latest stable TLS version (1.2, not 1.0).

3) Fix a statement about which protocol is the default one.

Change-Id: I18732914d55060a0c3920f7082f986c262a71ded
Reviewed-by: André Klitzing <aklitzing@gmail.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-07-01 07:49:24 +00:00
Timur Pocheptsov faeaddc1b9 QSslSocket::transmit (macOS/iOS) - do not use invalid context
1. QSslSocketBackendPrivate::transmit can invalidate SSL context
  causing subsequent SSLWrite or SSLRead calls to fail; these report
  errSecParam (as null context is an invalid parameter) spuriously,
  when we should rather report the cause of invalidation.  The OpenSSL
  backend can trigger this when it aborts connection during an SSL
  handshake, on an sslErrors signal.  As transmit() emits readReady(),
  a directly connected slot can trigger the same problem if it aborts or
  closes.

2. If during peer verification (and in checkSslErrors) we disconnect
on sslErrors signal, peer verification must be considered failed and
should not continue handshake/set connectionEncrypted.

Task-number: QTBUG-52975
Task-number: QTBUG-53906
Change-Id: Iacd3b489a4156e25ef3460ace40d21f34a946bed
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-30 08:04:55 +00:00
Liang Qi f27d8b9f57 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: If6ba05867e7c98159e1b94ff71923e8b36bdbccb
2016-06-29 10:10:22 +02:00
Friedemann Kleint 0dc5d8e6c9 Fix some qdoc-warnings for Qt 5.8.
qtbase/src/corelib/tools/qstring.cpp:8341: warning: Unknown command '\length'
qtbase/src/corelib/tools/qstring.cpp:8354: warning: Unknown command '\length'
qtbase/src/corelib/tools/qstring.cpp:8366: warning: Unknown command '\length'
qtbase/src/corelib/doc/src/animation.qdoc:38: warning: Can't link to 'QAbstractAnimation::updateCurrentValue()'
qtbase/src/corelib/io/qdatastream.cpp:529: warning: Undocumented enum item 'Qt_5_8' in QDataStream::Version
qtbase/src/corelib/tools/qdatetime.cpp:4377: warning: No documentation for 'QDateTime::currentSecsSinceEpoch()'
qtbase/src/corelib/tools/qcommandlineoption.cpp:435: warning: Undocumented parameter 'flags' in QCommandLineOption::setFlags()
qtbase/src/network/ssl/qsslconfiguration.cpp:857: warning: Undocumented parameter 'dhparams' in QSslConfiguration::setDiffieHellmanParameters()
qtbase/src/network/ssl/qsslconfiguration.cpp:830: warning: Undocumented parameter 'hint' in QSslConfiguration::setPreSharedKeyIdentityHint()
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: No such enum item 'ErrorUnsafeParameters' in QSslDiffieHellmanParameters::Error
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: No such enum item 'ErrorInvalidInputData' in QSslDiffieHellmanParameters::Error
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'UnsafeParametersError' in QSslDiffieHellmanParameters::Error
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'NoError' in QSslDiffieHellmanParameters::Error
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'InvalidInputDataError' in QSslDiffieHellmanParameters::Error
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:105: warning: Undocumented parameter 'encoding' in QSslDiffieHellmanParameters::QSslDiffieHellmanParameters()
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:129: warning: Undocumented parameter 'encoding' in QSslDiffieHellmanParameters::QSslDiffieHellmanParameters()
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:208: warning: Can't link to 'clear()'
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:277: warning: Undocumented parameter 'dhparam' in operator<<()
qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:277: warning: No such parameter 'dhparm' in operator<<()
qtbase/src/widgets/kernel/qapplication.cpp:999: warning: Cannot find 'QApplication::autoMaximizeThreshold' specified with '\property' in any header file

Change-Id: I4ac00f0fc0dbc4d421cf7c0273635d9681962645
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-06-28 13:27:46 +00:00
Ralf Nolden b3b2f502e9 NetBSD: use paccept() where accept4() is used
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>
2016-06-28 05:49:18 +00:00
Liang Qi dd90af1221 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	mkspecs/common/mac.conf
	mkspecs/features/configure_base.prf
	mkspecs/features/configure.prf
	mkspecs/macx-clang-32/qmake.conf
	mkspecs/macx-clang/qmake.conf
	mkspecs/macx-ios-clang/qmake.conf
	src/network/ssl/qsslsocket_openssl_symbols_p.h

Change-Id: I768b592e8e589662b1fdb9b8cbd633fef26845b6
2016-06-23 14:24:55 +02:00
Liang Qi 5cfb80a28e Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/angle/src/libGLESv2/libGLESv2.pro
	src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp

Change-Id: If8da4cfe8f57fea9f78e7239f378a6302c01674e
2016-06-23 10:29:37 +02:00
Liang Qi 0f4affc0b1 Fix inconsistency between the #if guards in SSL PSK code
The declaration and definition of the forwarding functions for PSK
differed which leads to link errors with some versions of openssl.

Change-Id: I40410f62a584c5dbd2acf5c90422e1243514f8fd
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-22 22:36:23 +00:00
Liang Qi f4f7ae013d Fix inconsistency between the #if guards in SSL PSK code - Part 2
The declaration and definition of the forwarding functions for PSK
differed which leads to link errors with some versions of openssl.

Change-Id: Ic62d87dbd33a77f3c114f0a597a6c0858b22174a
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: André Klitzing <aklitzing@gmail.com>
2016-06-22 20:32:31 +00:00
André Klitzing 71224ccc86 Bump \since 5.7 to 5.8 for QNetworkDatagram
Change-Id: I8dc4a5b7f78d25220d1c473098d5a49e2c3401d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-06-22 06:41:42 +00:00
Liang Qi b3100fbadd Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-06-21 14:07:10 +00:00
Liang Qi ea438b2508 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/global/qsysinfo.h
	src/corelib/kernel/qcoreapplication_win.cpp
	src/gui/text/qdistancefield.cpp
	src/gui/text/qdistancefield_p.h
	src/plugins/platforms/windows/qwindowsglcontext.cpp
	src/plugins/platforms/windows/qwindowsglcontext.h

Change-Id: Ib3500acc2b28553bde06758cd9a2e19eb7fe2978
2016-06-21 08:39:41 +02:00
Timur Pocheptsov 62b11af31e OpenSSL symbols - resolve ALPN-related functions
DEFINEFUNC macro is not enough, RESOLVEFUNC also required.

Change-Id: Ia73c3fa62b594765a74d2ecabb8e109b62ea6027
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-20 19:38:18 +00:00
Thiago Macieira 4da2dda2aa Long live QNetworkDatagram!
This commit adds a new class called QNetworkDatagram that encapsulates
the IP packet header and UDP/IP stack metadata along with the actual
payload data. It can be used for both receiving as well as sending data.

It's called QNetworkDatagram so it can be used by QSctpSocket too, when
that lands.

[ChangeLog][QtNetwork] Added QNetworkDatagram class, along with new
function receiveDatagram in QUdpSocket that returns it and an overload
to writeDatagram that can accept it.

Change-Id: Iee8cbc07c4434ce9b560ffff13ca467f425ddc3d
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-20 16:11:35 +00:00
Liang Qi e32f1a4d61 Merge remote-tracking branch 'origin/5.6' into 5.7
And blacklisted a few tests in tst_QUdpSocket.

Conflicts:
	src/android/jar/src/org/qtproject/qt5/android/QtNative.java
	src/corelib/global/qglobal.cpp
	src/corelib/global/qsystemdetection.h
	src/corelib/io/qfileselector.cpp
	src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp
	tests/auto/network/socket/qudpsocket/BLACKLIST

Task-number: QTBUG-54205
Change-Id: I11dd1c90186eb1b847d45be87a26041f61d89ef6
2016-06-20 08:00:26 +02:00
Liang Qi 3cb56800d5 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp

Change-Id: If899cda251b4dc8b8a7c6764520e88ab719737cd
2016-06-17 10:53:42 +02:00
Liang Qi 3d8c8daae1 Merge "Merge remote-tracking branch 'origin/5.7.0' into 5.7" into refs/staging/5.7 2016-06-16 12:25:24 +00:00
Anton Kudryavtsev 874eb8b44b QtNetwork: use QStringRef to optimize memory allocation
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.

Change-Id: Id7f70e5bd72c91ed210ec463aad1d84fe3b40c15
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-06-16 09:06:56 +00:00
Liang Qi c4e472ea10 Merge remote-tracking branch 'origin/5.7.0' into 5.7
Conflicts:
	src/corelib/tools/qsimd_p.h

Change-Id: I7c6bfc5873d97ad7f51a540dd9c18b9359dde59f
2016-06-16 07:30:02 +02:00
Timur Pocheptsov 71f507788b HPACK implementation
Static Huffman coding + HPACK encode/decode algorithm (for HTTP2)
+ auto test.

Change-Id: I85d6269076cc1d586d17c87bcdee49c21522ef78
Task-number: QTBUG-50946
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-06-15 11:26:45 +00:00
Timur Pocheptsov 23173c725c QSslSocket (OpenSSL) - handle abort/close on sslErrors emitted
If a user's code, attached to sslErrors signal, calls abort/close
or disconnectFromHost but our SSL socket was configured not to verify a peer,
no need to continue handshake after calling checkSslErrors
(and finally crashing on invalid 'ssl' pointer).

Task-number: QTBUG-53906
Change-Id: I7f185511d278f9d6f16e7d6c5ba424707141459c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-06-14 07:29:01 +00:00
Liang Qi 511790fd1a Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	config_help.txt
	configure
	mkspecs/features/uikit/sdk.prf
	src/corelib/global/qhooks.cpp
	src/corelib/io/qfilesystemwatcher.cpp
	src/corelib/io/qlockfile_unix.cpp
	src/corelib/tools/qalgorithms.h
	src/gui/kernel/qwindowsysteminterface.h
	src/gui/text/qtextdocument_p.cpp
	src/network/access/access.pri
	src/network/access/qnetworkaccessmanager.cpp
	src/network/access/qnetworkreplynsurlconnectionimpl.mm
	src/src.pro
	src/testlib/qtestcase.cpp
	src/widgets/kernel/qwidgetbackingstore_p.h
	src/widgets/styles/qwindowscestyle.cpp
	src/widgets/styles/qwindowsmobilestyle.cpp
	tests/auto/corelib/io/qdiriterator/qdiriterator.pro
	tests/auto/corelib/io/qfileinfo/qfileinfo.pro
	tests/auto/gui/kernel/qwindow/BLACKLIST
	tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
	tools/configure/configureapp.cpp

Change-Id: Ibf7fb9c8cf263a810ade82f821345d0725c57c67
2016-06-13 12:46:46 +02:00
Maurice Kalinowski 3394d97edf winrt: Add privateNetworkClientServer to default capabilities
Contrary to our initial assumption, this should be added by default to
allow full functionality during development by default. Developers need
to decide which capabilities to use during the publishing step already,
hence improve DX by adding this.

Task-number: QTBUG-50847
Change-Id: I36e0214f7bcf8610d31851eea172aba3944cfd99
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-06-13 06:13:13 +00:00
Oliver Wolff 6fa74764d9 WinRT: Avoid asserts in socket function with bool return values
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>
2016-06-13 06:13:10 +00:00
Oliver Wolff c111abe060 WinRT: fixed error reporting of QNativeSocketEngine::initialize
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>
2016-06-13 06:13:09 +00:00
Oliver Wolff 0f6ededb15 WinRT: Proper error handling in socket engine's "bind"
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>
2016-06-13 06:13:07 +00:00
Liang Qi cbe332405a Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	configure
	mkspecs/macx-ios-clang/features/default_pre.prf
	mkspecs/macx-ios-clang/features/sdk.prf
	mkspecs/unsupported/freebsd-g++46/qplatformdefs.h
	src/widgets/styles/qgtkstyle.cpp
	tests/auto/corelib/io/qdiriterator/qdiriterator.pro
	tests/auto/corelib/io/qfileinfo/qfileinfo.pro

Change-Id: Ia943555d1e59234a66f7dc65bdfda838e40001b5
2016-06-10 23:27:10 +02:00
Thiago Macieira b05741937c Plug padding holes in QHostAddressPrivate
On ABIs where quint64 is aligned on 8-byte boundaries (such 32-bit
Windows and all 64-bit systems), there was a padding hole of 4 bytes
between QHostAddressPrivate::a and the anonymous union. If we move the
member to after the union, there is no hole anymore.

That operation causes the tail padding to grow from 3 to 7 bytes. Since
we also don't need full 32 bits for the protocol, we can shrink the
structure by 8 bytes on those architectures and by 4 bytes on 32-bit
Unix systems.

Change-Id: I461e9fc7199748faa187ffff1415d6601a7bd777
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-06-09 15:59:24 +00:00
Martin Porcelli 5f3a262a73 QSslSocket: Data is sent after a certificate is downloaded on Windows.
QSslSocket was not transmitting existing data after finishing its
handshake if it had to download a certificate on Windows.

Task-number: QTBUG-48816
Change-Id: Ie35b5f4ca0f6c3c40fe2394166eb31f9f72dac55
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-08 07:42:42 +00:00
Lars Knoll 95a4e5f016 Set ssl in QT_CONFIG when openssl is enabled
Makes things symmetrical with the windows configure and cleans
up the logic in ssl.pri

Change-Id: I4a373afe78e904de7d04baea38c250ff0c9d5062
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-06-08 07:07:15 +00:00
Liang Qi 57057f76ad Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	.qmake.conf
	config.tests/unix/nis/nis.cpp
	mkspecs/unsupported/freebsd-g++/qplatformdefs.h
	src/corelib/tools/qdatetime.cpp
	src/corelib/tools/qsimd.cpp
	src/corelib/tools/qsimd_p.h
	src/network/access/access.pri
	src/network/access/qnetworkreplynsurlconnectionimpl.mm
	src/network/access/qnetworkreplynsurlconnectionimpl_p.h
	src/plugins/platforms/cocoa/qnsview.mm
	src/plugins/printsupport/windows/qwindowsprintdevice.cpp
	tests/auto/corelib/kernel/qobject/tst_qobject.cpp
	tests/auto/network/access/qnetworkreply/BLACKLIST
	tests/auto/widgets/widgets/qopenglwidget/BLACKLIST

Change-Id: I4b32055bbf922392ef0264fd403405416fffee57
2016-06-06 09:04:55 +02:00
Oliver Wolff 265d91da0d WinRT: Rename connectToHost/handleConnectionEstablished
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>
2016-06-04 18:28:47 +00:00
Oliver Wolff 372e3c8592 WinRT: Early return in case of network error
Change-Id: I7c410732f41b86f39b41fd1dccd07815e5ca4e45
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-06-04 18:28:42 +00:00
Jake Petroules 95ea1b1aa8 Remove all code paths related to unsupported Apple platforms.
Now that the minimum deployment target (and thus SDK) is 10.9 for OS X
and 7.0 for iOS, all code paths affecting platform versions lower than
the aforementioned are removed.

Change-Id: Id985c7259c4ac069319d88f2c29c9559ae9e8641
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-06-04 09:24:33 +00:00
Liang Qi 688f70634c Merge remote-tracking branch 'origin/5.6.1' into 5.6
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
2016-06-02 06:01:25 +02:00
Volker Krause 9fdeaf602e Add Q_ENUM for QNetworkAccessManager::NetworkAccessibility.
This is needed for generic property access to work correctly.

Change-Id: I88cd40238a8caf8df6c71b22e2fa0c4d5655a88a
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-01 14:22:24 +00:00
Ralf Nolden 0720569b15 OpenBSD: add /etc/ssl as cert dir
Add the /etc/ssl default path to the list of certificate directories for OpenBSD.


Change-Id: I13dff6a219e2c848501ec9bf191160a48f919515
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-01 10:36:01 +00:00
Ralf Nolden 9dd58c6239 Compile fix: OpenBSD does not have <arpa/nameser_compat.h>
Fix compiling under OpenBSD by using Q_OS_OPENBSD define for missing
include file and adding required typedef. Obtained from OpenBSD ports
patches for qt-5.5.1 at
http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/x11/qt5/patches/

Change-Id: Ide223bffb6b116e8341d0eb39329af4d7a0be6a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-06-01 10:35:54 +00:00
Ralf Nolden a9bef62ec2 Compile fix for OpenBSD using Q_OS_OPENBSD defines
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>
2016-05-31 11:39:42 +00:00
Thiago Macieira 5c2ff22ba1 Use void instead of uchar in the endian-swapping function parameters
This allows us to pass pointers to storage that is not an array of
uchar, which it hardly ever is.

Change-Id: Ifea6e497f11a461db432ffff14490d2c2df21906
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-05-26 18:02:49 +00:00
Topi Reinio 72e084165e Doc: Fix documentation warnings for QSslDiffieHellmanParameters
qssldiffiehellmanparameters.cpp:107: warning: Unknown command '\encoded'
qssldiffiehellmanparameters.cpp:131: warning: Unknown command '\device'
qssldiffiehellmanparameters.cpp:276: warning: Cannot find 'operator!=(...)'
in '\fn' bool QSslDiffieHellmanParameters::operator!=(const QSslDiffieHellmanParameters &other) const

Change-Id: Ieb0f27f0c01c799323f4b69b7f2474513c67d443
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-26 13:00:34 +00:00
Liang Qi 2fb026d58b Merge remote-tracking branch 'origin/5.6.1' into 5.7.0
Conflicts:
	src/corelib/tools/qsimd_p.h
	src/network/socket/qnativesocketengine_winrt.cpp

Change-Id: I2765b671664c2a84839b2f88ba724fdf0c1fa7c6
2016-05-26 13:04:32 +02:00
Jake Petroules 4605ca2013 Remove QNetworkReplyNSURLConnectionImpl.
This class is no longer needed now that SecureTransport is the default
SSL backend on iOS. It also uses NSURLConnection, which is deprecated
on iOS and tvOS and completely prohibited on watchOS (in favor of
NSURLSession).

[ChangeLog][Important Behavior Changes] The NSURLConnection backend of
QNetworkAccessManager has been removed, since SecureTransport is the
default SSL backend on iOS and is enabled by default. This means that
building with -no-openssl -no-securetransport will no longer provide SSL
capabilities on iOS.

Task-number: QTBUG-45031
Change-Id: I86b774fa369c7d76197bfc0504d5ad234bb47e5c
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-05-26 01:51:37 +00:00
Mikkel Krautz 2cf63c71eb Add settable QSslDiffieHellmanParameters for QSslSocket-based servers.
Only the OpenSSL backend is supported right now.

[ChangeLog][QtNetwork][SSL/TLS support] It is now possible to
set custom Diffie-Hellman parameters for QSslSocket-based servers.

Change-Id: I50148873132cd0ec7e414250b107b6b4cbde02ea
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-25 20:00:12 +00:00
Alex Trotsenko 37a0e9c180 QNetworkReply: remove double buffering
Since 5.7 we can write downloaded byte arrays directly to the
QIODevice's internal read buffer without any memcpy/alloc overhead.
This makes various other buffers redundant, so remove them.

Task-number: QTBUG-45926
Change-Id: I577af70f856c9b852b7569a0070ae2bcbb4faaae
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-05-25 18:10:07 +00:00
Liang Qi 56d6e000f7 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	mkspecs/wince80colibri-armv7-msvc2012/qmake.conf
	qmake/generators/win32/msvc_vcproj.cpp
	src/corelib/global/qnamespace.h
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qfsfileengine_win.cpp
	src/corelib/tools/tools.pri
	src/network/ssl/qsslconfiguration_p.h
	src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp
	src/plugins/platforms/windows/windows.pri
	src/src.pro
	src/tools/bootstrap/bootstrap.pro
	src/tools/uic/cpp/cppwriteinitialization.cpp
	src/widgets/dialogs/qfilesystemmodel.cpp
	tests/auto/testlib/selftests/expected_cmptest.teamcity
	tests/auto/testlib/selftests/expected_cmptest.txt

Change-Id: I4d2ac78f0dcc97f008186bbbc769c6fe588ab0e5
2016-05-23 21:09:46 +02:00
Edward Welbourne 932cce18f7 QSocks5SocketEngine: connect after auth fail as if connecting afresh.
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>
2016-05-23 10:55:00 +00:00
Jesus Fernandez c18b802e33 Fixed variable type
A port was being assigned to qint16 instead of quint16.

Change-Id: I9414e2dcca52beab1bc17ef61cfff56db8ab83a0
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-21 19:59:06 +00:00
Oliver Wolff a1dccd0708 WinRT: Do not assert on socket close
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>
2016-05-20 06:08:57 +00:00
Liang Qi 818014b449 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	configure
	src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
	src/network/access/qnetworkaccessmanager.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
	src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp
	src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h
	src/widgets/widgets/qlineedit_p.cpp
	src/widgets/widgets/qlineedit_p.h
	src/winmain/winmain.pro
	tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp
	tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
	tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
	tests/auto/testlib/selftests/expected_cmptest.teamcity
	tests/auto/testlib/selftests/expected_cmptest.txt
	tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
	tools/configure/configureapp.cpp

Change-Id: Ib9997b0d0f91946e4081d36c0c6b696c5c983b2a
2016-05-19 12:55:27 +02:00
Liang Qi 640441882d Merge remote-tracking branch 'origin/5.6.1' into 5.6
Conflicts:
	src/network/socket/qnativesocketengine_winrt.cpp

Change-Id: I8edb72f8ba958d80c3d7993b3feaaae782ca8d9c
2016-05-19 06:31:06 +02:00
Oliver Wolff eba979f695 WinRT: Do not try to cancel IO for udp sockets on socket close
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>
2016-05-18 09:07:49 +00:00
Mike Krus 03e9c6f4a6 Add support for Apple tvOS
Pass -xplatform macx-tvos-clang to configure to build.
Builds device and simulator by default.

Added ‘uikit’ platform with the common setup.
Also added QT_PLATFORM_UIKIT define (undocumented).
qmake config defines tvos (but not ios).

tvOS is 64bits only (QT_ARCH is arm64) and requires bitcode to be
embedded in the binary. A new ‘bitcode’ configuration was added.
For ReleaseDevice builds (which get archived and push to the store),
bitcode is actually embedded (-fembed-bitcode passed to clang). For all
other configurations, only using bitcode markers to keep file size
down (-fembed-bitcode-marker).

Build disables Widgets in qtbase, and qtscript (unsupported,
would require fixes to JavaScriptCore source code).

Qpa same as on iOS but disables device orientation, status bar, clipboard,
menus, dialogs which are not supported on tvOS.

Change-Id: I645804fd933be0befddeeb43095a74d2c178b2ba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-05-17 16:11:23 +00:00
Joerg Bornemann 082ee835b0 QLocalSocket/Win: Use QIODevice's internal write buffer
Remove the extra write buffer from QLocalSocketPrivate and use
QIODevice's new internal write buffer.

Change-Id: I4297774ee89da2df59782adae8b804296e7f3301
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-05-17 11:01:39 +00:00
Joerg Bornemann 1675d9a1b2 QLocalSocket/Win: use QRingBuffer::append
Use QRingBuffer::append instead of an explicit reserve + memcpy.

Change-Id: I237d1e43a377e156c148e89e410e15e400e1e426
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-05-17 11:01:35 +00:00
Maurice Kalinowski 8714c99f65 winrt: Fix potential crash when reading closed sockets
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>
2016-05-17 09:58:42 +00:00
André Klitzing aebb54b24b Add ephemeralServerKey to isNull() and operator==
Change-Id: Iacd0f55886847630b84a8037d8d26504c558c90e
Reviewed-by: Sebastian Lösch <Sebastian.Loesch@governikus.com>
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-05-13 20:27:36 +00:00
Jesus Fernandez 2ac3fab45f Fixed crash in QAuthenticator::operator==
[ChangeLog][QtNetwork][QAuthenticator] Fixed crash when
comparing a initialized QAuthenticator with an uninitialized
QAuthenticator.

Task-number: QTBUG-53338
Change-Id: Ib8b732b9c65c02ee542885e5d6fe9bd1589a6b1a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-13 03:58:06 +00:00
Marc Mutz 656e6ae9ea QtNetwork: port the last remaining Q_FOREACH loop and add QT_NO_FOREACH
Port the last remaining Q_FOREACH user in QtNetwork to
C++11 range-for and mark the library as Q_FOREACH-free,
using QT_NO_FOREACH.

Change-Id: I8977f151e3575422fc1154677e035274c018d66f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-12 21:42:05 +00:00
Alex Trotsenko ac2ccb1559 QHttpSocketEngine: set error on unsupported operations
Force overloads which relate to UDP or listening to fail with a
'UnsupportedSocketOperationError' error code.

Change-Id: I057c47864ee1d9c95b413edfda977dd0607844cb
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-12 17:21:53 +00:00
Topi Reinio 72e3fcce38 Doc: Remove repository name from examplesinstallpath
Examples in binary packages now directly match the install path.

Change-Id: Ic1487bc766cfd3b0a0a340cc4ae4ba49d953eaa6
Task-number: QTBUG-52953
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-05-12 12:15:52 +00:00
Liang Qi 990969655c Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	config_help.txt
	configure
	src/corelib/io/qprocess_wince.cpp
	src/plugins/platforms/windows/qwindowstheme.cpp
	src/plugins/platforms/xcb/qxcbbackingstore.cpp
	tests/auto/corelib/tools/qtimezone/BLACKLIST
	tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
	tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp

Change-Id: I26644d1cb3b78412c8ff285e2a55bea1bd641c01
2016-05-12 08:33:08 +02:00
Simon Hausmann 5e51b15066 Prospective MSVC 2013 build fix
MSVC 2013 does not like QStringLiteral between brackets.

Change-Id: Ic42f80b7a3abbb48df3d0e222bd5c868045a0ded
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-10 13:55:29 +00:00
Lorn Potter 1c2210b7b1 make sure QNAM reacts to configuration changes
Task-number: QTBUG-49760
Change-Id: Ic52fc9f7999f3dd00ef4022c959361782bd1ccd2
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-05-07 17:29:12 +00:00
Liang Qi dbef41f43e Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	examples/qtestlib/tutorial5/containers.cpp
	examples/widgets/tools/tools.pro
	src/corelib/io/qprocess.cpp
	src/corelib/io/qprocess_unix.cpp
	src/corelib/io/qprocess_win.cpp
	src/network/kernel/qdnslookup_unix.cpp
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	tools/configure/configureapp.cpp

Change-Id: I838ae7f082535a67a4a53aa13a21ba5580758be8
2016-05-06 15:36:44 +02:00
Alex Trotsenko 4ef269963b Avoid use of v4-mapped QHostAddress::AnyIPv4 local address on Windows
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>
2016-05-04 17:16:54 +00:00
Marc Mutz f3af7fce4a QtNetwork: eradicate Q_FOREACH loops [rvalues]
... by replacing them with C++11 range-for loops.

This is the simplest of the patch series: Q_FOREACH took a
copy, so we do, too. Except we don't, since we're just
catching the return value that comes out of the function
(RVO). We can't feed the rvalues into range-for, because
they are non-const and would thus detach.

Change-Id: I42c9c44d948ab1512a69d42890187bc3cf2d7e58
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-05-04 05:21:25 +00:00
Liang Qi 6357813207 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	configure
	src/3rdparty/double-conversion/include/double-conversion/utils.h
	src/corelib/global/qnamespace.qdoc
	src/corelib/tools/qsimd_p.h
	tests/auto/corelib/io/qfile/tst_qfile.cpp

Change-Id: I3ca1007bab5355d251c13002a18e93d81c254d34
2016-05-03 15:49:15 +02:00
Marc Mutz 5a76a3fb03 QtBase: use printf-style qWarning/qDebug where possible (II)
The printf-style version of QDebug expands to a lot less code than the
std::ostream-style version. Of course, you pay in type safety (but
compilers warn about it these days), you cannot stream complex Qt
types and streaming QStrings is awkward, but in many cases you
actually improve on readability.

But the main reason is that something that's not supposed to be
executed under normal operation has no business bloating executable
code size.

This is not an attempt at converting all qWarnings() to printf-style,
only the low-hanging fruit.

In this second part, replace
   qWarning() << "" << non-QString
with
   qWarning("..%.", non-QString).

QString (and QUrl etc) have special escaping handling when streamed
into QDebug, so leave those alone. They also seem to expand to less
code than the qPrintable() alternative, so there's no reason to
replace them.

Saves 2KiB, 3.4KiB, ~750b and ~450b in text size in QtCore, Gui,
Network and Widgets, resp., on optimized GCC 5.3 AMD64 builds.

Change-Id: Iae6823e543544347e628ca1060d6d51e3b04d3f4
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2016-05-03 04:35:06 +00:00
André Klitzing 0eaac0a3a9 Add support for PSK on server side
[ChangeLog][QtNetwork][QSslSocket] TLS PSK ciphers are possible in server sockets.

Task-number: QTBUG-39077
Change-Id: Iaa854a6f50242deae5492f2e4759c727488995f5
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-05-02 20:33:00 +00:00
Alex Trotsenko 9af2cccc59 QNativeSocketEngine: fix build in debug mode under Windows
Change-Id: Id9b42f3d40b82ae6a8d581b0fbf6fd0b2ae589aa
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-05-02 17:27:14 +00:00
Timur Pocheptsov 9f416fad36 qsslsocket/context_openssl - ALPN and NPN, not ALPN or NPN
ALPN and NPN should not be mutually exclusive, it's possible that our
peer does not support ALPN but does support a protocol we can negotiate
via NPN. So use them both.

Change-Id: Ib3c8066d89117efab55ac8435cc2c806c7a1ece0
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-05-02 15:37:38 +00:00
Alex Trotsenko a4d26cf522 QWindowsPipeWriter: ensure validity of the write buffer
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>
2016-04-30 13:13:26 +00:00
Thiago Macieira c9f9f54d3f Remove the use of QMutexPool in QHostInfo and QDnsLookup
Q_GLOBAL_STATIC does the thread-safe protection for us. And who said we
could only use non-POD types? We can just use a boolean!

Change-Id: Ifea6e497f11a461db432ffff1449b0a88d75d194
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-04-30 03:01:10 +00:00
Felix Braun cedc554321 QHostAddress: comparator with flexible conversion rules
Add a named comparison method that allows the caller to
specify in how far a translation between IPv4 and IPv6 should be
performed before comparing.

Change-Id: I9aeffcd4539a6c0537c083c4553357b22167df3f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-04-29 16:25:08 +00:00
Liang Qi b894a8def5 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	mkspecs/features/qml_module.prf
	mkspecs/features/qt_common.prf
	src/gui/text/qzip.cpp
	src/plugins/platforms/cocoa/qnsview.mm
	src/plugins/platforms/windows/array.h
	src/testlib/qtestcase.cpp
	src/widgets/dialogs/qfilesystemmodel.h

Change-Id: Ie41c5868415b81f7693c80e045497035504bb210
2016-04-29 17:55:20 +02:00
Liang Qi b159a1c3e0 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-04-27 09:46:33 +00:00
Anton Kudryavtsev 01d526d18b QtNetwork: use const (and const APIs) more
For CoW types, prefer const methods to avoid needless detach()ing.

Mark predictNextRequest() as const, because this method
does not modify the object.

Change-Id: Ic94e2b31445ece46ab1423bf5b5f4e66d9a5b6ca
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-04-27 08:36:05 +00:00
Liang Qi 23a36fd2bf Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/io/qprocess_win.cpp
	src/widgets/itemviews/qheaderview.cpp

Change-Id: I0a59ade9cd6e91f770fdf298a7d72a41e79fd761
2016-04-27 09:18:05 +02:00
Marc Mutz 7565b4ec95 QSslSocket: remove unused variable in q_X509Callback()
It's been unused ever since it was added in
bba86a01c9.

Change-Id: I6d5bc27a0744d37f873245c92a4e6ba8fc90c062
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-26 16:48:10 +00:00
Liang Qi 75d4742e04 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-04-26 11:08:23 +00:00
Liang Qi bb4b86618d Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	config.tests/unix/compile.test
	configure
	src/android/jar/src/org/qtproject/qt5/android/QtMessageDialogHelper.java
	src/corelib/global/qglobal.cpp
	src/widgets/kernel/qapplication.cpp
	src/widgets/styles/qwindowsvistastyle.cpp
	tests/auto/corelib/kernel/qobject/tst_qobject.cpp

Change-Id: I067083f34e5290aa5f7565e40c30a069cc37b83a
2016-04-25 14:03:45 +02:00
Marc Mutz 7ba9863e32 Simplify code in QSpdyProtocolHandler::parseHttpHeaders()
Instead of checking for the presence of a NUL,
then splitting the QByteArray at NUL separators
just to join the parts with different binders,
simply use replace('\0', ...).

Change-Id: I0e0453b80f63cffce4a0ff152120ece754211166
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-25 07:39:58 +00:00
Marc Mutz db27f3d5a7 QtNetwork: eradicate Q_FOREACH loops [const-& returns]
... by replacing them with C++11 range-for loops.

The function QObject::children() returns by const-reference,
so its result can be passed to range-for without further changes.

Change-Id: Ic330a8e110d6dd5624b9e328ece2a614d5c71e4f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-25 07:39:10 +00:00
Marc Mutz bac6da10dd QtNetwork: eradicate Q_FOREACH loops [needing qAsConst()]
... by replacing them with C++11 range-for loops.
To avoid detaches of these mutable Qt containers,
wrap the container in qAsConst().

Change-Id: I47c5308a6ad220b4c5495e55a3b0d38547bfa8d9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-25 07:38:59 +00:00
Marc Mutz 036b404032 QtNetwork: eradicate Q_FOREACH loops [already const]
... (or trivially marked const) local variables or
parameters, by replacing them with C++11 range-for
loops.

Also ported one indexed loop.

Change-Id: Idddcac48ce7527b1ea674671ceb9aaf4d31fb42e
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-25 07:38:50 +00:00
Alex Trotsenko 21b3e2265a QAbstractSocket:waitForReadyRead(): fix handling UDP
Allow sockets in bound state to wait for notifications.

Task-number: QTBUG-52449
Change-Id: I5c02bd61db68abca652312d4d59023963b05b3c5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-04-23 06:03:09 +00:00
Timur Pocheptsov a9e7bf9ffd _q_networkSessionStateChanged - fix weird logic
a != A || a != B looks suspiciously wrong.
Found, unfortunately, only by Coverity (CIDs 152247, 152249).

Change-Id: Ia7ec810dde2a3a33ae6fc5644a4eebf279dcffe8
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-04-22 10:05:45 +00:00
Timur Pocheptsov d31bc5cbf9 QNetworkReplyImplPrivate - potential nullptr dereference
Found by Coverity, CID 11351. If we check 'if (backend)' at one line,
not clear why we do 'if (bakcend->canResume())' two lines above without any test.
Also, 'delete backend' is noop if backend is nullptr, so ...
even this 'if (backend)' is ... not needed.

Change-Id: I7a46ce04baeb9251debb7b246954911df58880ca
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-04-19 17:53:48 +00:00
Timur Pocheptsov 3e9ed8ee19 initializeInflateStream - assert that stream is not null
Coverity is not happy with us testing a pointer (not null) in a couple of
places but not in initializeInflateStream. In fact we _always_ test this
pointer _before_ calling initializeInflateStream. Anyway, let's make
this pre-condition clear by Q_ASSERT()ing it.

Change-Id: Ibce99ef6ff1d4e09e3a446a672fa28fc93ab832c
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-04-19 13:35:57 +00:00
Anton Kudryavtsev 35b0ecf5da QtNetwork: replace Java-style iterators
... with STL-style iterators or with algorithms.
Java-style iterators have overhead.

Introduce local template separate_if algorithm from kleopatra
project to simplify current code.
http://api.kde.org/4.3-api/kdepim-apidocs/kleopatra/html

Done-with: Marc Mutz <marc.mutz@kdab.com>
Change-Id: Ib154f80f46f8041d9cafd81bed0e1982b21541cf
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-04-19 11:26:02 +00:00
Friedemann Kleint ffde99d5a0 Windows CE cleanup.
Remove remaining CE-specific files and #ifdefs.

Change-Id: I407e14cade64c9eaa414f333764b4f82a75befde
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2016-04-14 12:45:56 +00:00
Alex Trotsenko f15cfbfdee Improve QHttpNetworkReplyPrivate::readStatus()
Check HTTP signature only once in cycle.

Change-Id: I06f6b778429243ed17cd4175e532ef201f1e5551
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-04-14 11:55:13 +00:00
Oliver Wolff 208f364a95 WinRT: Removed superfluous callback that handles completed binds
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>
2016-04-13 10:17:10 +00:00
Oliver Wolff b501fc3b33 winrt: Register for socket reads for correct socket engine
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>
2016-04-13 10:17:08 +00:00
Oliver Wolff 29a8c2d9b9 winrt: Remove superfluous socketDescriptor assignment
Change-Id: I567418f21eef2f07e0d5283f46a02305d1153e0a
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-04-13 10:17:06 +00:00
Oliver Wolff db051bc04f winrt: only emit readRead signal if the notifyOnRead flag is set
Change-Id: Ie52ddc8b0f70ad64d8f503b1942b9da6b72d6c99
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-04-13 10:17:03 +00:00
Oliver Wolff 1e229c7041 winrt: Cancel pending read operations before tcp sockets are closed
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>
2016-04-13 10:17:00 +00:00
Liang Qi b94773c9c8 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	config.tests/unix/compile.test
	src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
	src/testlib/qtestcase.cpp
	src/testlib/qtestcase.qdoc

Change-Id: Ied3c471dbc9a076c8de33d673bd557e88575609d
2016-04-13 06:55:37 +02:00
Oliver Wolff cd17321213 winrt: Use correct socket error on socket close
Change-Id: I6d39b091e48a911534cb79d42d33d16041261cfb
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-04-11 11:22:45 +00:00
Oliver Wolff 14399b427c winrt: fix callbacks by moving them to the xaml thread
Change-Id: I7b4f007107e21c02646140acd5ebe5745ca79bce
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-04-11 11:22:41 +00:00
Oliver Wolff 09487deeae WinRT: Enable broadcasts
The CanBroadcast flag for QNetworkInterface indicates the ability to work
in broadcast mode. As WinRT natively supports udp broadcasts and they work out of the box
this flag should be set there.

Task-number: QTBUG-49026
Change-Id: I6623014287fe63dc1c353a6de265ebdf9114d013
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2016-04-11 11:22:36 +00:00
Liang Qi f34e73a16a Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	src/corelib/kernel/qobject.cpp
	src/gui/painting/qpaintengine_raster.cpp

Change-Id: I74e1779832f43d033708dcfd6b666c7b4f0111fb
2016-04-11 09:12:36 +02:00
David Faure 8686ff0d9c Doc: clarify redirection handling in QNetworkRequest
The text for RedirectionTargetAttribute said the app has to handle redirections,
and only said that this attribute wouldn't be set if FollowRedirectsAttribute is set,
which was a bit confusing to read, before reading what exactly FollowRedirectsAttribute does.
It does more than removing the other attribute, it actually follows the redirection...

Change-Id: Idc634996e7b521ba05c05ca52438e47f1a411c85
Reviewed-by: Mandeep Sandhu <mandeepsandhu.chd@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2016-04-10 07:37:58 +00:00
Jake Petroules 57ecc00978 Note the introductory version of network redirection related enums.
These were missed in d815de8c26 which
originally added these values.

Change-Id: I69618c90e71f7cc01eef3db477427759e62f626b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Mandeep Sandhu <mandeepsandhu.chd@gmail.com>
2016-04-09 00:01:59 +00:00
Weng Xuetian b0bfe8de68 Delete the dangling generic engine object.
Change-Id: I7d7531f1a678bf186e3a992091344fff64721dec
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-04-08 16:15:44 +00:00
Timur Pocheptsov b414b9e6cd Remove redundant QT_PREPEND_NAMESPACE
We are already QT namespace, no need in QT_PREPEND_NAMESPACE.
The original code had invalid '::' thus referencing a name from
a global scope, it was fixed by QT_PREPEND_NAMESPACE, but
just removing '::' is enough.

Change-Id: Icda2a2ce8e474a358b74edd49bca487621608e78
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2016-04-08 12:46:13 +00:00
Maurice Kalinowski 34e0e908c8 winrt: Add capabilities as specified by modules
So far no capabilities (but internetClient for Windows 10) were added by
default, which forced developers to always manually edit the
WINRT_MANIFEST.capabilities(_device) property.

This allowed to leave out non-required capabilities and keep the created
manifest clean, examples being microphone for multimedia.

However, this also breaks first user experience as deeper knowledge
about this topic is required. Furthermore this is inconsistent with
other platforms like Android, where all capabilities are set by default
and developers need to edit the manifest manually in any case.
With this change, modules can define the capability set to enable all
features in the module. If developers want to disable some again, they
need to adapt the generated manifest. From our experience this needs to
be done in any case, latest at publishing stage when the store
manipulates the manifest.

Task-number: QTBUG-38802
Change-Id: I6d522268ee0afbfa00a30dbdd5e6ec9f415bebf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-04-07 20:03:55 +00:00
Alex Trotsenko ccb693299e Rework toggling the state of read notifier on unbuffered socket
To avoid infinite loop on unbuffered socket, previous implementation
always disabled the read notifications before emitting a readyRead()
signal. So, it's very likely that the socket will toggle the state of
notifier twice (on->off->on) in one notification cycle.

This patch prevents this unnecessary toggling by deferring the
notification disabling in canReadNotification() to the next
notification cycle.

Change-Id: Iebc5a7ad18a6f40ea1cf63e7f1b12f6c180cbf7a
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-04-07 11:45:41 +00:00
Liang Qi ee0951d69b Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/network/access/qftp.cpp
	src/widgets/itemviews/qheaderview.cpp
	src/widgets/itemviews/qlistview.cpp
	tests/auto/network/access/qftp/tst_qftp.cpp

Change-Id: I9f928f25d45d8944dd60bb583f649fc1615bc5d9
2016-04-07 10:47:20 +02:00
Sebastian Lösch 7d1e6ca199 Limit URLs for proxy auto config to 2083 chars
On Windows only URLs up to 2083 characters are supported, so longer
URLs are truncated.

Task-number: QTBUG-52271
Change-Id: I625e4d089df4d977d39e61e5831611e04260e729
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2016-04-07 08:38:21 +00:00
Friedemann Kleint d37239aa41 QFtp: Use UTF-8 encoding.
According to RFC 2640, FTP uses UTF-8 encoding. Fix the conversions
accordingly.

Task-number: QTBUG-52303
Change-Id: I615199b3d074fc3861f25df113dda672525766b6
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-04-07 04:25:57 +00:00
Joerg Bornemann 181e861625 Remove superfluous includes from qlocalsocket_win.cpp
Change-Id: I4f641966af3443d0c487df95d2e565182a945bf3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2016-04-06 14:48:06 +00:00
Liang Qi f285687584 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	examples/corelib/ipc/ipc.pro
	src/plugins/platforms/xcb/qxcbbackingstore.cpp
	tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp

Change-Id: Ia006e10ff1732fe78f90138c41f05b59b49486cf
2016-04-05 14:22:45 +02:00
Anton Kudryavtsev f68c62cdfc QSslSocket (Mac): optimize string usage
Wrap C-string in QL1S to prevent memory allocation.

Replace startsWith() with comparing to first element of
(existing) splitting result.

Change-Id: Id47a0c350e4027abecd1394c1ee5dec8f346af00
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
2016-04-04 04:58:00 +00:00
Alex Trotsenko a7b0427508 QAbstractSocket: simplify connect timer handling
Remove:
 - handling in abort(): timer will be stopped in resetSocketLayer();
 - unneccesary checks in _q_testConnection(): if we have a valid timer
   we should stop it anyway;
 - code duplication in _q_testConnection(): do not try to stop the
   timer twice.

Change-Id: I039ae583ae4e6c4a90dc102c7d93a30e46632374
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2016-04-03 13:24:43 +00:00
Friedemann Kleint 77c0730f55 QtNetwork: Remove documentation references to QUdpDatagram.
Fixes  documentation warnings:
qtbase/src/network/kernel/qnetworkinterface.cpp:528: warning: Can't link to 'QUdpDatagram::interfaceIndex()'
qtbase/src/network/kernel/qnetworkinterface.cpp:587: warning: Can't link to 'QUdpDatagram::interfaceIndex()'

Change-Id: I6579f7880b5e183b9c68dfe08fa7671f1511fdfa
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-04-01 18:16:06 +00:00
Anton Kudryavtsev bc2565146a QtNetwork: use reserve to optimize memory allocation
Change-Id: Ia328bae007831f4b78a5688aaf03ae59c12b7425
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-03-31 09:16:59 +00:00
Anton Kudryavtsev 3cbe25c9a6 QtNetwork: use QStringRef to optimize memory allocation
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.

Create QString from QStringRef only where necessary.

Change-Id: I697f776c60003629990cfd197534ffed63bafe2f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-03-31 07:47:29 +00:00
Rolland Dudemaine d05673ac20 Adjust include file for native sockets on INTEGRITY.
Change-Id: Ibe957eb510fd46d828acedd3e66fa0b49c9a42f0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-03-31 07:27:59 +00:00
Eirik Aavitsland 91f8c9cc70 Remove the traces of the discontinued android-no-sdk platform
Cleaning out the workarounds for the discontinued "Embedded Android"
platform of Boot2Qt.

Change-Id: I0ff9d770e82a43457fb7e5da0428f4597ead4038
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-03-30 10:12:34 +00:00
Friedemann Kleint 04aa760711 QtNetwork: Remove Windows CE.
Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses in library,
examples and tests.

Task-number: QTBUG-51673
Change-Id: I3706336395620522ceda414d7437295d9ec64f16
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-29 20:28:18 +00:00
Jani Heikkinen cd46a2daf5 Unify license header usage.
Update files using old header.LGPL3 to header.LGPL
Update files using old FDL template to use new one
Update files using old BSD template to use new one

Change-Id: I36a78272516f9953d02956522f285b40adfc8915
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-29 10:20:03 +00:00