summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* Parse yearless date strings on leap years during LIST in QFtpPhilip Van Hoof2012-08-231-2/+35
| | | | | | | | | | Adapted _q_parseUnixDir to handle yearless date strings during a leap year while performing LIST. Task-number: QTBUG-26911 Change-Id: I3193400a274a896530d45de986ec8fa5b159abb4 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Philip Van Hoof <philip@codeminded.be>
* add configure options for debug/release OpenSSLPeter Kümmel2012-08-151-0/+13
| | | | | | | | | msvc cannot use the same library for debug and release builds if openssl libraries are linked statically into the network library. Backported from 952788d64bc30c7aac5f9572533241ab8f48fb63 Change-Id: I8332b8293a27b6f9bd87ca1e6ebc63327589ab78 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* test: Re-enable tst_Headers test.Sergio Ahumada2012-08-021-0/+6
| | | | | | | | The test had one stable failure which should be fixed by adding missing QT_MODULE and QT_BEGIN_NAMESPACE macros Change-Id: I10801e4c495bee66e1937a57d14019dae8b43a9d Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
* Adding missing QT_BEGIN_HEADER/QT_END_HEADERSergio Ahumada2012-08-011-1/+5
| | | | | | Change-Id: I1144497ec8376ec41c714b7a55c05637b6feee66 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> (cherry picked from commit 0e904279bd14c6d3d32165ff93d22d96e7ff6fd7)
* Update contact information in license headers.Sergio Ahumada2012-08-01164-328/+328
| | | | | | | | | | | | | - Replace Nokia contact email address with Qt Project website. - 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: Ie7ba62011752fcb149b99b26317c54f2a0cfa931 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Use improved QLibrary search heuristics for SSLSean Harmer2012-07-271-0/+2
| | | | | Change-Id: I3b6b4beedae4323cce5130fd2fcaf2a25c5be5b9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use improved QLibrary search heuristics for libresolvSean Harmer2012-07-271-0/+1
| | | | | Change-Id: Iecd4c19ae6d9c415bca828bf2ea2557f0fb96241 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add null httpReply checks to QHttpThreadDelegateShane Kearns2012-07-041-6/+25
| | | | | | | | | | | | | | | | | | If a request is aborted while under load, the abort signal can be queued in front of a signal emitted from the httpReply. The abort slot is deleting the httpReply and setting it to null. So when the queued slot is processed the httpReply is null and caused an MMU fault. Removed qWarning from existing null checks, as these are expected if abort is called with precise timing so that it races with the reply finishing on the socket. Task-number: QTBUG-26245 Change-Id: I0a7e0223fda1bc01d117fe8a993c7f6e43fd72ff Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Richard J. Moore <rich@kde.org> (cherry picked from commit 41064f851591d9437baeda502b6e2504fee8f213)
* Change default Content-Type for http POST to match 4.7.4Shane Kearns2012-06-281-2/+5
| | | | | | | | | | | | | | | | | Qt 4.7.3 sent no Content-Type header by default. This was fixed independently on 4.8.0 and 4.7.4 branches, with different defaults. Since this is often used for web service logins, the 4.7.4 default of x-www-form-urlencoded seems more likely to work. The warning message is left in place, since not specifying the content type is still an application bug. Task-number: QTBUG-23350 Change-Id: I30bf50fd216ee9894d0168e904cea1ed4251ec68 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 4f578d15fe2ef176f0533c7ff4aea99b17636f85) Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Ensure that Proxy-Connection: Keep-Alive is respected for HTTP 1.0Andy Shaw2012-06-241-1/+2
| | | | | | | | | | | | | When doing a NTML authentication it would close the connection after the second phase before replying when the reply was a HTTP 1.0 version reply. Since the Proxy-Connection header is set to Keep-Alive in this case we want to ensure we do not close in this siutation. Task-number: QTBUG-26037 Change-Id: Icaaf2277efc0d05a946c52fb42b5191964e2e0fe (cherry picked from commit bd5ef309ba831740fd8475b2f7415f30c1a18be8) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Add Blackberry path for SSL certificatesNicolas Arnaud-Cormos2012-06-071-0/+1
| | | | | | | Change-Id: I64a7f7aeca3954db615cc69c87048bc6ee386b88 Backport of <b002c7a8c06750e58e6d88f6a6052055eddcc9ed> from Qt5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Mark the testSslOption method as introduced from Qt 4.8Laszlo Papp2012-06-071-0/+2
| | | | | Change-Id: I49bbac754c65f80c9c614072ab2fec9f738a906a Reviewed-by: Richard J. Moore <rich@kde.org>
* QNAM - maintain a weak reference to the QNetworkSessionShane Kearns2012-06-064-31/+49
| | | | | | | | | | | | | | | | When handling signals from the session, a pointer is needed. Also the QNetworkReplyImpl needs to access the manager's session. So, the manager should have a strong and weak reference. The strong reference is held during connection establishment. The weak reference is held all the time, though it will become null when the session is destroyed in idle. The non static member function getNetworkSession() is used to create strong references from the weak reference where required. Task-number: ou1cimx#1004278 Change-Id: I4b5b36b1d996b98e659d993969006c61b4440c15 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (backported from commit bae1613c4c3d8c38b90ed2ba5c1b149e1bc87987)
* Track active network replies without qFindChildrenShane Kearns2012-06-062-1/+7
| | | | | | | | | | | | | | | | For bearer management to work correctly, we need to know when there are no network replies active. Previously this was implemented using qFindChildren, but that doesn't work when the user reparents QNetworkReply. QtWebkit does this (actually sets parent to 0). Also the qFindChildren implementation was racy if multiple requests were finished in parallel. Again, likely to be triggered by webkit loading page elements. Task-number: QTBUG-15812 Change-Id: I181a9ba6611c7c4b6fffa2d84fe4029d89e8f596 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 3580168c3e357c2289acddc5f2515a3ad306ef2b)
* Include scope ids in QHostAddress from QNetworkInterfaceShane Kearns2012-05-242-3/+17
| | | | | | | | | | | | | | The scope ID is a required part of the address for link local addresses (to solve the problem of the same link local address being created by two machines on different networks). It is required to send packets to a link local address on Mac and Windows, although Linux multicasts if scope is missing. Task-number: QTBUG-25634 Change-Id: Ie2bb09df8d261eefcb81716bafeb1475f0bed5fe Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit b72c8dd8a248d67b1192e3baa1fca07244a3719d) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Properly handle unexpected EOF in QHttpThreadDelegateShane Kearns2012-05-241-6/+9
| | | | | | | | | | This prevents http POST/PUT from hanging if the QIODevice being uploaded returns -1 from read. Task-number: QTBUG-24738 Change-Id: I76500cc4f0101cc8e5da5f1dc105508b3f519a3c Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 3976339ca9b12c7eddbc69ed3a31f85ce845ba63)
* Fix sending UDP packets to link local addressesShane Kearns2012-05-242-18/+27
| | | | | | | | | | | | | | When the scope ID is not set, Mac and Windows will not transmit packets to link local addresses. This patch implements setting the scope in the native socket engines and adds a test case. (it was partially implemented already, though UDP specific code paths were missed in the unix engine) Task-number: QTBUG-25634 Change-Id: I23300bdc9856e38458078e913daaa59cd05a74b5 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (back ported from commit 6abc66e076826b24cc3700c3a0702f552ab50429) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNetwork: fix compilation with no opensslMartin Petersson2012-05-221-1/+1
| | | | | | Change-Id: Id637dd1155c46ffc75563812b8c9d5f062e76e22 Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* QNetworkAccessManager: Read all from socket on remote host closeMartin Petersson2012-05-211-0/+26
| | | | | | | | | | When we get a remoteHostClosed we should try to read everything from the socket before we close the channel. cherry-picked from commit 27bc9945a84c6f6d8e0d2a33183c3a6e9b2978d8 Change-Id: Ia1b64dbd991265ce0ce4c4d21f4df323133e2b07 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* qhttpthreaddelegate: check that we have a reply set when reading.Martin Petersson2012-05-161-0/+3
| | | | | | | Make sure that we always have a reply set when we try to read. Change-Id: Icedf4190f3a4f0727e9f415c41cb6041fe5f7604 Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
* QHttpMultiPart: supply new line at the end of the bodyPeter Hartmann2012-05-141-2/+2
| | | | | | | | | | | ... to conform to RFC 2046 (section 5.1.1). Apparently IIS had problems without the new line. Task-number: QTBUG-25429 Change-Id: Ia619bbdcebd407b2716bc467323634e4c8d77bcd Reviewed-by: Shane Kearns <shane.kearns@accenture.com> (cherry picked from commit 314e590d67db08690b31930e53ca61cedfc4d1e2) Reviewed-by: Peter Hartmann <9qgm-76ea@xemaps.com>
* QNetworkReply::setReadBufferSize fix for threaded httpMartin Petersson2012-05-139-6/+123
| | | | | | | | | | | | Added the setReadBufferSize functionallity again by limiting the amount that the delegate read from the channel. Each time that data is fetched from the reply buffer, we communicate back to the thread so that more data can be fetched. Task-number: QTBUG-25327 Change-Id: I08a246f4e7fbfdb8d58f4c5982ed0c9fa474f560 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Avoid emitting finished() before user can connect the signalShane Kearns2012-05-091-1/+1
| | | | | | | | | | | | QNetworkSession::open can synchronously emit an error, therefore we need to queue this. Otherwise QNetworkReply::finished is emitted before the user has had a chance to connect the signals. Task-number: QTBUG-18824 Change-Id: I703d5e31d2934afafabdf0a77ea3aaf5336e8dec Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (backported from commit 9793dbcc4ae4f5f0976f819e6a33e82e6b24f50e)
* Connect bearer engines to manager with QueuedConnectionShane Kearns2012-05-091-4/+8
| | | | | | | | | | | | | | | | | | | This is to avoid a deadlock that happens when a user thread is accessing the QNetworkConfigurationManager at the same time the plugin emits a signal. i.e. plugin is holding engine lock user thread is holding manager lock and blocked trying to acquire the engine lock In the manager slot, it tries to acquire the manager lock. By using queued connection, there are no locks held at the time the manager slot is called. Change-Id: I95f28028b5e77f77b2b9b7e31cbd1b78a8fe3097 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 55070e863710d49dd4b09903be9a85ea94dff1fe)
* QNetworkAccessManager - ensure abort reaches QFtpShane Kearns2012-05-081-0/+3
| | | | | | | | | | Previously, we just disconnected signals from QFtp and allowed it to continue downloading in the background. Task-number: QTBUG-25494 Change-Id: I891c2fff88ef1ee554d1ccf821a3f7998eeb8406 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit c6864e0a580793f29c7d2cf180fc0f2ac2fc2b2c)
* QFtp - implement fast abort for downloadsShane Kearns2012-05-081-5/+16
| | | | | | | | | | | | | | | | Most FTP servers do not support the ABOR command (they don't process control channel traffic until the data channel is finished). Or they require the telnet IP & sync procedure on the control channel (this requires sending TCP urgent data, which we do not support). Following behaviour of most browsers and GUI FTP clients, abort downloads by resetting the data channel. Abort of uploads needs no change, because the client closes the data channel rather than the server. Task-number: QTBUG-25494 Change-Id: I69e7b7c04d709d26def9a4a7081074e1cbf69701 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit a5fcd3f799371239dd375150648bf77cb4745626)
* Use reference count to close down idle network sessionShane Kearns2012-05-081-4/+4
| | | | | | | | | | | | | | | | | | QNetworkAccessManager was using the AutoCloseConnection property of QNetworkSession to close it when idle. However this property is only implemented for polling engines and not event driven engines. Instead, release the network session reference. If another request comes in, it will be resurrected from the shared session weak reference. If not, then after 2 minutes when the connection caches are flushed the ref count will reach zero and cause the QNetworkSession to be destroyed (which closes it) Task-number: QTBUG-15812 Change-Id: I2963bdf13fb02e3ac269489ea463669142f3c5f3 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 1aeaf0e7089c893a927a5ab311a6176aad5874a7)
* Remove not present networks from QNetworkInterface::allInterfacesShane Kearns2012-05-081-2/+1
| | | | | | | | | | | | | | | 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> (cherry picked from commit 360c481840ece253bf7235e901508c96a085e018)
* Improved detection of libcrypto and libssl.Niels Weber2012-04-251-12/+51
| | | | | | | | | | | | The previous solution didn't work on systems where the libraries aren't in the same location. Now we search for both libcrypto and libssl and load them if their versions match, even if they are in different directories. Task-number: QTBUG-25398 Change-Id: I37164638890586947d07670d8a59fc53a84f9c42 (cherry-picked from commit 8643e1992f6c62983345f89d793742b3449a69ea) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Windows - "bypass proxy for local..." also affects IP addressesShane Kearns2012-04-251-2/+19
| | | | | | | | | | | | | | | | | 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 (modified version of fffc900f78a191970c4eebced9c1af016a9ea6f4 in QtBase) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QHttpNetworkConnectionChannel: Warn if bytesAvailable and no replyMartin Petersson2012-04-231-3/+4
| | | | | | | | | | If there are no bytesAvailable and no reply then the channel can be closed without any need for this warning. Task-number: QTBUG-9315 Change-Id: Idd461a38ea932305cc227dbd68b9af61b7e855d2 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix build with QT_NO_WARNING_OUTPUTAndy Shaw2012-04-192-3/+3
| | | | | | | | | | | | | | When defining QT_NO_WARNING_OUTPUT then qWarning() is not available so it should be defined in the same manner as qDebug() in this context which is as QNoDebug. The cases in QtNetwork are changed to use qWarning("....") to avoid having to add in an extra include of QDebug just so that qWarning() is declared in the QT_NO_WARNING_OUTPUT case. Task-number: QTBUG-25308 Change-Id: I4960d8943e805697d4c05cc6988306e5c25fc2bb Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed networkproxy build under WinCEBjoern Breitmeyer2012-04-192-0/+89
| | | | | | | | | | | | 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> (cherry picked from commit 0e317af13f24d88a88c41f5efbd3fe9180ec6bee) Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
* Find libssl on linux using paths of loaded librariesShane Kearns2012-04-101-0/+26
| | | | | | | | | | | | | | | | | | | The installed path of libssl may include an element describing the architecture, e.g. x86_64-linux-gnu or i386-linux-gnu. In most cases, the libraries already loaded (static dependencies of Qt, such as libc) will include the path where libssl is installed. Use dl_iterate_phdr to find the paths. This is a linux specific function, but it does provide "/lib/<arch>" and "/usr/lib/<arch>" at the point ssl symbols are being resolved when running the qsslsocket autotest (which has less dependencies than a typical Qt app). Task-number: QTBUG-24694 Change-Id: I9af8081f41bb85c2fcff450a2acda5672a7f7518 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com> (cherry picked from commit e5337ad1b1fb02873ce7b5ca8db45f6fd8063352) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNAM: close the channel if bytesAvailable and nothing piplinedMartin Petersson2012-04-101-8/+2
| | | | | | | | | | | | If there are still bytesAvailable on the socket and we have nothing pipelined we should close the channel. This was not done before as the chunked decoder did not read the last CRLF. This has now been fixed so this close should be enabled again. Task-number: QTBUG-24875 Change-Id: I2ebdce1094282b055f4fd72ca642887c5f96c43b Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fixes a problem with the proxy detection on WindowsThierry2012-04-051-2/+46
| | | | | | | | | | | | | | | | 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>
* Call wait() after calling quit() so that it can gracefully finishAndy Shaw2012-04-052-0/+3
| | | | | | | | | | | | There was a problem with slow https connections that if the download was ongoing when quit() was called then it tended to cause a crash because it tries to shutdown the SSL connection. Task-number: QTBUG-24594 Change-Id: I6b161bc7a9bb99e41849537462de2d7c92661902 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 46c58502639c25e5d19dd84d913b1208d5051db5)
* Fix QTcpServer::listen() returning true when the port is in use on OS X.Robin Burchell2012-04-031-1/+7
| | | | | | | | | | | | | | | | | | | | | Way back in the mists of time, someone added SO_REUSEPORT to socket binding, which was great, because otherwise it meant that multiple UDP sockets couldn't share the same port on OS X (as platforms with SO_REUSEPORT apparently don't support rebinding with SO_REUSEADDR). However: SO_REUSEPORT also means that *any* bind on a port will succeed, which is most definitely not wanted in the case of TCP sockets, so check the socket type before performing the actual bind. Also test that multiple listens don't take effect. Cherry-picked-from: qtbase/master/a84b42e6194be0f40bd8f961effef9947c07c832 Change-Id: I2f8d450bcfb8a7f3abd8918a4e789a850281dd13 Done-with: Thiago Macieira Done-with: Shane Kearns Task-number: QTBUG-6305 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix regressions due to partial QSslSocket::peek fixShane Kearns2012-03-301-11/+27
| | | | | | | | | | The fix broke HTTPS transactions with chunked encoding. It also broke use of a QSslSocket in unencrypted mode where peek and read calls are mixed. See change 68b1d5c17aa38d5921bdade2b0e0cb67c6c90513. Change-Id: Ib115b3737b0e4217496f5def10aaaea3c6452ff8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNam: try to read the last CRLF when chunked encoding is used.Martin Petersson2012-03-292-3/+21
| | | | | | | | | | | When chunked encoding is used we should try to read the last CRLF after the last zero-lenght chunk, with chunk size coded as 0. Task-number: QTBUG-19480 Task-number: QTBUG-20924 Change-Id: I39c85f45c329246d6c53c29ba1511039b2503e13 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix performance problem with NTLM auth in http POSTShane Kearns2012-03-231-0/+2
| | | | | | | | | | | | | | | | | 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) Task-number: ou1cimx1#985786 Change-Id: Ic588a20cfe7c24d5e60cd384caff0673a587e484 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com> (cherry picked from commit 3c3ea9a869086ebb02a5d0c475754f6a184a50ab)
* Fix bug in qsslsocket peek()Kalle Viironen2012-03-192-0/+38
| | | | | | | | | Calling peek() for qsslsocket caused socket data to be copied into qiodevices buffer and therefore make it unaccessible in qsslsocket. Task-number: QTBUG-18498 Change-Id: Ie27a90a468be8158bd8afcd259dbb34483623c36 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Make sure QGlobalNetworkProxy is created for QNetworkProxy.Xizhi Zhu2012-03-151-0/+8
| | | | | | | | | | | Otherwise, you don't have any socket engine handler created when directly setting a proxy to a socket. Cherry-picked from Qt5 / QtBase commit: 92659bacda53da782c84dff44d3caa2590dbc7cc Change-Id: Id87a13cf496553e85ca1f92f0cb5093752f3f5f5 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Windows - handle both auto detect proxy settings togetherShane Kearns2012-03-091-7/+31
| | | | | | | | | | | | | | | | | 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> (cherry picked from commit 4cc8209998c386a4372f10496f0c97f3d86f92bb)
* Fix a number of bugs with windows system proxiesShane Kearns2012-03-091-6/+75
| | | | | | | | | | | | | | | | | 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> (cherry picked from commit ea92d02b6ba873c10153dc6ab7472edf07f99f03)
* Windows - fall back on static proxy config if autoproxy failsShane Kearns2012-03-091-23/+17
| | | | | | | | | | | | | 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> (cherry picked from commit 276f64d21d7b877044fddd646b855829950099b0)
* Windows - handle proxy autoconfiguration resulting in no proxyShane Kearns2012-03-091-0/+2
| | | | | | | | | | | | 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> (cherry picked from commit 25c05ce3bb8b53ed937363492b8222ee3b83d749) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Windows - fix proxy types for manually specified proxiesShane Kearns2012-03-091-8/+15
| | | | | | | | | | | | | | | | | 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> (cherry picked from commit a7489b2ba3f2f3ea28d6fff0c835c12b0666af45) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Windows - fix QWindowsSystemProxy global static raceShane Kearns2012-03-091-1/+1
| | | | | | | | | | 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> (cherry picked from commit 2cf8e487a5c546382daaa954c23d3926668b0a85) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Windows - fix getsockopt calls for narrower than int optionsShane Kearns2012-03-071-2/+6
| | | | | | | | | | | | | | | | | | | Windows unhelpfully writes to only one byte of the output buffer when getsockopt is called for a boolean option. Therefore we have to zero initialise the int rather than initialising to -1 as was done before. This in general only works for little endian architecture, because the word would look like 0x01000000 on big endian. So I have added some compile time asserts in the assumption that windows is always little endian. This is ok for comparisons with 0/false, but not comparisons with true or nonzero values. Task-number: QTBUG-23488 Change-Id: I3c586d1ada76465fc045a82661f289920c657a4c Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> (cherry picked from commit 46e4a9d5231e2d9e35424259858713ca539b8e30)