Commit Graph

194 Commits (a8a8a3bfbd4539e242360bc8a561390bbf9615f7)

Author SHA1 Message Date
Adrien Bustany a7d1b6419d QNetworkProxyFactory: check all the proxy environment variables
QNetworkProxyFactory used to check only for the http_proxy environment
variable in systemProxyForQuery. This patch makes it look as well in
https_proxy, ftp_proxy and all_proxy. http_proxy is still used as a
fallback value.

Change-Id: I7934af70d191cd17dbce3b3789260ae1a8332986
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-05 03:51:03 +02:00
Shane Kearns 360c481840 Remove not present networks from QNetworkInterface::allInterfaces
Windows 7 accumulates networks over time with the status
"not present". This is so it can remember whether a given network
was a public, home or work network next time you use it.
By default, these networks are not returned when enumerating
network interfaces, but we specified a flag to request all networks.
These networks are generally not useful so use the default behaviour
of not reporting them.

Task-number: QTBUG-18824
Change-Id: I4edc4cea83a0e97a88ac649b7d8af95a8a600b89
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-05 03:49:58 +02:00
Shane Kearns bd7cd34673 Document new APIs in 5.0
The \since 5.0 directive was missing from many places.

Task-number: QTBUG-24001
Change-Id: I191ba8891ae66d78f923164bcab2fccb16eabef9
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-03 19:34:58 +02:00
Robin Burchell d1e8d9a347 Pull in netinet/in.h. Required for definition of sockaddr_in and friends.
Change-Id: I3b1c7dc1c08ec54f5537b6019dc2554763538cfd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-03 16:11:58 +02:00
Robin Burchell 266913a649 Stub out QDnsLookup on Android.
Android's resolv.h is completely crippled, so we can't use the libc resolver.

Change-Id: I07e310e3561c719f4fe0bf08e58b5194f5a76e4a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-02 22:32:17 +02:00
Robin Burchell dac828dd81 Android's resolv.h is busted, so stub out QHostInfo::localDomainName().
Change-Id: Idcf5ca7298eed55121b690906885af0eb3fe0b9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-02 22:32:13 +02:00
Robin Burchell a195a5bfd6 Disable code using if_nameindex on Android.
Android doesn't support if_nameindex.

Change-Id: Idb0cbf52e6cffb19fe65e30430ef53626e0eeac7
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-02 22:32:07 +02:00
Adrien Bustany 3013758f17 QNetworkProxyFactory: check the "no_proxy" environment variable
The QNetworkProxyFactory class considered the http_proxy environment
variable, but not the no_proxy one. This commit adds no_proxy handling,
loosely modeled after the way curl does it.

Change-Id: Ibb9e5ffcb30fed5c95dc9fc3bc4177e20d025a50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-05-01 14:56:38 +02:00
Shane Kearns fffc900f78 Windows - "bypass proxy for local..." also affects IP addresses
If the "bypass proxy for local addresses" option is enabled in
the windows proxy configuration, then do not use the proxy for
any IP address in the subnet of any network interface.

As the systemProxyForQuery api is now offering HTTP proxy tunnels
for TCP sockets, this change avoids local ad-hoc network
connections being routed through the proxy.
In the case where the local address was on a different interface to
the proxy server, it may have been unreachable through the proxy.
For example IP over USB or Bluetooth.

Change-Id: I0842732832a7795112be029d923ed168edc008d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-20 22:23:23 +02:00
Ian Dean 22042dd769 Change coreservices -> ios
Replace "contains(QT_CONFIG, coreservices)" with "!ios" in config files.
Replace "QT_NO_CORESERVICES" with "Q_OS_IOS" in source files.

Change-Id: Id3b02316b245a24ce550e0b47596d18a4a409e4f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-19 01:57:58 +02:00
Lars Knoll 64255ef650 Merge remote-tracking branch 'origin/api_changes'
Change-Id: I964b0a6f5c38351fdfafb8a2a128a349ff8c89d1
2012-04-17 12:58:52 +02:00
Bjoern Breitmeyer 0e317af13f Fixed networkproxy build under WinCE
The used functionality is partially not available under WinCE.
qnetworkfunctions_wince.h encapsulates the needed extra symbols.
It only needs to compile as the functions are loaded dynamically.

