summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* Moved the QT_BEGIN_NAMESPACE macro to the right place in qsslcipher.cppThiago Macieira2009-05-061-1/+1
| | | | | Task-number: 252298 Reviewed-by: Peter Hartmann
* QNetworkCookieJar: do not allow cookies for domains like ".com"Peter Hartmann2009-05-041-0/+7
| | | | | | | | the domain attribute in cookies must always contain one embedded dot, according to RFC 2109 section 4.3.2 Reviewed-by: Thiago Task-number: 251467
* QNetworkCookieJar: allow cookies with wrong domain attributePeter Hartmann2009-04-301-5/+4
| | | | | | | | | | According to the (old) cookie RFC 2109, the domain attribute must always contain a leading dot. Some servers do not have that, but all browsers accept those cookies anyway, so we should do that as well. Reviewed-by: Olivier Reviewed-by: Denis Task-number: 228974
* QNetworkAccessManager: do not segfault when using a network cacheBenjamin C Meyer2009-04-291-1/+2
| | | | | | | Don't setfault when setting 0 for the network cache such as when you want to disable it. Reviewed-by: Peter Hartmann
* Re-send network request properly when the socket is in Closing state.Denis Dzyubenko2009-04-241-0/+8
| | | | | | | | | This fixes the "QAbstractSocket::connectToHost() called when already connecting/connected to <hostname>". The issue was that we were trying to call connect on a socket that was in a Closing state. We have to wait for the disconnected signal before we try to connect again. Reviewed-by: Prasanth
* don't complain about invalid socket on server shutdownOswald Buddenhagen2009-04-241-2/+4
| | | | Reviewed-by: thiago
* correctly handle remote disconnectsOswald Buddenhagen2009-04-231-1/+1
| | | | | | | | | about the only error case for a PeekNamedPipe() which does not actually want to read anything is some kind of disconnect. so ignore the error code and just handle the error as a close. Task-number: 247144 Reviewed-by: thiago
* fix reading problem on 64-bit machines in QProcess and socket enginePeter Hartmann2009-04-161-17/+2
| | | | | | | | | | QProcessPrivate and QNativeSocketEnginePrivate were reporting a wrong number of bytes available on 64-bit machines, due to use of size_t in ioctl. That was required by Irix, which we dropped support for, so we can also drop size_t Reviewed-by: Thiago Task-number: 249537
* Add a warning for trying to connectToHost() when disconnecting.Thiago Macieira2009-04-161-1/+1
| | | | | | | | | | | | | | Right now, we print this warning if connectToHost() is called when we're in ConnectingState (waiting for remote to SYN,ACK) or in ConnectedState. This also means connectToHost() allows interruption of the HostLookupState cleanly (I think). But if you called connectToHost() right after disconnectFromHost() and there were data to write, the connectToHost() could discard the pending outgoing data and reconnect. Or not, depending on whether the DNS resolution ended first. In other words, race condition. Reviewed-by: Peter Hartmann
* BT: QAbstractSocket: fix check for closing state (typo)Peter Hartmann2009-04-151-1/+1
| | | | | | | | emit disconnected() if we were in ConnectedState or in ClosingState before Reviewed-by: Thiago Task-number: 250976
* Don't remove the cache file if you have successfully added it.Thiago Macieira2009-04-141-1/+2
| | | | | | | | | | | This regression probably happened because of the fix to task 244485 (see 8d500381), which made QFile follow a rename. This means that QTemporaryFile removes its target when it is deleted. This fixes a number of caching autotests that are failing. Reviewed-by: Markus Goetz BT: yes
* Fix compilation if SSL is not enabled.Thiago Macieira2009-04-071-6/+4
| | | | | | | | | Using #ifndef QT_NO_OPENSSL without first #include'ing something will never work. Which means we always include qsslsocket.h. The problem is: if OpenSSL isn't enabled, then that file is a no-op and we never include qabstractsocket.h. Reviewed-by: Markus Goetz
* QLocalSocket will disconnect 30 seconds after a successful delayed connectBradley T. Hughes2009-04-072-13/+16
| | | | | | | | | | When the connection is established, the socket notifier is deleted, but not the connection timer, so the opened connection will be closed after 30 seconds. Task-number: none Reviewed-by: Andreas Reviewed-by: Thiago
* Remove inline keywords, fix compile bugIan Walters2009-04-071-3/+3
| | | | | | | | | | The compile under OS-X was failing due to unfound symbols. Given that the implementation of these functions is not in the header file, they should not have inline keywords. Removing the inline keywords allowed compilation to succeed. Reviewed-by: Rhys Weatherley
* Move QT_BEGIN_NAMESPACE to after the usual Qt header includesRhys Weatherley2009-04-073-8/+8
| | | | | | | QT_BEGIN_NAMESPACE is not defined until qglobal.h is included, but some of the QtNetwork headers were listing it before. Reviewed-by: Ian Walters
* De-inlined 2 functions in QHttpNetworkHeaderMarkus Goetz2009-04-061-2/+2
| | | | RevBy: Thiago
* Splitted qhttpnetworkconnection* files into individual filesMarkus Goetz2009-04-069-1237/+1659
| | | | (cherry picked from commit fd9b788bd6a99630b06cffee4c9fa9f4c06b0ef1)
* Fix QNetworkReply's automatic pushing of a cache when the cache isThiago Macieira2009-04-061-17/+27
| | | | | | | | | | | | | | | | | | | | | | | | | more than 64k. This issue was found by Warwick: the copyReadyRead() slot is called only once as a result of readyRead(), but since there's no more data to be received (the source QIODevice is a QBuffer), we'll never get a readyRead() again. So, if we don't have a limited buffer size, we should read everything. This applies to QFile as well. The side-effect is that we cause the entire QFile to be loaded to memory, so if you had a 2 GB cache entry, you'll probably run out of memory. Future optimisations: - don't memcpy the data from a QBuffer into another buffer - find a way to avoid loading the entire contents of the file (probably not possible with the default QNetworkDiskCache since that may compress the data, so we won't know the size and thus can't fake finished()) Reviewed-by: Warwick Allison
* Use the standard 'type name = value' variable declaration for PODThiago Macieira2009-04-031-1/+1
| | | | | | | | | | | | types. C++ is nice, but we don't have to use confusing syntax when plain old C works (and is correct). This apparently fixes a compilation error on MSVC 6, that doesn't like the constructor-like initialisation for POD types. Reviewed-by: Trust Me BT: yes
* make relative #include relative to the current fileOswald Buddenhagen2009-04-021-1/+1
| | | | i.e., use "", not <> and thus rely on the include path
* QNetworkInterface: fix listing of all interfacesPeter Hartmann2009-04-011-3/+3
| | | | | | | | Before, we returned 0 for many interfaces because we picked up the IPv6 address regardless whether it was 0 or not. Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com> Task-number: 249312
* Subject: Mention setProxy() should be called before setHost() in the docAndy Shaw2009-04-011-1/+5
| | | | Reviewed-by: Kavindra Devi Palaraja <kavindra.palaraja@nokia.com>
* Fix the parsing of October dates.Benjamin C Meyer2009-03-301-3/+4
| | | | | | | The code was looking for a 't' to detect GMT-nnnn. It should really be checking for 'gmt'. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com>
* Fix parsing of multiple cookies that are separated by a newlineThiago Macieira2009-03-301-1/+1
| | | | Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Fix accesses past-the-end of the byte arrayThiago Macieira2009-03-301-2/+3
| | | | Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Fix parsing of dates: if the month is followed by a dash, it's not the ↵Thiago Macieira2009-03-301-0/+2
| | | | | | | | negative sign. I don't know why, but this only triggers for the month of October Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* When doing date comparisons, force to the same timezone.Thiago Macieira2009-03-301-1/+1
| | | | | | It's the logical time that matters, not the exact date representation. Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Fix a few issues introduced by Ben's last patch.Thiago Macieira2009-03-301-15/+24
| | | | | | | | | | | | | | Test if we're not past the end of the array before we attempt to read it. Dates without timezone information are taken to be UTC, so merge the code. If the date parsing failed, don't add a malformed cookie. Better to have no cookie than to have it for past its expiration date. Also update the autotests, since we now can cope with some of the invalid cookies seen on the net. Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Change cookie expiration reading to match the behavior of Firefox. Rather ↵Benjamin C Meyer2009-03-301-53/+384
| | | | | | | | | then only allowing the three date formats that are in the rfc allow a much wider set of date strings. Because many browsers support this many websites send dates strings that are not in the rfc format. See documentation in parseDateString for more details about the implementation. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com> Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Fix bug introduced by last patch.Thiago Macieira2009-03-301-1/+1
| | | | | | Make sure that we can handle two Set-Cookie headers. Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* When parsing a cookie string the ',' character is special because it is used ↵Benjamin C Meyer2009-03-302-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | in the date and to differentiate between multiple cookies. When there are multiple set-cookie headers rather then combining them with ', ' use '\n' like Firefox because we are 100% sure that we have multiple cookies and using , can result in cases where the , is interpreted as as part of the date such as the following set-cookie:a=b; expires=2009 mar 10 set-cookie:c=d Combined the old way they result in the second cookie being ignored a=b; expires=2009 mar 10, c=d Using '\n' moves our cookie parser closer to Firefox's algorithm which will result in more behavior and bug for bug compatibility. Attempting to be smarter about the , will result in incompatibility with Firefox's implementation (as my first attempt at fixing this bug resulted). Also when parsing multiple cookies when we have an error don't return an empty list of cookies, but return the list of cookies we were able to parse successfully so far. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com> Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Check for a redirection after setting the headers. If there is a redirection ↵Benjamin C Meyer2009-03-301-2/+2
| | | | | | | the location header will be used to determine where to go. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com> Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* When loading a url straight from cache call finished so the ↵Benjamin C Meyer2009-03-301-1/+3
| | | | | | | QNetworkReply::finished() signal is emited. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com> Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Improvements to follow the behavior of web servers and other browsers, ↵Benjamin C Meyer2009-03-301-3/+17
| | | | | | | | | | specifically match the behavior of Firefox which servers test against. - When updating the cache metadata don't update content-* headers - Don't lowercase headers names when updating them - Fixed a typo in QNETWORKACCESSHTTPBACKEND_DEBUG code Originally seen on http://www.bibelbund.de/htm/99-4-306.htm where on refresh the 304 will set the content type of text/plain. Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com> Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
* Doc - added QHostInfo to QHostAddress' See Also line, as requested byKavindra Devi Palaraja2009-03-261-1/+1
| | | | | | | the task. Task-number: 249423 Reviewed-by: TrustMe
* Fix a small mistake in recalculating the timeout in case we getThiago Macieira2009-03-251-10/+10
| | | | | | | | | | | | | | | | | interrupted twice by a signal. If we're interrupted only once, there's no problem. If we're interrupted twice, we subtract the elapsed time since the beginning from the remaining time, so this won't work. The correct thing is to recalculate from the original timeout value. This is extremely difficult to test, since it requires that the select(2) call be interrupted twice by signals. The only way to do this is by sending two signals to a program from another program (or threads, with pthread_kill(3)) with less than half of the time left, then send data to cause the loop to exit with success. Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Long live Qt 4.5!Lars Knoll2009-03-23128-0/+54195