| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This prevents some unnecessary string copies and a tiny bit of memory.
|
|
|
|
|
| |
I removed the only usage of this function in b609d44e so time for it to
go.
|
|
|
|
|
|
|
|
|
| |
disconnect
(process:15586): GLib-GIO-CRITICAL **: 12:14:39.627: g_tls_connection_get_peer_certificate_errors: assertion 'G_IS_TLS_CONNECTION (conn)' failed
We should disconnect the signal on disconnect_internal before clearing
the connection object.
|
|
|
|
|
| |
Now only SoupMessage is missing since the private from this class
is accessed from other classes.
|
|
|
|
|
|
| |
See https://developer.gnome.org/hig/stable/typography.html
https://bugzilla.gnome.org/show_bug.cgi?id=772217
|
|
|
|
|
|
|
| |
The fact that soup_socket_listen() doesn't return a proper
error masks real failure modes.
https://bugzilla.gnome.org/show_bug.cgi?id=764057
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=751421
|
|
|
|
|
|
|
|
|
|
| |
Setting close-on-dispose=FALSE on a socket would cause it to leak its
GSocket. Indeed, there is no way to avoid this, since freeing the
GSocket will always close it.
Work around the problem in a different way by having the steal()
methods steal the GSocket from the SoupSocket, and ensure that it gets
freed later along with the stolen GIOStream.
|
|
|
|
|
|
|
|
|
| |
If :use-thread-context is set on a socket, then hold a ref on the
thread-default GMainContext for the life of the socket. In particular,
this fixes a race condition in the test-utils server code that
sometimes shows up in context-test.
https://bugzilla.gnome.org/show_bug.cgi?id=744862
|
|
|
|
|
|
|
|
| |
Not strictly required since it's client-side code, but potentially
SoupSocket could not have GSocket anymore, and it seems better to use
more abstract pollable stream methods.
https://bugzilla.gnome.org/show_bug.cgi?id=744186
|
|
|
|
|
|
|
| |
Rely on priv->conn to decide whether to call disconnect_internal() or
not.
https://bugzilla.gnome.org/show_bug.cgi?id=744186
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=744186
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SoupConnection was generating its own :event signals for
TLS_HANDSHAKING/TLS_HANDSHAKED, since we don't use GSocketClient's TLS
negotiation, and so just re-emitting the socket client signal won't
cover that.
However, it ended up emitting it before the SoupSocket had even
created the GTlsClientConnection, and so was emitting it with the
GTcpConnection, contrary to the documentation.
Fix this by making the SoupSocket generate those event signals at the
correct time, and having SoupConnection just re-emit them. Also, add
code to connection-test to verify that each even is emitted with the
expected kind of GIOStream.
https://bugzilla.gnome.org/show_bug.cgi?id=739951
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=729987
|
|
|
|
|
|
|
|
|
| |
was pushed
Based on a patch by Dmitry Shatrov <shatrov@gmail.com>, see
http://mail.gnome.org/archives/libsoup-list/2011-November/msg00000.html
https://bugzilla.gnome.org/show_bug.cgi?id=729737
|
|
|
|
|
|
|
|
|
|
|
|
| |
This can be used by applications to do client-side certificates via
the new g_tls_interaction_request_certificate(). Will be used by
OSTree at least.
Also add a test to tls-test.
Based on a patch from Colin Walters.
https://bugzilla.gnome.org/show_bug.cgi?id=334021
|
|
|
|
|
|
|
|
|
|
| |
Add new APIs to SoupServer, allowing multiple listening sockets on a
server, and listening on an existing fd or GSocket, and with better
error handling.
https://bugzilla.gnome.org/show_bug.cgi?id=522519
https://bugzilla.gnome.org/show_bug.cgi?id=561547
https://bugzilla.gnome.org/show_bug.cgi?id=621138
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=721343
|
|
|
|
|
|
| |
There are a large number of SoupSession properties that need to be
propagated through the SoupConnection to the SoupSocket. Wrap them all
up into a single struct for ease of carrying.
|
|
|
|
|
| |
SoupSocket-related stuff made up more than half of
soup-misc-private.h. Split it out into its own header.
|
| |
|
|
|
|
|
|
|
| |
The old SoupSocket did this but it accidentally got removed in the
GSocket port because I thought it didn't matter. It does.
Noticed by Andy Wingo.
|
|
|
|
|
|
|
|
| |
GTask needs to be unreffed after calling g_task_return_* when we
don't use async methods which take ownership of it (as
g_task_run_in_thread() does).
https://bugzilla.gnome.org/show_bug.cgi?id=711085
|
|
|
|
|
|
|
| |
Port the SoupConnection methods to be gio-like, using
GAsyncReadyCallback for the async ones, and returning GErrors rather
than libsoup status codes. Add internal-gio-like SoupSocket connect
methods for the SoupConnection methods to use.
|
|
|
|
| |
and update SoupConnection to use them
|
|
|
|
|
|
|
| |
g_cclosure_marshal_generic() is the default signal handler starting
from glib 2.29.12. libsoup already requires glib 2.33.1.
https://bugzilla.gnome.org/show_bug.cgi?id=686042
|
|
|
|
|
|
|
| |
Add a test for the leak in bug 700472, which also turned up another
leak.
https://bugzilla.gnome.org/show_bug.cgi?id=700472
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=700472
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
soup-portability.h created portability problems (ha!) because the
windows headers do "#define interface struct", conflicting with
variable names elsewhere.
The only thing that needed soup-portability.h in the public headers
was soup-address.h, which uses struct sockaddr. But we can just do a
forward declaration of that type rather than actually pulling in the
headers. Then soup-address.h can stop including soup-portability.h,
and we can use gio/gnetworking.h in the handful of other places that
need networking-related includes.
This may possibly break some other modules that depended on implicitly
getting network includes as a side effect of including soup.h...
https://bugzilla.gnome.org/show_bug.cgi?id=692134
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that GSocketClient lets you override its proxy resolver, allow
setting a GProxyResolver on a SoupSession, to eventually pass on to
the GSocketClient.
(In the interest of not breaking things this late in the release
cycle, all of the old SoupProxyURIResolver code still exists as well,
in parallel, but in 2.43 it will be removed and replaced with
GProxyResolver-based backward-compat stuff.)
https://bugzilla.gnome.org/show_bug.cgi?id=680273
|
|
|
|
|
|
|
|
|
|
| |
The GSocketClient::event signal gets proxied from GSocketClient to
SoupSocket to SoupConnection to SoupSession to SoupMessage (!) via
signal handlers that used to have "proxy" in their names. But that
made it sound like they had something to do with network proxies. So
rename them all (to "re_emit").
https://bugzilla.gnome.org/show_bug.cgi?id=680273
|
|
|
|
| |
This allows binding the client connection to a specific local address.
|
|
|
|
| |
Thus avoiding duplication of code in sync and async functions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add SOUP_VERSION_X_XX, SOUP_VERSION_MIN_REQUIRED, and
SOUP_VERSION_MAX_ALLOWED, to enable version-based warnings.
Tag all functions with appropriate SOUP_AVAILABLE_IN_ and
SOUP_DEPRECATED_IN_ macros.
Also, fix up some "Since" tags to not refer to unstable releases or
non-.0 point releases.
|
|
|
|
|
|
|
| |
This makes it easier to implement streams that discard the boundary, like
SoupMultipartInputStream.
https://bugzilla.gnome.org/show_bug.cgi?id=656684
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Warn and return NULL deterministically, rather than warning and returning
uninitialized stack garbage, but document it as "undefined"; these
methods were never meant to be valid in this situation, apparently.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=673083
|
|
|
|
|
|
|
|
|
|
|
|
| |
"readable" and "writable" are only supposed to be emitted for
non-blocking sockets, but we were emitting "readable" on disconnect
for all sockets.
In libsoup 2.38 and earlier, this could cause a crash if a message in
a SoupSessionSync failed at certain points, since the code wasn't
expecting to end up in io_read(). The current code no longer has this
problem (since soup-message-io no longer uses the SoupSocket signals),
but other external users of SoupSocket might.
|
|
|
|
|
|
|
|
| |
Especially, include soup.h rather than individually including a bunch
of other public soup-*.h files.
Remove unnecessary system includes (many are leftovers from code that
has moved down into glib).
|
|
|
|
|
| |
Also, prefix virtual method implementation names with the class name,
to be consistent with other code.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Push the proxy resolution code from SoupSession down into
SoupConnection and SoupSocket. If using a SoupProxyResolverDefault,
just enable proxy support on the GSocketClient instead (after adding
"http" as an application protocol). This way we get support for SOCKS
proxies (and any other proxies supported by GProxy types).
https://bugzilla.gnome.org/show_bug.cgi?id=553269
|
|
|
|
|
|
| |
Add a new SoupIOStream, which wraps the SoupFilterInputStream and
GOutputStream that SoupSocket exposes. Pass that to soup-message-io
rather than the SoupSocket, and update various other things for this.
|
|
|
|
|
|
|
|
|
|
|
| |
Use the socket's input/output streams for the base I/O, and add new
SoupBodyInputStream and SoupBodyOutputStream that can be created from
them to handle the body of a single message (including handling
chunked encoding/decoding).
Update chunk-test, which was assuming that the chunk_allocator
callback would never be called if the message had a 0-length body;
that's no longer true.
|
|
|
|
|
|
|
|
| |
SoupFilterInputStream is basically a subset of GDataInputStream, plus
non-blocking read_line()/read_until().
Wrap the existing socket istream member with a SoupFilterInputStream,
and use its buffering rather than doing the buffering in SoupSocket.
|
|
|
|
|
|
|
|
|
| |
Cancelling a message while it was still connecting could result in an
(erroneous) warning about "disposing socket while still connected", or
an (accurate) warning about passing NULL to
g_tls_connection_handshake_finish(). Fix both of these.
Pointed out on the mailing list by Sven Neumann.
|
|
|
|
|
| |
Test drive Makefile.glib from bug 654395 (excepted distributed with
the tarball rather than using one installed with glib).
|