Change-Id: Ieb9010d4f6c7f94d39918b869ac503976e094e49
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-16 19:04:38 +02:00
Lars Knoll 9bd0323551 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/corelib/io/qurl.cpp
	src/gui/kernel/qwindow.cpp
	src/tools/moc/generator.cpp
	src/widgets/kernel/qwidget_qpa.cpp
	src/widgets/styles/qstyle.h
	src/widgets/widgets/qtabbar.cpp
	tests/auto/corelib/codecs/utf8/tst_utf8.cpp

Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
2012-04-16 12:04:34 +02:00
Bjoern Breitmeyer 71cfddeecc fixed compiling of QDnsRunner for wince and windows desktop
ce only has the utf16 variant desktop has all variants
of the DnsQuery call. Unified it to the utf16 variant.

Change-Id: Ic126c3f53da71c85a41a5c24c85970335700bcf0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-12 18:55:04 +02:00
Qt4iOS 62cda62c0c Modified project files to be iOS compatible.
Removed some MacOS source code files from iOS build. Use unix standard
paths for now (iOS-specific implementation will come later).

Change-Id: I8b2731b431b3a379a1ec4ec07d227e886209e3e9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-11 15:42:14 +02:00
Aron Rosenberg c524bbbb8a Add Proxy Auto Config support (PAC) on Mac
Adds support for fetching and parsing Proxy Auto Config files if one
is specified in the Mac System Preferences

Task-Number: QTBUG-2069
Task-Number: QTIFW-28
Change-Id: I91feb999222187e7467f2c41383904cf0cff8633
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-11 01:42:12 +02:00
Oswald Buddenhagen 143c4d3e13 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/widgets/styles/qwindowsxpstyle.cpp
	tests/auto/gui/kernel/qwindow/qwindow.pro
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
2012-04-10 15:31:45 +02:00
Giuseppe D'Angelo ea17c21fd8 QHostAddress: improve qHash implementation
Avoid the conversion to a temporary QString -- just hash the address
as a byte array.

Change-Id: Ic35cdbbc3ee66c32a28d911bd27de0092395979f
Done-with: Shane Kearns
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-08 18:25:10 +02:00
Giuseppe D'Angelo c3b9a67cf0 More qHash(T, uint) overloads for Qt types
The more we get in 5.0, the better.

Change-Id: If00084477709db4fc3f6b2e15024d046491be2ae
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-07 22:20:19 +02:00
Thierry aad60ec536 Fixes a problem with the proxy detection on Windows
The current scheme is to use IE's default config.
If that fails get the winhttp config.
That's ok. The problem is that if you run a program as a service
getting the IE config will set the fAutoDetect flag.
But later the call to WinHttpGetProxyForUrl mightfail with the
error code ERROR_WINHTTP_AUTODETECTION_FAILED.
this patch just makes sure that we have a fallback winhttp solution
in case the IE proxy is not set.
The new code detcted if the current process is a service, in which case it
will try to default to the system-wide proxy.

Change-Id: I57e9082a46a8422c54f8f069715752c271a3a001
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-04-03 12:45:46 +02:00
Martin Petersson 41ad3ee7cb Set QNetworkInterface::IsPointToPoint on Windows
This was never set on Windows Xp or later as we only checked for this
in the old interfaceListingWin2K() function.

Task-number: QTBUG-10170
Change-Id: Ib0808a945d9d1b31019967a69e668ec216702799
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-02 11:39:08 +02:00
Thiago Macieira 4fc7474805 Port QHostAddress to use the new IP utilities in QtCore
The new code now generates lowercase hex instead of uppercase, so
adapt the unit tests to pass.

Also, "123.0.0" is now considered valid (compatibility with inet_aton).

Change-Id: I07b5125abf60106dc5e706033d60836fb690a41f
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-28 16:31:34 +02:00
Kent Hansen d236fe2214 Merge master into api_changes
Conflicts:
	src/corelib/global/qisenum.h
	src/dbus/qdbusconnection_p.h
	src/widgets/kernel/qwidget.cpp
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: I85102515d5fec835832cc20ffdc5c1ba578bd01d
2012-03-27 19:22:48 +02:00
Thiago Macieira bd384427c4 Optimise QHostAddress a little
In QHostAddress::setAddress(SpecialAddress), avoid parsing strings.

Change-Id: Icb756b4c8b06c21dbc231f8c7f0b0dac29ed97c3
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-23 19:43:00 +01:00
Kent Hansen 3b512ae142 Merge master into api_changes
Change-Id: I93551e4d13a1b0815b359b9415060e9089477db1
2012-03-23 14:10:58 +01:00
Shane Kearns 3c3ea9a869 Fix performance problem with NTLM auth in http POST
A combination of other fixes resulted in authentication credentials
with a blank username & password being incorrectly added to the
cache only for NTLM.
This caused authentication to be attempted with blank credentials
first (which would fail), before the authenticationRequired
signal was emitted.
It caused a performance issue because of the extra 2 requests to the
server (and possibly delays inserted by the server following a failed
login)

