| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we just ignored Content-Length if the server specified
"Connection: close", which does the right thing if the specified
Content-Length is too large, but fails if the Content-Length is
correct but the server "forgets" to close the connection. Fix this so
that we always stop reading once we get to the expected
Content-Length, but we also cope with the connection closing before
that point.
https://bugzilla.gnome.org/show_bug.cgi?id=611481
|
|
|
|
|
|
|
| |
GIR files contain a shared-library attribute which varies per platform,
and therefore must not be disted; see bug 621611 for rationale.
https://bugzilla.gnome.org/show_bug.cgi?id=621727
|
|
|
|
|
|
|
|
| |
eg, "Cannot resolve hostname (sadfasdfasdfasdf.com)"
This can be useful for debugging.
https://bugzilla.gnome.org/show_bug.cgi?id=623274
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The session rewrites changed cancellation in async sessions to happen
asynchronously. This makes more sense than the old behavior, but can
cause problems with code that previously assumed it could
cancel-and-forget (and it wasn't actually an intentional change
anyway). So revert that.
https://bugzilla.gnome.org/show_bug.cgi?id=625406
|
|
|
|
|
|
|
|
|
|
|
| |
Due to bug 581342 we want to only negotiate SSL 3.0. Previously we
were telling gnutls to not do TLS1.0 or TLS1.1, but that means with
newer versions of gnutls that support TLS1.2 it would try to negotiate
that instead and generally fail. Fix that by disabling TLS1.2 too
(which works fine even with gnutls versions that don't support TLS1.2
yet).
https://bugzilla.gnome.org/show_bug.cgi?id=622857
|
|
|
|
|
|
|
|
|
|
|
| |
We were mistakenly reusing the same SoupConnection for a queue item
even if the message got redirected to a different host. Fix that. The
particular fix here (always force it to re-run
soup_session_get_connection() after a redirect) is a bit
over-aggressive, but this will get rewritten when we eventually fix
connection pooling in the proxy case.
Also, add a test to tests/redirect-test for this.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
soup_date_new_from_string() would sometimes read off the end of the
string, but tests/date didn't catch this even under valgrind, because
all of the strings were compile-time constants and they got laid out
in a way that never triggered a read of invalid memory. So tweak the
test to g_strdup each string before parsing it, which will let
valgrind notice if we read outside its bounds in the future.
https://bugzilla.gnome.org/show_bug.cgi?id=620288
|
|
|
|
|
|
|
| |
Since connections are assigned to messages before they're connected
now, they should go to IN_USE after connecting, not IDLE. Otherwise
the idle-connection-closing code might close connections that existing
queue items were planning to use.
|
|
|
|
|
|
|
| |
After the too-many-redirects merge, redirect-test was leaking a queue
item, because cancelling a message at the point it does resulted in
the completion_cb never running. Fix soup_session_cancel_message()
(again) to not have this problem.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Make the sessions more state-machiney and fix up
soup_session_cancel_message() by having it set the message to the
(new) FINISHING state and letting the session implementation pick it
up from there. Remove the remaining "finished" and "restarted" signal
handlers; move the base session's "finished" handler to
"soup_session_unqueue_item" and call that from the right places in the
subclasses.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than having connections be independent until a message is
actually sent on them, assign them to queue items when they're created
for them. This means that, eg, if another connection frees up while
we're waiting for the first connection to connect, that we can't take
advantage of that. But it simplifies a ton of other things.
Also, if a new connection fails, don't fail every other message on
that host; let them succeed or fail independently. When doing a
CONNECT though, keep track of the queue item that necessitated it so
we can error that out if the CONNECT fails, just like we would if the
actual soup_connection_connect() had failed.
https://bugzilla.gnome.org/show_bug.cgi?id=619633
|
|
|
|
|
|
| |
SoupMessageIOStatus was always really more about the session than the
message. (SoupServer I/O didn't use it at all.) Replace it with a new
SoupMessageQueueItemState, on the queue item rather than the message.
|
|
|
|
|
|
| |
push SoupMessageQueueItem down into soup-message-io, and end the I/O
process by calling a completion callback rather than emitting the
SoupMessage signals directly, which gives the session greater control.
|
|
|
|
|
|
|
|
|
| |
Use GCancellables in connect_async/connect_sync (plus updates needed
for behavior changes caused by that). Make
soup_connection_disconnect() always emit the signal if the connection
state wasn't already DISCONNECTED, even if it wasn't yet connected
before. Remove some dead code in clear_current_request. Remove some
more-or-less redundant arguments in soup_message_send_request().
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Connections should always be disconnected and message-less by the time
they are disposed. Likewise, their SoupSockets should be disconnected
and not in the middle of an async connect when they're freed (though
we can't make the sockets warn unconditionally, since other SoupSocket
users external to libsoup may still be doing it "wrong", since that has
historically been a supported part of the API)
Fix some problems revealed by these warnings. Also, remove some weak
refs and replace others by hard refs as needed. Remove unnecessary
SoupSessionAsyncTunnelData type.
|
|
|
|
|
|
| |
Ensure that we're not aborting the session until after all the
messages finish. (Previously it worked by coincidence, but upcoming
changes tweak things enough that it would fail otherwise.)
|
|
|
|
|
| |
Now SOUP_STATUS_SSL will have the the reason phrase "SSL handshake
failed" instead of "SSL support not available" when SSL was available.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=621021
|
|
|
|
|
|
|
| |
previously if you jhbuilt glib and libsoup, but not shared-mime-info,
then this test would fail. Fix that.
https://bugzilla.gnome.org/show_bug.cgi?id=612706
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SoupProxyResolverGNOME had a nasty workaround for the fact that
libproxy 0.2 would crash inside GConf if called from a thread other
than the main one. Unfortunately, the workaround involves leaking
proxy settings into the environment, which is particularly bad since
gnome-panel uses libsoup (via libgweather via intlclock) and so the
environment can become polluted for everything started from the panel.
In libproxy 0.3 and later, the workaround is no longer necessary, so
remove it if libproxy is new enough.
https://bugzilla.gnome.org/show_bug.cgi?id=603285
|
|
|
|
|
|
| |
and add a test to redirect-test
https://bugzilla.gnome.org/show_bug.cgi?id=604383
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=619897
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=619086
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=615535
|
|
|
|
| |
Part of https://bugzilla.gnome.org/show_bug.cgi?id=615535
|
|
|
|
|
|
|
|
| |
An I/O failure on a previously-used connection may indicate that the
server timed out the connection; an I/O error on a fresh connection
should not. Fixes infinite retries in certain edge cases.
Part of https://bugzilla.gnome.org/show_bug.cgi?id=615535
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If soup_session_abort() was called while we were doing async DNS,
things could get confused and it would end up trying to use a freed
SoupSocket. Fix that up by always properly using GCancellables during
SoupSocket connection, so that we can cancel any outstanding
operations if the socket is destroyed, and add a regression test for
that.
That then fixes a known leak in misc-test's early-abort case, but
makes it crash instead, so we fix that by using a weak pointer in
SoupSessionAsync to detect when the session has been destroyed before
the callback is invoked. This then creates/reveals additional leaks in
that test case, which require additional fixes.
The relevant APIs are obviously lousy (in the way most pre-gio async
APIs in GNOME were), but can't really be fixed at this point without
breaking ABI. To be fixed in the gio-based API...
https://bugzilla.gnome.org/show_bug.cgi?id=618641
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add constructor `soup_buffer_new_take', which is bindable and
annotate it "Rename to: soup_buffer_new".
- Likewise, create `soup_message_body_append_take' and "Rename to:
soup_message_body_append".
- Added `soup_buffer_get_data' allowing bindings to access the buffer
data.
See <https://bugzilla.gnome.org/show_bug.cgi?id=576595>.
|
|\
| |
| |
| |
| | |
master
t/g-i
|
|/
|
|
|
| |
master
t/build-fixes
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=617216
|
|
|
|
| |
for added introspectability
|
|
|
|
|
|
|
| |
For use with gobject-introspection in bindings that can't read fields
directly.
Patch from Colin Walters. http://bugzilla.gnome.org/show_bug.cgi?id=551441
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Detect gobject-introspection (g-i) in configure, using the M4 macro
from the newly-added introspection.m4. This adds
gobject-introspection as a new *optional* build dependency.
- Integrate the generation of .gir and .typelib files into the build
build process.
- Add the annotations from gir-repository to the source code.
- Include annotation glossary in "Reference Manual" main file.
See <https://bugzilla.gnome.org/show_bug.cgi?id=576595>.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=615711
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we try to CONNECT through a proxy, and it returns a "407 Proxy
Authentication Required" but then closes the connection, we have to
create a new connection before we can try CONNECTing again. The old
soup-connection.c tunnel code did this, but it got accidentally lost
in the soup-session.c version.
Fix up tests/proxy-test to test both the connection-close and the
persistent-connection cases.
This was the underlying bug in
https://bugzilla.gnome.org/show_bug.cgi?id=611663, and is at least
part of https://bugzilla.gnome.org/show_bug.cgi?id=611539.
|
|
|
|
|
|
|
|
| |
In general, if the data being passed to SoupLogger is bad, the app is
probably going to crash soon anyway, but we'd rather have it crash
somewhere "real", not in the debugging code.
https://bugzilla.gnome.org/show_bug.cgi?id=611663
|
|
|
|
| |
also, add proxy auth support to tests/simple-proxy
|
|
|
|
|
|
|
| |
The HTML 4.01 spec says you have to, but apparently no one else does,
and it confuses some servers.
https://bugzilla.gnome.org/show_bug.cgi?id=614198
|