| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
OpenBSD's OpenSSL libraries are linked in a bizarre way: libssl.so
doesn't link to libcrypto.so, even though it depends on it. I don't
claim to understand why, but they do it. So make sure we export its
symbols for libssl to see and we load libcrypto first.
Task-number: 252042
Patch by: Marc Espie <espie@openbsd.org>
Reviewed-by: Peter Hartmann
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you write:
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
Then now QNetworkProxy will set the capabilities to the default value
for the new proxy type. Previously, it wouldn't do that: default
values were set only for the type passed in the constructor.
Reviewed-by: Peter Hartmann
|
|
|
|
|
|
| |
name resolution
Task-number: 252761
|
|
|
|
|
|
|
|
| |
In QNetworkDiskCache::prepare() When QTemporaryFile::open fails,
delete the cache item and return 0 rather then returning a closed
device. And a spelling mistake in a qWarning()
Reviewed-by: Peter Hartmann
|
|
|
|
|
| |
Task-number: 252298
Reviewed-by: Peter Hartmann
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Don't setfault when setting 0 for the network cache such as when you
want to disable it.
Reviewed-by: Peter Hartmann
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: thiago
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
emit disconnected() if we were in ConnectedState or in ClosingState
before
Reviewed-by: Thiago
Task-number: 250976
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
RevBy: Thiago
|
|
|
|
| |
(cherry picked from commit fd9b788bd6a99630b06cffee4c9fa9f4c06b0ef1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
i.e., use "", not <> and thus rely on the include path
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Reviewed-by: Kavindra Devi Palaraja <kavindra.palaraja@nokia.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
|
|
|
|
| |
Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
It's the logical time that matters, not the exact date representation.
Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Make sure that we can handle two Set-Cookie headers.
Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
QNetworkReply::finished() signal is emited.
Signed-off-by: Thiago Macieira <thiago.macieira@nokia.com>
Signed-off-by: Peter Hartmann <peter.hartmann@trolltech.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
the task.
Task-number: 249423
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|