Change-Id: Ic588a20cfe7c24d5e60cd384caff0673a587e484
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-03-23 11:45:25 +01:00
Xizhi Zhu 8445c5ede7 Don't do anything if setting the same proxy factory.
Otherwise, it crashes if you simply set the same proxy factory instance
twice.

Change-Id: I4b1f1d0eed7630c9a145c0a330c6be1b3fc381e5
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-03-22 13:28:32 +01:00
Kent Hansen 440f452aa3 Merge master into api_changes
Conflicts:
	src/corelib/kernel/qmetatype.cpp
	src/gui/kernel/qplatformsurface_qpa.cpp
	tests/auto/corelib/tools/qtimeline/qtimeline.pro

Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
2012-03-16 10:01:29 +01:00
Xizhi Zhu 92659bacda Make sure QGlobalNetworkProxy is created for QNetworkProxy.
Otherwise, you don't have any socket engine handler created when
directly setting a proxy to a socket.

Change-Id: I35cd7f52331672a6d3e7bcdf817c0fe1fd1e7de3
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-15 11:40:50 +01:00
Harald Fernengel 44159a0b3b Build with the LSB build env
LSB doesn't define some functionality that we expect on Linux, so
fall back to the generic code.

Change-Id: I19e09908b9e9002140535f159ae0745d7ca80b70
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-15 00:50:47 +01:00
Marc Mutz cd27535ca0 QtNetwork: make some constructors explicit
This is a semi-automatic search, so I'm
reasonably sure that all the exported ones
have been caught.

Change-Id: Ia00eb9194a5f64002bd7e7b894abf6333d1b825e
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-14 12:37:30 +01:00
Shane Kearns 3650ce5a85 Add debug stream operator for QNetworkProxy
Change-Id: Ib8e7ba041ede33dc9c751432e39be2d6a9f4662d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-08 23:52:34 +01:00
Shane Kearns 4cc8209998 Windows - handle both auto detect proxy settings together
If both "automatically detect settings" and "use automatic configuration
script" are selected in internet options, then respect that.
Because of performance issues, these are tried separately, and
disabled if they fail.

Task-number: QTBUG-13957
Task-number: QTBUG-10238
Change-Id: Ibc824d3039afeaf12c5ea82ed95287e5cf4e1776
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-08 05:31:40 +01:00
Shane Kearns ea92d02b6b Fix a number of bugs with windows system proxies
TcpServer requests always returned no proxy, even if socks was available
Tag handling was broken for empty tag (if system proxies were tagged)
Tag handling was broken for unknown tags - now handled the same as if
    no tag was given at all.
When there are different proxies for http and https, windows returns
the http proxy first. However we should prefer to use the https proxy
for general sockets, as it's more likely to support the CONNECT method.

Change-Id: I55dcadf2e142367e857f94e55fdbb0c4ddb513a3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-08 05:31:40 +01:00
Shane Kearns 276f64d21d Windows - fall back on static proxy config if autoproxy fails
If both manual proxy settings are configured and the autodetect
setting is enabled, fall back on the manual configuration when
auto detection fails.

Task-number: QTBUG-10428
Change-Id: If008c7c967eec6256ce3c614fff0ec258190d451
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-03-08 05:31:40 +01:00
Shane Kearns 25c05ce3bb Windows - handle proxy autoconfiguration resulting in no proxy
The PAC file may result in direct connection, in which case
WinHttp returns null strings for the proxies and the connection
type marked as direct.
In this case, return the default list (no proxy)

Change-Id: I601033f56a841bb92ea80a28174bb993b024ad79
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-08 05:31:40 +01:00
Shane Kearns a7489b2ba3 Windows - fix proxy types for manually specified proxies
When the windows internet options are used to specify a
different proxy for each protocol, assume the proxy server type
matches that protocol too.
e.g. "socks=qt-test-server:1080" is both tagged for socks, and
assumed to be a socks server.
"ftp=qt-test-server:2121" is assumed to be an ftp proxy
"ftp=http://qt-test-server:3128" is overridden to be a http proxy
used for ftp.

