From cccf4b45b740c0a601ed6116b79755a6686dfbcc Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 9 Aug 2012 07:24:10 -0400 Subject: soup-misc-private.h: Fix the single-include #define Pointed out by various people on multiple occasions until eventually I remembered to fix it... --- libsoup/soup-misc-private.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 8276b8a5..0677fc5b 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -4,8 +4,8 @@ * Copyright 2011 Red Hat, Inc. */ -#ifndef SOUP_URI_PRIVATE_H -#define SOUP_URI_PRIVATE_H 1 +#ifndef SOUP_MISC_PRIVATE_H +#define SOUP_MISC_PRIVATE_H 1 #include "soup-socket.h" @@ -41,4 +41,4 @@ SoupURI *soup_socket_get_http_proxy_uri (SoupSocket *sock); method == SOUP_METHOD_PUT || \ method == SOUP_METHOD_DELETE) -#endif /* SOUP_URI_PRIVATE_H */ +#endif /* SOUP_MISC_PRIVATE_H */ -- cgit v1.2.1 From 9281a4f2088428557b9f1a458eb9446ddc2a97f2 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sun, 12 Aug 2012 10:32:49 -0400 Subject: SoupSessionAsync: fix the idle_run_queue source handling (again) The previous code checked priv->disposed after the session was freed sometimes... --- libsoup/soup-misc-private.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 0677fc5b..79e73bc6 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -41,4 +41,8 @@ SoupURI *soup_socket_get_http_proxy_uri (SoupSocket *sock); method == SOUP_METHOD_PUT || \ method == SOUP_METHOD_DELETE) +GSource *soup_add_completion_reffed (GMainContext *async_context, + GSourceFunc function, + gpointer data); + #endif /* SOUP_MISC_PRIVATE_H */ -- cgit v1.2.1 From 24aaa6d7566eacc8f848f22d213a09a44a061121 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sat, 16 Feb 2013 19:20:18 -0500 Subject: Add SoupSession:proxy-resolver 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 --- libsoup/soup-misc-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 79e73bc6..b9f0724f 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -23,7 +23,7 @@ GIOStream *soup_socket_get_connection (SoupSocket *sock); GIOStream *soup_socket_get_iostream (SoupSocket *sock); #define SOUP_SOCKET_CLEAN_DISPOSE "clean-dispose" -#define SOUP_SOCKET_USE_PROXY "use-proxy" +#define SOUP_SOCKET_PROXY_RESOLVER "proxy-resolver" SoupURI *soup_socket_get_http_proxy_uri (SoupSocket *sock); /* At some point it might be possible to mark additional methods -- cgit v1.2.1 From c1c58c9fc79562b0da4ceeeb3fc378407f8b9c85 Mon Sep 17 00:00:00 2001 From: Zan Dobersek Date: Thu, 7 Mar 2013 21:23:15 +0100 Subject: data: URL requests should serve the whole decoded URL Address the possibility of data: URLs containing null characters when the data request is being performed. The uri_decoded_copy method is enhanced with a third argument, a pointer to an integer that should be set to the length of decoded data when provided. This length is then set as the request's content length. A test checking the correct behavior is added in requester-test. Calls to uri_decoded_copy where the length of the decoded output is not required are adjusted to provide NULL as the third argument. --- libsoup/soup-misc-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index b9f0724f..cd836189 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -9,7 +9,7 @@ #include "soup-socket.h" -char *uri_decoded_copy (const char *str, int length); +char *uri_decoded_copy (const char *str, int length, int *decoded_length); guint soup_socket_handshake_sync (SoupSocket *sock, GCancellable *cancellable); -- cgit v1.2.1 From 8c5ae3c24c95381b52530ac76a80598bb750c1ef Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 18 Apr 2013 10:30:32 -0400 Subject: soup-address: fix proxy enumerator implementation When creating a GProxyAddressEnumerator, the destination URI passed to it must include the port number, or the proxy may end up trying to connect to port 0. libsoup was omitting the port number when it was the default for the protocol. https://bugzilla.gnome.org/show_bug.cgi?id=698163 --- libsoup/soup-misc-private.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index cd836189..d03bc77f 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -10,6 +10,8 @@ #include "soup-socket.h" char *uri_decoded_copy (const char *str, int length, int *decoded_length); +char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, + gboolean force_port); guint soup_socket_handshake_sync (SoupSocket *sock, GCancellable *cancellable); -- cgit v1.2.1 From 8524d46134bce62ee6d8a534a56c24da90651b9c Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sun, 4 Aug 2013 13:08:29 -0400 Subject: soup-message-server-io: handle unsatisfiable Range requests correctly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit soup_message_headers_get_ranges() doesn't check satisfiability (and can't without changing its API) so add a new soup_message_headers_get_ranges_internal(), and use that from soup-message-server-io so we can handle this properly. Test that it works from range-test. Pointed out on the mailing list by Kai Lüke. --- libsoup/soup-misc-private.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index d03bc77f..02768706 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -8,6 +8,7 @@ #define SOUP_MISC_PRIVATE_H 1 #include "soup-socket.h" +#include "soup-message-headers.h" char *uri_decoded_copy (const char *str, int length, int *decoded_length); char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, @@ -47,4 +48,10 @@ GSource *soup_add_completion_reffed (GMainContext *async_context, GSourceFunc function, gpointer data); +guint soup_message_headers_get_ranges_internal (SoupMessageHeaders *hdrs, + goffset total_length, + gboolean check_satisfiable, + SoupRange **ranges, + int *length); + #endif /* SOUP_MISC_PRIVATE_H */ -- cgit v1.2.1 From 4a8b1c0544b168b25cbd3b016b7aedee263515ba Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sun, 25 Aug 2013 10:51:22 -0400 Subject: SoupServer: add :http-aliases and :https-aliases properties Add :http-aliases and :https-aliases properties to SoupServer, to allow it to handle requests like: GET daap://host:port/path HTTP/1.1 https://bugzilla.gnome.org/show_bug.cgi?id=703694 --- libsoup/soup-misc-private.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 02768706..e9c83f61 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -13,6 +13,8 @@ char *uri_decoded_copy (const char *str, int length, int *decoded_length); char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, gboolean force_port); +gboolean soup_uri_is_http (SoupURI *uri, char **aliases); +gboolean soup_uri_is_https (SoupURI *uri, char **aliases); guint soup_socket_handshake_sync (SoupSocket *sock, GCancellable *cancellable); -- cgit v1.2.1 From e5fbda83f6045a610054b179ae60fc062bded101 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 10 Oct 2013 09:31:23 -0400 Subject: soup-uri: minor code reorg/renaming Change uri_decoded_copy() to strdup the input string *after* doing its g_return_val_if_fail(), to avoid pointlessly confusing code analyzers. Also, rename the function to soup_uri_decoded_copy(), since it's used from soup-request-data.c too and it's been annoying me that it was non-namespaced. https://bugzilla.gnome.org/show_bug.cgi?id=709793 --- libsoup/soup-misc-private.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index e9c83f61..7ea2cdea 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -10,7 +10,7 @@ #include "soup-socket.h" #include "soup-message-headers.h" -char *uri_decoded_copy (const char *str, int length, int *decoded_length); +char *soup_uri_decoded_copy (const char *str, int length, int *decoded_length); char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, gboolean force_port); gboolean soup_uri_is_http (SoupURI *uri, char **aliases); -- cgit v1.2.1 From 88103312ffac176b8ffeb159bd75fc3bbe2c452e Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 4 Jul 2013 11:35:29 -0400 Subject: SoupSocket: make handshaking methods gio-like and update SoupConnection to use them --- libsoup/soup-misc-private.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 7ea2cdea..948470ff 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -16,12 +16,18 @@ char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, gboolean soup_uri_is_http (SoupURI *uri, char **aliases); gboolean soup_uri_is_https (SoupURI *uri, char **aliases); -guint soup_socket_handshake_sync (SoupSocket *sock, - GCancellable *cancellable); -void soup_socket_handshake_async (SoupSocket *sock, - GCancellable *cancellable, - SoupSocketCallback callback, - gpointer user_data); +gboolean soup_socket_handshake_sync (SoupSocket *sock, + const char *host, + GCancellable *cancellable, + GError **error); +void soup_socket_handshake_async (SoupSocket *sock, + const char *host, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean soup_socket_handshake_finish (SoupSocket *sock, + GAsyncResult *result, + GError **error); GSocket *soup_socket_get_gsocket (SoupSocket *sock); GIOStream *soup_socket_get_connection (SoupSocket *sock); -- cgit v1.2.1 From 665a6e44005b4a0d5e4911b81e89d9984695e40b Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 3 Jul 2013 17:28:23 -0400 Subject: SoupConnection: make methods gio-like 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. --- libsoup/soup-misc-private.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'libsoup/soup-misc-private.h') diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h index 948470ff..50a3b988 100644 --- a/libsoup/soup-misc-private.h +++ b/libsoup/soup-misc-private.h @@ -16,6 +16,17 @@ char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query, gboolean soup_uri_is_http (SoupURI *uri, char **aliases); gboolean soup_uri_is_https (SoupURI *uri, char **aliases); +gboolean soup_socket_connect_sync_internal (SoupSocket *sock, + GCancellable *cancellable, + GError **error); +void soup_socket_connect_async_internal (SoupSocket *sock, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean soup_socket_connect_finish_internal (SoupSocket *sock, + GAsyncResult *result, + GError **error); + gboolean soup_socket_handshake_sync (SoupSocket *sock, const char *host, GCancellable *cancellable, -- cgit v1.2.1