Task-number: QTBUG-10502
Change-Id: I70615c89d6ede53f0e7d62e6d0754b90d042aa2e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-08 05:31:40 +01:00
Shane Kearns 2cf8e487a5 Windows - fix QWindowsSystemProxy global static race
Loser of the race would try to delete an uninitialised pointer

Task-number: QTBUG-15765
Change-Id: Ie184ee2306e102aa8fbad752ef09b95c3ede00c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-06 18:21:31 +01:00
Casper van Donderen 95d83cb1b6 Remove the usage of deprecated qdoc macros.
QDoc now has support for Doxygen style commands for italics, bold
and list items. This change applies that change in QDoc to the
actual documentation.

Task-number: QTBUG-24578
Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-02 23:16:25 +01:00
Shane Kearns d19d25a68b Use QSystemError for QDnsLookup windows backend
The OS provides the error string in this case.
This gives more information to the developer seeing a generic
error.

Change-Id: Ia03642982f3513ee5a8a9fa98d918e948f8d97a5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-03-01 13:55:49 +01:00
Shane Kearns 762a721f7f Fix buffer overrun crash running MSVC2010 win32 Qt on win64
When loading dnsapi.dll as a plugin, we experience crashes because
the calling convention is not specified.
The default is _cdecl, but __stdcall (via the WINAPI macro) should
be used for windows APIs.
Mismatched calling convention results in corruption of local variables,
probably because the stack pointer is incorrect and SP offsets are
used in optimised builds rather than frame pointer offsets.

Since the library has been available since Windows 2000, I don't
think that we need to load it dynamically.
(Unlike the unix version where it isn't part of the LSB)

Also checked that the current release of mingw works.

Task-number: QTBUG-24227
Change-Id: I37c0a6aa0c133799c2a6dd9391ca1435ba2539ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-01 13:55:49 +01:00
Shane Kearns 844b096d67 Fix error handling in QHostInfo windows backend
If the DNS server returns a non authoritative host not found response,
then windows returns WSATRY_AGAIN error code.
This is now reported as HostNotFound and not UnknownError

Change-Id: I212985acd4e85ff4b2bdb6c57ec403405a7695fb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2012-02-17 20:23:25 +01:00
Shane Kearns aee4cbf22a Remove unnecessary locking from QNetworkProxy constructor
QGlobalNetworkProxy (a singleton) had two phase construction, with
the second phase being called from QNetworkProxy's constructor.
This isn't necessary, and has been reported as causing deadlocks.

Although constructing socket engine handlers has side effects
(they add themselves to a list on construction and remove themselves
on destruction), this appears to be safe. The socket engine handlers
are only used while holding the list mutex, and any socket engines
created don't have any reference to the factory that created them.

With the new version, it is possible that two instances of
QHttpSocketEngineHandler and QSocks5SocketEngineHandler exist
temporarily if a Q_GLOBAL_STATIC initialisation race occurs.
This appears safe, because the loser of the race deletes its
handlers, which remove themselves from the global list as above.

Task-number: QTBUG-13088
Change-Id: I8cf520da717d8ab7d862ab89c6de13aea6d60ac3
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-17 15:04:22 +01:00
Friedemann Kleint d5a65cb526 Fix warnings about missing file.
Change-Id: I8644d2b80bab9c18f666d742da389e84bf3f124c
Reviewed-by: Xizhi Zhu <xizhi.zhu@nokia.com>
2012-02-17 15:04:19 +01:00
Shane Kearns 6f7bd6532d Update documentation to show NTLMv2 is supported
This feature was implemented in 4.8, but documentation was not
updated at the time.

Task-number: QTBUG-18181
Change-Id: I657d7ab7aaf43b73b7bf8fd1cb76086522cf5c2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-17 15:03:18 +01:00
Michalina Ziemba 6a5d1370b3 Qt Network: Added the \inmodule command in the class documentation.
-Some of the public classes were missing the \inmodule command.
-Fixed a sentence.

Change-Id: I88ebe12680c744e32253dc01c5ddb4292267caf9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-16 02:00:03 +01:00
Xizhi Zhu acb9537551 Include headers before QT_BEGIN_NAMESPACE.
Change-Id: Icaef1cb280d2968e4a35c93375749d2d9feff856
Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
2012-02-16 01:56:39 +01:00
Xizhi Zhu de07c49033 Add missing private headers to .pri.
Change-Id: Ia0f37953124198dce000adad9dfae051925d526e
Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
2012-02-16 01:56:32 +01:00
Teemu Katajisto 752a02143b Various documentation fixes ported from Qt 4.8
Final set of selected documentation fixes for qtbase
from Qt 4.8 commit bacae725e584f51ee2fd83af7bef3e4515de9587

Task-number: QTBUG-13362
Task-number: QTBUG-18356
Task-number: QTBUG-18417
Task-number: QTBUG-18664
Task-number: QTBUG-21562
Task-number: QTBUG-22094
Task-number: QTBUG-18741
Task-number: QTBUG-15921
Task-number: QTBUG-15738

Change-Id: I3bd33bb7ce7aa991913ba82f3ea0e4b124f3ee41
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-02-15 08:59:29 +01:00
Andreas Holzammer 281673e5d3 Include winsock2.h for ntohl.
This fixes the compilation for Windows CE.
Include Windock2.h before Windows.h.

Change-Id: Iae1ab98239bb75b59c78460e0c0e48dfa1326032
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-02-10 15:30:23 +01:00
Olivier Goffart b69bb01f11 Use QBasicMutex instead of Q_GLOBAL_STATIC QMutex
QBasicMutex is a POD and can be used as a static global object.

in qpicture.cpp factoryLoader is used only once, and under the mutex, so
there is no need for Q_GLOBAL_STATIC for it, it can be a function static

in qhostinfo_unix.cpp the code seemed wrong while compiled with
namespace and QT_NO_GETADDRINFO.  I also could get rid of one include
because it was included earlier.

Change-Id: I3c700203c3e067266c20733f4bda8031446dbb86
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-02-01 22:23:55 +01:00
Jeremy Lainé 7b449abde2 Fix QDnslookup build on FreeBSD
Unify the includes for resolver function on unix-like platforms
to avoid build failures on BSD platforms.

Change-Id: I9accd7077d5a319a2c93642e011492d0fc779394
Reviewed-by: Holger Freyther <holger+qt@freyther.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-01 16:33:04 +01:00
Friedemann Kleint b44e67e1ca Windows: Fix inclusion of <windows.h>
- Always use <qt_windows.h> as the last file to be included.
- Remove it from some headers, use Qt::HANDLE instead of HANDLE.
- Clean up #ifdef, use Q_OS_WIN for Windows/Windows CE.
- Add NOMINMAX to qt_windows.h to avoid problems with the
  min/max macros.
- Remove <windows.h> from qplatformdefs.h (VS2005)

Change-Id: Ic44e2cb3eafce38e1ad645c3bf85745439398e50
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-01 11:06:19 +01:00
Jeremy Lainé e54dc7c2b5 Add support for DNS lookups using native APIs
The QDnsLookup class provides asynchronous APIs for performing
DNS lookups. For now, the following lookups are supported:
- A and AAAA
- CNAME as defined per RFC 1035
- MX as defined per RFC 1035
- NS as defined per RFC 1035
- PTR as defined per RFC 1035
- SRV as defined per RFC 2782
- TXT as defined per RFC 1035

Task-number: QTBUG-10481
Change-Id: I46c1741ec23615863eeca3a1231d5e3f8942495e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-30 16:39:46 +01:00
Jason McDonald 5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Gunnar Sletta 4ecf82795d Remove use of QT_MODULE from library
These defines were there to aid in the commercial
licensing scheme we used long ago, and are no longer needed.

Keep a QT_MODULE(x) define so other modules continue compiling.

Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-25 10:19:44 +01:00
Jason McDonald 629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Jonas M. Gastal 8bbf1a46a5 Removing QHttpHeader and QHttpResponseHeader.
QAuthenticator used it for the convinience of QHttpSocketEngine only.
QHttpSocketEngine has now been ported to use QHttpNetworkReply to parse
HTTP responses.

Change-Id: Idf6e70aa76613aad6e3d789d81ca1b4fd73575c2
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2012-01-19 14:31:10 +01:00
Xizhi Zhu 5b1aa4c75d Fixed build break when bearer is disabled.
Change-Id: I29e88b046f6502c84acc9c6f566ecc328cf24e38
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2012-01-16 11:29:04 +01:00
Jonas M. Gastal 1453f74cc5 Make QFtp private.
All references to QFtp in documentation have been removed, QFtp's
documentaiton was marked internal. The QFtp example was removed.

Task-number: QTBUG-23199
Change-Id: Ifff83cac069fb350e8ebeae63e605850e65c0c30
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2012-01-12 14:38:55 +01:00
Jonas M. Gastal b3ce4470ae Removing QHttp class, its tests and its usage in examples.
Task-number: QTBUG-22750
Change-Id: I161fad772bfb26797e6ee9d69da925b6747c371f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-06 23:07:26 +01:00
Robin Burchell b08daaedd4 Remove all non-inline of qMalloc/qFree/qRealloc.
We're trying to deprecate these, so don't use them anymore.

The inline uses of these have been left intact, for the moment. Inline code will
need to create their own non-inline allocation methods (for future-proofing to
allow alterations in how e.g. individual containers allocate)

Change-Id: I1071a487c25e95b7bb81a3327b20c5481fb5ed22
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-06 14:11:14 +01:00
Jason McDonald 1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Jonas M. Gastal 7dffcf8a74 Clarifying the flow of signals on QNetworkAccessManager.
Task-number: QTBUG-22858

Change-Id: I07eaecebf17e73f9c3148465d8970ca7672a900c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2011-12-28 16:12:56 +01:00
Shane Kearns 4954f71648 Fix http authentication to a different realm on the same server
This is a regression caused by the NTLMv2 authentication patch.
I have manually tested NTLMv2 authentication against MS IIS and reverting
these two lines does not break it.

Task-number: QT-5209
Change-Id: I64159cbe468e1a7f834f8726fd0c9d4ab4c54b38
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2011-12-22 16:10:33 +01:00
Shane Kearns d24aad8289 Don't fetch credentials from cache following a failed proxy authentication
Add variable to QAuthenticatorPrivate for tracking failure
Track authentication success/failure in http proxy socket engine
Track authentication success/failure in http connection channel

Task-number: QTBUG-22875
Change-Id: Id5d39e839428271ad687e9da12fbbdea9c478f4f
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2011-12-22 15:56:00 +01:00
Shane Kearns f74ff46c7a Fix NTLM authentication with email address
When using "user@dns-domain" for NTLM authentication, the whole string
should be sent as the username, and the domain should be set to an
empty string.
The domain sent by the server is still reflected if the username
does not contain an '@' character.

Manually tested using MS IIS on a domain-joined PC.

Task-number: QTBUG-19894
Task-number: ou1cimx1#949951
Change-Id: Ie1f81172e71cb7cce7b8c909062be990c24aea47
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2011-12-12 13:34:25 +01:00
Shane Kearns 49140efe2d Fix QHostAddress::operator==(QHostAddress::SpecialAddress)
QHostAddress(QHostAddress::Any) was not equal to QHostAddress::Any
because only one of the operator== overloads was handling this.

Task-number: QTBUG-22898
Change-Id: Ifd36947a50e8c36362b4e850fd8d5105ee0925ff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2011-11-30 19:04:18 +01:00
Jonas M. Gastal 4cffc72023 Adds support for headers in QNetworkProxy.
The API is the same that is present on QNetworkRequest class. Since
these are HTTP headers, this only affects proxies of type HttpProxy and
HttpCachingProxy.

This was created as a general solution to the problem pointed out in
QTBUG-19569(some proxies only accept request with specific User Agents).
In the same way that there are cases where setting the User Agent is
desired there might be reasons to set other headers, hence the support
for any header.

Change-Id: Ifd04f34d29eedb6c2a3f0b50708244996b12a123
Task: QTBUG-19569
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2011-11-24 18:16:33 +01:00
Peter Hartmann ac22fa8a33 QNetworkProxy documentation: mention usage of "http_proxy" variable
This is done on systems other than Windows or Mac.

Change-Id: I631ea350cb9bc123edc6df33b6f661afa8f0778b
Reviewed-by: Arvid Picciani <arvid.picciani@nokia.com>
2011-11-21 17:23:42 +01:00
Peter Hartmann 4329030b77 network: remove Symbian specific code
removes several files and cleans up the code, removing all Symbian
specific #ifdef's etc.

Change-Id: Ie457e54cb4b3a992f251383320d47822259c38f1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-11-14 18:41:17 +01:00
Friedemann Kleint e277575987 Fix most warnings about assignments of QAtomicInt.
Change-Id: Ide409d72d2637b68ec2a85aaca4bc783a7e911e7
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2011-10-31 11:29:08 +01:00
Bradley T. Hughes 6476ac738c Replace implicit QAtomic* casts with explicit load()/store()
Change-Id: Ia7ef1a8e01001f203e409c710c977d6f4686342e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2011-10-27 18:57:38 +02:00
Arvid Ephraim Picciani b22d290a37 QNAM: make systemProxyForQuery respect http_proxy
the generic systemProxyForQuery will use http_proxy from the
environment, if it is set.

Change-Id: Ie685c47eb6df1fdd2ab223defc7172bb25e6fe30
Reviewed-by: Thiago Macieira (Intel) <thiago.macieira@intel.com>
2011-10-25 11:31:50 +02:00
Shane Kearns 3736dcb65e Network - Add QHostAddress::isLoopback API.
The standard IPv4 loopback address is 127.0.0.1, however anything in
the 127.0.0.0/8 range is also a loopback address.

isLoopback returns true for any address that is in the IPv4 loopback
address range, or is the single IPv6 loopback address ::1

Task-number: QTBUG-22246
Change-Id: Ic39100e2e97a52db700e01b109998a1cfd4335e3
Reviewed-by: Thiago Macieira (Intel) <thiago.macieira@intel.com>
2011-10-24 13:56:41 +02:00
Konstantin Ritt bb1f50b7b1 QHostInfo: fix a race condition under CE
Merge-request: 1339
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>

Change-Id: Id1f977ad8f746ac848c355880cac688e256721d8
Reviewed-on: http://codereview.qt-project.org/6145
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2011-10-06 14:37:22 +02:00
Friedemann Kleint 36850d5cec Fix compiler warnings.
Change-Id: I6b6d86097074a12c9c4e3d22fe61a6b962ffa21e
Reviewed-on: http://codereview.qt-project.org/5627
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-09-28 03:17:51 +02:00
Robert Hogan 0536ec05c3 HTTP internals: send password even if no username is set
Setting only a password (no username) for HTTP requests does not
result in the password being sent.
Only cancel authentication if neither a username nor a password is set.
Requiring a username was preventing user-less logins.

Merge-request: 1250
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Task-number: QTBUG-15566
(cherry picked from commit 6057909d2b73c2c3aa01a0e9216714ef07fb652f)

Change-Id: I23a52362e3e8cf114219accca2b548ceb9dccff7
Reviewed-on: http://codereview.qt.nokia.com/2940
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2011-08-15 21:51:37 +02:00
David Boddie ff63d0f28c Doc: Removed documentation for deleted code.
Change-Id: Icdbc05decac3dfe3fc18ce073c494e1fce4ea347
Reviewed-on: http://codereview.qt.nokia.com/1824
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: David Boddie
2011-07-21 08:54:07 +02:00
Shane Kearns b59392aeb5 Fix memory leak in QHostInfo
QHostInfo was leaking in the code path where it removes duplicate
name lookups after one has completed.

Task-number: QT-5121
Reviewed-by: Markus Goetz
(cherry picked from commit 73df7890923f377f19147466d9317fe1ec064b1d)

Change-Id: I26cc6a168ef8ea6cc18940300ca2eddd6777071d
Reviewed-on: http://codereview.qt.nokia.com/1363
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Markus Goetz
2011-07-08 13:34:47 +02:00
Martin Petersson 21c4f1806e QHostAddress: fix compile on Windows
AF_INET6 needs to be defined on Windows. This got undefined when
QT_NO_IPV6 was removed in 85869920bb

Change-Id: I1b4904f9561286b884324882f0f11dc29ba01416
Reviewed-on: http://codereview.qt.nokia.com/1169
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Markus Goetz
2011-07-05 17:03:32 +02:00
Shane Kearns f45ad0eeb3 Remove QT3_SUPPORT from network
Change-Id: I962bece24c958c053a3edc0e49a594b61a3725ae
Reviewed-on: http://codereview.qt.nokia.com/1093
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Liang Qi <liang.qi@nokia.com>
2011-07-05 15:32:39 +02:00
Markus Goetz 85869920bb Always assume IPv6 support
It's 2011 baby! And until Qt5 is released probably 2012 :-)

Change-Id: I397aabf25e93c8afb5f562636710985cf0c7acfa
Reviewed-on: http://codereview.qt.nokia.com/1008
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Reviewed-by: Markus Goetz
2011-07-04 14:32:41 +02:00
David Boddie df515ded60 Doc: Fixed qdoc warnings.
Change-Id: I7b4e9ef513b82a82d2365c9256d09520a44ad10d
Reviewed-on: http://codereview.qt.nokia.com/324
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2011-07-01 13:06:20 +02:00
Shane Kearns 85136496bc IPv4 + IPv6 dual stack sockets
Adds support for binding "dual stack" sockets (via QUdpSocket or
QTcpServer). A dual stack socket will accept incoming connections on
either IPv4 or IPv6 interfaces.

QHostAddress::Any     - use this to bind a dual stack socket
QHostAddress::AnyIPv6 - use this to bind a socket for IPv6 only
QHostAddress::AnyIPv4 - use this to bind a socket for IPv4 only

Binding to a specific address rather than one of the "any" addresses
is restricting you to a protocol anyway so no behaviour change there.
IPv6 sockets were previously dual stack on some OS and v6 only on others
Any previously meant IPv4 only

This commit implemented & tested on Windows 7, Linux (Ubuntu 10.04)
and Mac OS 10.6.7.

Windows XP and server 2003 do not support dual stack sockets, even though
they can support IPv6. On those versions, QHostAddress::Any will still
bind to IPv4 0.0.0.0 (which is also the behaviour anywhere QT_NO_IPV6 is
defined)

Autotests run:
qudpsocket (includes a new test case)
qtcpserver (includes a new test case)
qtcpsocket
qnetworkreply
qhostaddress

Task-number: QTBUG-17080
Change-Id: Id486677c4f832e18dc0ff1a86c5f5fc422c9eb4f
Reviewed-on: http://codereview.qt.nokia.com/421
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
Reviewed-by: Markus Goetz
2011-06-22 11:01:00 +02:00
Martin Petersson 1d450c6941 QAuthenticator::setUser() parse user name in form user@domain
Task-number: QTBUG-19894
Change-Id: I063dbc66e5f47a83cc1c0aee8913062b4b5e42bc
Reviewed-on: http://codereview.qt.nokia.com/507
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
2011-06-20 15:27:16 +02:00
Jyri Tahtela f9f395c28b Update licenseheader text in source files for qtbase Qt module
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.

Reviewed-by: Trust Me
2011-05-24 12:34:08 +03:00
Craig Scott 0ebe0414d2 Fix incorrect hardware address on systems without getifaddrs()
On unix systems for which QT_NO_GETIFADDRS is defined, the way that the
hardware address field is extracted from the result of a call to
qt_safe_ioctl() is incorrect. The address of the ifreq.ifr_addr struct
is taken rather than the appropriate member within that struct, sa_data,
resulting in a memory offset and subsequently the hardware address has
garbage in the first two of six fields. This commit modifies the code
to pass the sa_data member instead of the address of the struct as a
whole.

Task-number: QTBUG-19165
Merge-request: 2614
Reviewed-by: Martin Petersson
(cherry picked from commit 004ad12669ef696eeba70fd57d1eb0c67c806d1d)
2011-05-20 10:46:47 +02:00
Martin Petersson 5a19d52ae7 Make QHostAddress.toString() follow RFC-5952 for IPv6 address format.
Task-number: QTBUG-18426
Reviewed-by: Peter Hartmann
(cherry picked from commit ebc134db484eee31491836b619aad1ee86e3070e)
2011-05-20 10:44:12 +02:00
Olivier Goffart 94beee1c37 Fix compilation
Conflicts between 61c6d66b7efd8de4a83b021e7c4ef2b1a803ece2 and 940f16babab76b328b7c9bfdb5435102c689b76b
(cherry picked from commit 7a20cf9d4419cf1a5a9a4ed450b03caa8716fd58)
2011-05-10 12:54:54 +02:00
Olivier Goffart c6e1ee2b28 Fixes warnings about unused variables
Reviewed-by: Peter Hartmann
(cherry picked from commit 61c6d66b7efd8de4a83b021e7c4ef2b1a803ece2)
2011-05-10 12:54:51 +02:00
Thiago Macieira d60bd8e216 Fix warnings on unused parameters and variables
(cherry picked from commit 940f16babab76b328b7c9bfdb5435102c689b76b)
2011-05-10 12:54:49 +02:00
Shane Kearns f0f55cd59f Allow a network configuration to be included in a proxy query
When Qt is compiled with bearer management support, the network
configuration can be included as a parameter in QNetworkProxyQuery.

This allows QNetworkProxyFactory::systemProxyForQuery to get the right
proxy setting for a specific network. For example a mobile phone could
have network configurations for home WLAN, work WLAN and 3G data
access points, each with different proxy configurations.

Task-number: QTBUG-18618
Reviewed-by: Peter Hartmann
2011-05-09 13:14:37 +02:00
Qt by Nokia 38be0d1383 Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://qt.gitorious.org/qt/pages/GitIntroductionWithQt

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12
2011-04-27 12:05:43 +02:00