summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/libsoup-2.4-sections.txt10
-rw-r--r--libsoup/libsoup-2.4.sym8
-rw-r--r--libsoup/soup-request-http.c506
-rw-r--r--libsoup/soup-request-http.h41
-rw-r--r--libsoup/soup-request.c30
-rw-r--r--libsoup/soup-request.h4
-rw-r--r--tests/cache-test.c5
-rw-r--r--tests/coding-test.c33
-rw-r--r--tests/connection-test.c9
-rw-r--r--tests/proxy-test.c9
-rw-r--r--tests/requester-test.c30
-rw-r--r--tests/sniffing-test.c4
12 files changed, 61 insertions, 628 deletions
diff --git a/docs/reference/libsoup-2.4-sections.txt b/docs/reference/libsoup-2.4-sections.txt
index db45167f..f3595973 100644
--- a/docs/reference/libsoup-2.4-sections.txt
+++ b/docs/reference/libsoup-2.4-sections.txt
@@ -1100,8 +1100,6 @@ soup_request_get_content_type
soup_request_get_session
soup_request_get_uri
<SUBSECTION>
-soup_request_disable_feature
-<SUBSECTION>
SOUP_REQUEST_SESSION
SOUP_REQUEST_URI
<SUBSECTION Standard>
@@ -1153,14 +1151,6 @@ soup_request_file_get_type
<FILE>soup-request-http</FILE>
<TITLE>SoupRequestHTTP</TITLE>
SoupRequestHTTP
-soup_request_http_set_method
-soup_request_http_set_request_version
-soup_request_http_set_flags
-soup_request_http_get_flags
-soup_request_http_set_first_party
-soup_request_http_get_first_party
-soup_request_http_get_https_status
-<SUBSECTION>
soup_request_http_get_message
<SUBSECTION Standard>
SOUP_IS_REQUEST_HTTP
diff --git a/libsoup/libsoup-2.4.sym b/libsoup/libsoup-2.4.sym
index 66e5bf7f..7080ac5b 100644
--- a/libsoup/libsoup-2.4.sym
+++ b/libsoup/libsoup-2.4.sym
@@ -319,7 +319,6 @@ soup_requester_get_type
soup_requester_new
soup_requester_request
soup_requester_request_uri
-soup_request_disable_feature
soup_request_error_get_type
soup_request_error_quark
soup_request_file_get_file
@@ -329,15 +328,8 @@ soup_request_get_content_type
soup_request_get_session
soup_request_get_type
soup_request_get_uri
-soup_request_http_get_first_party
-soup_request_http_get_flags
-soup_request_http_get_https_status
soup_request_http_get_message
soup_request_http_get_type
-soup_request_http_set_first_party
-soup_request_http_set_flags
-soup_request_http_set_method
-soup_request_http_set_request_version
soup_request_send
soup_request_send_async
soup_request_send_finish
diff --git a/libsoup/soup-request-http.c b/libsoup/soup-request-http.c
index e932217a..4e527ccd 100644
--- a/libsoup/soup-request-http.c
+++ b/libsoup/soup-request-http.c
@@ -46,49 +46,9 @@
G_DEFINE_TYPE (SoupRequestHTTP, soup_request_http, SOUP_TYPE_REQUEST)
-/**
- * SoupRequestHTTP:
- * @method: the HTTP method
- * @request_uri: the request URI
- * @request_version: the HTTP version of the request
- * @request_headers: the request headers
- * @status_code: the HTTP status code
- * @reason_phrase: the status phrase associated with @status_code
- * @response_version: the HTTP version of the response
- * @response_headers: the response headers
- *
- * Represents an HTTP message being sent or received via the
- * #SoupRequest API. The fields on this object reflect the values on
- * the request's underlying #SoupMessage; see the #SoupMessage
- * documentation for more information.
- *
- * Since: 2.42
- */
-
-enum {
- PROP_0,
-
- PROP_METHOD,
- PROP_REQUEST_URI,
- PROP_REQUEST_VERSION,
- PROP_REQUEST_HEADERS,
- PROP_STATUS_CODE,
- PROP_REASON_PHRASE,
- PROP_RESPONSE_VERSION,
- PROP_RESPONSE_HEADERS,
-
- PROP_FLAGS,
- PROP_FIRST_PARTY,
- PROP_TLS_CERTIFICATE,
- PROP_TLS_ERRORS,
-
- LAST_PROP
-};
-
struct _SoupRequestHTTPPrivate {
SoupMessage *msg;
char *content_type;
- gboolean sent;
};
static void content_sniffed (SoupMessage *msg,
@@ -102,125 +62,6 @@ soup_request_http_init (SoupRequestHTTP *http)
http->priv = G_TYPE_INSTANCE_GET_PRIVATE (http, SOUP_TYPE_REQUEST_HTTP, SoupRequestHTTPPrivate);
}
-static void
-soup_request_http_set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- SoupRequestHTTP *http = SOUP_REQUEST_HTTP (object);
-
- switch (prop_id) {
- case PROP_METHOD:
- soup_request_http_set_method (http, g_value_get_string (value));
- break;
- case PROP_REQUEST_VERSION:
- soup_request_http_set_request_version (http, g_value_get_enum (value));
- break;
- case PROP_FLAGS:
- soup_request_http_set_flags (http, g_value_get_flags (value));
- break;
- case PROP_FIRST_PARTY:
- soup_request_http_set_first_party (http, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-soup_request_http_get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- SoupRequestHTTP *http = SOUP_REQUEST_HTTP (object);
- GTlsCertificate *cert;
- GTlsCertificateFlags errors;
-
- switch (prop_id) {
- case PROP_METHOD:
- g_value_set_string (value, http->method);
- break;
- case PROP_REQUEST_URI:
- g_value_set_boxed (value, http->request_uri);
- break;
- case PROP_REQUEST_VERSION:
- g_value_set_enum (value, http->request_version);
- break;
- case PROP_REQUEST_HEADERS:
- g_value_set_boxed (value, http->request_headers);
- break;
- case PROP_STATUS_CODE:
- g_value_set_uint (value, http->status_code);
- break;
- case PROP_REASON_PHRASE:
- g_value_set_string (value, http->reason_phrase);
- break;
- case PROP_RESPONSE_VERSION:
- g_value_set_enum (value, http->response_version);
- break;
- case PROP_RESPONSE_HEADERS:
- g_value_set_boxed (value, http->request_headers);
- break;
- case PROP_FLAGS:
- g_value_set_flags (value, soup_message_get_flags (http->priv->msg));
- break;
- case PROP_FIRST_PARTY:
- g_value_set_boxed (value, soup_message_get_first_party (http->priv->msg));
- break;
- case PROP_TLS_CERTIFICATE:
- g_object_get (G_OBJECT (http->priv->msg),
- "tls-certificate", &cert,
- NULL);
- g_value_set_object (value, cert);
- break;
- case PROP_TLS_ERRORS:
- g_object_get (G_OBJECT (http->priv->msg),
- "tls-errors", &errors,
- NULL);
- g_value_set_flags (value, errors);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-message_property_changed (GObject *object,
- GParamSpec *pspec,
- gpointer user_data)
-{
- SoupRequestHTTP *http = user_data;
-
- if (!strcmp (pspec->name, "method")) {
- http->method = http->priv->msg->method;
- g_object_notify (G_OBJECT (http), "method");
- } else if (!strcmp (pspec->name, "uri")) {
- http->request_uri = soup_message_get_uri (http->priv->msg);
- g_object_notify (G_OBJECT (http), "request-uri");
- } else if (!strcmp (pspec->name, "status-code")) {
- http->status_code = http->priv->msg->status_code;
- g_object_notify (G_OBJECT (http), "status-code");
- } else if (!strcmp (pspec->name, "reason-phrase")) {
- http->reason_phrase = http->priv->msg->reason_phrase;
- g_object_notify (G_OBJECT (http), "reason-phrase");
- } else if (!strcmp (pspec->name, "http-version")) {
- if (!http->priv->sent) {
- http->request_version = soup_message_get_http_version (http->priv->msg);
- g_object_notify (G_OBJECT (http), "request-version");
- } else {
- http->response_version = soup_message_get_http_version (http->priv->msg);
- g_object_notify (G_OBJECT (http), "response-version");
- }
- } else if (!strcmp (pspec->name, "flags"))
- g_object_notify (G_OBJECT (http), "flags");
- else if (!strcmp (pspec->name, "first-party"))
- g_object_notify (G_OBJECT (http), "first-party");
- else if (!strcmp (pspec->name, "tls-certificate"))
- g_object_notify (G_OBJECT (http), "tls-certificate");
- else if (!strcmp (pspec->name, "tls-errors"))
- g_object_notify (G_OBJECT (http), "tls-errors");
-}
-
static gboolean
soup_request_http_check_uri (SoupRequest *request,
SoupURI *uri,
@@ -236,17 +77,6 @@ soup_request_http_check_uri (SoupRequest *request,
g_signal_connect (http->priv->msg, "content-sniffed",
G_CALLBACK (content_sniffed), http);
-
- g_signal_connect (http->priv->msg, "notify",
- G_CALLBACK (message_property_changed), http);
-
- http->method = http->priv->msg->method;
- http->request_uri = soup_message_get_uri (http->priv->msg);
- http->request_version = SOUP_HTTP_1_1;
- http->request_headers = http->priv->msg->request_headers;
- http->response_version = SOUP_HTTP_1_1;
- http->response_headers = http->priv->msg->response_headers;
-
return TRUE;
}
@@ -259,9 +89,6 @@ soup_request_http_finalize (GObject *object)
g_signal_handlers_disconnect_by_func (http->priv->msg,
G_CALLBACK (content_sniffed),
http);
- g_signal_handlers_disconnect_by_func (http->priv->msg,
- G_CALLBACK (message_property_changed),
- http);
g_object_unref (http->priv->msg);
}
@@ -280,7 +107,6 @@ soup_request_http_send (SoupRequest *request,
g_return_val_if_fail (!SOUP_IS_SESSION_ASYNC (session), NULL);
- http->priv->sent = TRUE;
return soup_session_send_request (session, http->priv->msg,
cancellable, error);
}
@@ -313,8 +139,6 @@ soup_request_http_send_async (SoupRequest *request,
g_return_if_fail (!SOUP_IS_SESSION_SYNC (session));
- http->priv->sent = TRUE;
-
task = g_task_new (request, cancellable, callback, user_data);
soup_session_send_request_async (session, http->priv->msg, cancellable,
http_input_stream_ready_cb, task);
@@ -383,8 +207,6 @@ soup_request_http_class_init (SoupRequestHTTPClass *request_http_class)
request_class->schemes = http_schemes;
- object_class->set_property = soup_request_http_set_property;
- object_class->get_property = soup_request_http_get_property;
object_class->finalize = soup_request_http_finalize;
request_class->check_uri = soup_request_http_check_uri;
@@ -393,199 +215,6 @@ soup_request_http_class_init (SoupRequestHTTPClass *request_http_class)
request_class->send_finish = soup_request_http_send_finish;
request_class->get_content_length = soup_request_http_get_content_length;
request_class->get_content_type = soup_request_http_get_content_type;
-
- /**
- * SoupRequestHTTP:method:
- *
- * The request's HTTP method; "GET" by default. Note that in
- * C you can simply read the <literal>method</literal> field
- * of the #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_METHOD,
- g_param_spec_string ("method",
- "Method",
- "The HTTP method",
- SOUP_METHOD_GET,
- G_PARAM_READWRITE));
- /**
- * SoupRequestHTTP:request-uri:
- *
- * The request's #SoupURI. Note that in C you can simply read
- * the <literal>request_uri</literal> field of the
- * #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_REQUEST_URI,
- g_param_spec_boxed ("request-uri",
- "URI",
- "The Request-URI",
- SOUP_TYPE_URI,
- G_PARAM_READWRITE));
- /**
- * SoupRequestHTTP:request-version:
- *
- * The #SoupHTTPVersion used when sending the request;
- * %SOUP_HTTP_1_1 by default. Note that in C you can simply
- * read the <literal>request_version</literal> field of the
- * #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_REQUEST_VERSION,
- g_param_spec_enum ("request-version",
- "Request HTTP Version",
- "The SoupHTTPVersion used when sending the request",
- SOUP_TYPE_HTTP_VERSION,
- SOUP_HTTP_1_1,
- G_PARAM_READWRITE));
- /**
- * SoupRequestHTTP:request-headers:
- *
- * The request's HTTP request headers. Note that in C you can
- * simply read the <literal>request_headers</literal> field of
- * the #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_REQUEST_HEADERS,
- g_param_spec_boxed ("request-headers",
- "Request Headers",
- "The HTTP request headers",
- SOUP_TYPE_MESSAGE_HEADERS,
- G_PARAM_READABLE));
-
- /**
- * SoupRequestHTTP:status-code:
- *
- * The request's HTTP response status code. Note that in C you
- * can simply read the <literal>status_code</literal> field of
- * the #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_STATUS_CODE,
- g_param_spec_uint ("status-code",
- "Status code",
- "The HTTP response status code",
- 0, 599, 0,
- G_PARAM_READABLE));
- /**
- * SoupRequestHTTP:reason-phrase:
- *
- * The request's HTTP response reason phrase. Note that in C
- * you can simply read the <literal>reason_phrase</literal>
- * field of the #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_REASON_PHRASE,
- g_param_spec_string ("reason-phrase",
- "Reason phrase",
- "The HTTP response reason phrase",
- NULL,
- G_PARAM_READABLE));
- /**
- * SoupRequestHTTP:response-version:
- *
- * The #SoupHTTPVersion that the server replied with. Note
- * that in C you can simply read the
- * <literal>response_version</literal> field of the
- * #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_RESPONSE_VERSION,
- g_param_spec_enum ("response-version",
- "Response HTTP Version",
- "The SoupHTTPVersion that the server replied with",
- SOUP_TYPE_HTTP_VERSION,
- SOUP_HTTP_1_1,
- G_PARAM_READABLE));
- /**
- * SoupRequestHTTP:response-headers:
- *
- * The request's HTTP response headers. Note that in C you can
- * simply read the <literal>response_headers</literal> field
- * of the #SoupRequestHTTP.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_RESPONSE_HEADERS,
- g_param_spec_boxed ("response-headers",
- "Response Headers",
- "The HTTP response headers",
- SOUP_TYPE_MESSAGE_HEADERS,
- G_PARAM_READABLE));
-
- /**
- * SoupRequestHTTP:flags:
- *
- * The request's #SoupMessageFlags.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_FLAGS,
- g_param_spec_flags ("flags",
- "Flags",
- "Various request options",
- SOUP_TYPE_MESSAGE_FLAGS,
- 0,
- G_PARAM_READWRITE));
- /**
- * SoupRequestHTTP:first-party:
- *
- * The #SoupURI loaded in the application when the request was
- * queued.
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_FIRST_PARTY,
- g_param_spec_boxed ("first-party",
- "First party",
- "The URI loaded in the application when the request was queued.",
- SOUP_TYPE_URI,
- G_PARAM_READWRITE));
- /**
- * SoupRequestHTTP:tls-certificate:
- *
- * The #GTlsCertificate associated with the request
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_TLS_CERTIFICATE,
- g_param_spec_object ("tls-certificate",
- "TLS Certificate",
- "The TLS certificate associated with the request",
- G_TYPE_TLS_CERTIFICATE,
- G_PARAM_READABLE));
- /**
- * SoupRequestHTTP:tls-errors:
- *
- * The verification errors on #SoupRequestHTTP:tls-certificate
- *
- * Since: 2.42
- */
- g_object_class_install_property (
- object_class, PROP_TLS_ERRORS,
- g_param_spec_flags ("tls-errors",
- "TLS Errors",
- "The verification errors on the request's TLS certificate",
- G_TYPE_TLS_CERTIFICATE_FLAGS, 0,
- G_PARAM_READABLE));
}
/**
@@ -596,7 +225,7 @@ soup_request_http_class_init (SoupRequestHTTPClass *request_http_class)
*
* Returns: (transfer full): a new reference to the #SoupMessage
*
- * Since: 2.42
+ * Since: 2.40
*/
SoupMessage *
soup_request_http_get_message (SoupRequestHTTP *http)
@@ -605,136 +234,3 @@ soup_request_http_get_message (SoupRequestHTTP *http)
return g_object_ref (http->priv->msg);
}
-
-/**
- * soup_request_http_set_method:
- * @http: a #SoupRequestHTTP
- * @method: the HTTP method
- *
- * Sets @http to use @method as its request method.
- *
- * Since: 2.42
- */
-void
-soup_request_http_set_method (SoupRequestHTTP *http,
- const char *method)
-{
- g_object_set (G_OBJECT (http->priv->msg),
- "method", method,
- NULL);
-}
-
-/**
- * soup_request_http_set_request_version:
- * @http: a #SoupRequestHTTP
- * @version: the version of HTTP to use
- *
- * Sets @http to use the version of HTTP specified by @version in its
- * request.
- *
- * Since: 2.42
- */
-void
-soup_request_http_set_request_version (SoupRequestHTTP *http,
- SoupHTTPVersion version)
-{
- g_return_if_fail (!http->priv->sent);
-
- g_object_set (G_OBJECT (http->priv->msg),
- "http-version", version,
- NULL);
-}
-
-/**
- * soup_request_http_get_first_party:
- * @http: a #SoupRequestHTTP
- *
- * Gets @http's first-party #SoupURI; see the documentation
- * for #SoupCookieJarAcceptPolicy for more details.
- *
- * Returns: (transfer none): @http's first-party URI
- *
- * Since: 2.42
- */
-SoupURI *
-soup_request_http_get_first_party (SoupRequestHTTP *http)
-{
- return soup_message_get_first_party (http->priv->msg);
-}
-
-/**
- * soup_request_http_set_first_party:
- * @http: a #SoupRequestHTTP
- * @first_party: the #SoupURI for the request's first party
- *
- * Sets @first_party as the main document #SoupURI for @http. For
- * details of when and how this is used refer to the documentation for
- * #SoupCookieJarAcceptPolicy.
- *
- * Since: 2.42
- */
-void
-soup_request_http_set_first_party (SoupRequestHTTP *http,
- SoupURI *first_party)
-{
- soup_message_set_first_party (http->priv->msg,
- first_party);
-}
-
-/**
- * soup_request_http_get_flags:
- * @http: a #SoupRequestHTTP
- *
- * Gets @http's message flags.
- *
- * Returns: @http's message flags
- *
- * Since: 2.42
- */
-SoupMessageFlags
-soup_request_http_get_flags (SoupRequestHTTP *http)
-{
- return soup_message_get_flags (http->priv->msg);
-}
-
-/**
- * soup_request_http_set_flags:
- * @http: a #SoupRequestHTTP
- * @flags: a set of #SoupMessageFlags values
- *
- * Sets the specified flags on @msg. Note that some #SoupMessageFlags
- * (such as %SOUP_MESSAGE_CAN_REBUILD and
- * %SOUP_MESSAGE_OVERWRITE_CHUNKS) have no effect in the #SoupRequest
- * API.
- *
- * Since: 2.42
- */
-void
-soup_request_http_set_flags (SoupRequestHTTP *http,
- SoupMessageFlags flags)
-{
- soup_message_set_flags (http->priv->msg, flags);
-}
-
-/**
- * soup_request_http_get_https_status:
- * @http: a #SoupRequestHTTP
- * @certificate: (out) (transfer none): @http's TLS certificate
- * @errors: (out): the verification status of @certificate
- *
- * If @http is using https, this retrieves the #GTlsCertificate
- * associated with its connection, and the #GTlsCertificateFlags showing
- * what problems, if any, have been found with that certificate.
- *
- * Return value: %TRUE if @http uses https, %FALSE if not
- *
- * Since: 2.42
- */
-gboolean
-soup_request_http_get_https_status (SoupRequestHTTP *http,
- GTlsCertificate **certificate,
- GTlsCertificateFlags *errors)
-{
- return soup_message_get_https_status (http->priv->msg,
- certificate, errors);
-}
diff --git a/libsoup/soup-request-http.h b/libsoup/soup-request-http.h
index 5335b10b..271a8052 100644
--- a/libsoup/soup-request-http.h
+++ b/libsoup/soup-request-http.h
@@ -23,8 +23,6 @@
#define SOUP_REQUEST_HTTP_H 1
#include "soup-request.h"
-#include "soup-message.h"
-#include "soup-message-headers.h"
G_BEGIN_DECLS
@@ -40,20 +38,7 @@ typedef struct _SoupRequestHTTPPrivate SoupRequestHTTPPrivate;
struct _SoupRequestHTTP {
SoupRequest parent;
- /*< public >*/
- const char *method;
- SoupURI *request_uri;
- SoupHTTPVersion request_version;
- SoupMessageHeaders *request_headers;
-
- guint status_code;
- char *reason_phrase;
- SoupHTTPVersion response_version;
- SoupMessageHeaders *response_headers;
-
- /*< private >*/
SoupRequestHTTPPrivate *priv;
-
};
typedef struct {
@@ -64,31 +49,7 @@ SOUP_AVAILABLE_IN_2_34
GType soup_request_http_get_type (void);
SOUP_AVAILABLE_IN_2_34
-SoupMessage *soup_request_http_get_message (SoupRequestHTTP *http);
-
-SOUP_AVAILABLE_IN_2_42
-void soup_request_http_set_method (SoupRequestHTTP *http,
- const char *method);
-SOUP_AVAILABLE_IN_2_42
-void soup_request_http_set_request_version (SoupRequestHTTP *http,
- SoupHTTPVersion version);
-
-SOUP_AVAILABLE_IN_2_42
-SoupURI *soup_request_http_get_first_party (SoupRequestHTTP *http);
-SOUP_AVAILABLE_IN_2_42
-void soup_request_http_set_first_party (SoupRequestHTTP *http,
- SoupURI *first_party);
-
-SOUP_AVAILABLE_IN_2_42
-SoupMessageFlags soup_request_http_get_flags (SoupRequestHTTP *http);
-SOUP_AVAILABLE_IN_2_42
-void soup_request_http_set_flags (SoupRequestHTTP *http,
- SoupMessageFlags flags);
-
-SOUP_AVAILABLE_IN_2_42
-gboolean soup_request_http_get_https_status (SoupRequestHTTP *http,
- GTlsCertificate **certificate,
- GTlsCertificateFlags *errors);
+SoupMessage *soup_request_http_get_message (SoupRequestHTTP *http);
G_END_DECLS
diff --git a/libsoup/soup-request.c b/libsoup/soup-request.c
index 02d0ca47..0dfe3eff 100644
--- a/libsoup/soup-request.c
+++ b/libsoup/soup-request.c
@@ -30,7 +30,6 @@
#include "soup-request.h"
#include "soup.h"
#include "soup-requester.h"
-#include "soup-request-http.h"
/**
* SECTION:soup-request
@@ -404,32 +403,3 @@ soup_request_get_content_type (SoupRequest *request)
{
return SOUP_REQUEST_GET_CLASS (request)->get_content_type (request);
}
-
-/**
- * soup_request_disable_feature:
- * @request: a #SoupRequest
- * @feature_type: the #GType of a #SoupSessionFeature
- *
- * This disables the actions of #SoupSessionFeature<!-- -->s with the
- * given @feature_type (or a subclass of that type) on @request, so
- * that @request is processed as though the feature(s) hadn't been
- * added to the session. Eg, passing #SOUP_TYPE_PROXY_URI_RESOLVER for
- * @feature_type will disable proxy handling and cause @request to be
- * sent directly to the indicated origin server, regardless of system
- * proxy configuration.
- *
- * Since: 2.42
- */
-void
-soup_request_disable_feature (SoupRequest *request,
- GType feature_type)
-{
- SoupMessage *msg;
-
- /* For now, features only affect SoupMessages, so... */
- if (SOUP_IS_REQUEST_HTTP (request)) {
- msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
- soup_message_disable_feature (msg, feature_type);
- g_object_unref (msg);
- }
-}
diff --git a/libsoup/soup-request.h b/libsoup/soup-request.h
index e44a7f24..84ad6d6b 100644
--- a/libsoup/soup-request.h
+++ b/libsoup/soup-request.h
@@ -98,10 +98,6 @@ goffset soup_request_get_content_length (SoupRequest *request);
SOUP_AVAILABLE_IN_2_34
const char *soup_request_get_content_type (SoupRequest *request);
-SOUP_AVAILABLE_IN_2_42
-void soup_request_disable_feature (SoupRequest *request,
- GType feature_type);
-
G_END_DECLS
#endif /* SOUP_REQUEST_H */
diff --git a/tests/cache-test.c b/tests/cache-test.c
index 8f8d2b04..ac19bfe5 100644
--- a/tests/cache-test.c
+++ b/tests/cache-test.c
@@ -122,6 +122,7 @@ do_request (SoupSession *session,
...)
{
SoupRequestHTTP *req;
+ SoupMessage *msg;
GInputStream *stream;
SoupURI *uri;
va_list ap;
@@ -135,13 +136,15 @@ do_request (SoupSession *session,
uri = soup_uri_new_with_base (base_uri, path);
req = soup_session_request_http_uri (session, method, uri, NULL);
soup_uri_free (uri);
+ msg = soup_request_http_get_message (req);
va_start (ap, path);
while ((header = va_arg (ap, const char *))) {
value = va_arg (ap, const char *);
- soup_message_headers_append (req->request_headers,
+ soup_message_headers_append (msg->request_headers,
header, value);
}
+ g_object_unref (msg);
stream = soup_test_request_send (SOUP_REQUEST (req), NULL, &error);
if (!stream) {
diff --git a/tests/coding-test.c b/tests/coding-test.c
index 7723c19d..5d4f0e32 100644
--- a/tests/coding-test.c
+++ b/tests/coding-test.c
@@ -397,6 +397,7 @@ do_coding_req_test (void)
{
SoupSession *session;
SoupRequestHTTP *reqh;
+ SoupMessage *msg;
SoupURI *uri;
GByteArray *plain, *cmp;
@@ -425,8 +426,10 @@ do_coding_req_test (void)
/* Plain text data, claim gzip w/ junk */
debug_printf (1, " GET /mbox, Accept-Encoding: gzip, plus trailing junk\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "trailing-junk");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "gzip", "text/plain", EXPECT_DECODED);
check_req_bodies (plain, cmp, "plain", "compressed w/ junk");
g_byte_array_free (cmp, TRUE);
@@ -435,8 +438,10 @@ do_coding_req_test (void)
/* Plain text data, claim gzip with server error */
debug_printf (1, " GET /mbox, Accept-Encoding: gzip, with server error\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "force-encode");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "gzip", "text/plain", EXPECT_NOT_DECODED);
/* Failed content-decoding should have left the body untouched
@@ -450,8 +455,10 @@ do_coding_req_test (void)
/* Plain text data, claim deflate */
debug_printf (1, " GET /mbox, Accept-Encoding: deflate\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "prefer-deflate-zlib");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "deflate", "text/plain", EXPECT_DECODED);
check_req_bodies (plain, cmp, "plain", "compressed");
g_byte_array_free (cmp, TRUE);
@@ -460,8 +467,10 @@ do_coding_req_test (void)
/* Plain text data, claim deflate w/ junk */
debug_printf (1, " GET /mbox, Accept-Encoding: deflate, plus trailing junk\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "prefer-deflate-zlib, trailing-junk");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "deflate", "text/plain", EXPECT_DECODED);
check_req_bodies (plain, cmp, "plain", "compressed w/ junk");
g_byte_array_free (cmp, TRUE);
@@ -470,8 +479,10 @@ do_coding_req_test (void)
/* Plain text data, claim deflate with server error */
debug_printf (1, " GET /mbox, Accept-Encoding: deflate, with server error\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "force-encode, prefer-deflate-zlib");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "deflate", "text/plain", EXPECT_NOT_DECODED);
check_req_bodies (plain, cmp, "plain", "mis-encoded");
g_byte_array_free (cmp, TRUE);
@@ -480,8 +491,10 @@ do_coding_req_test (void)
/* Plain text data, claim deflate (no zlib headers)*/
debug_printf (1, " GET /mbox, Accept-Encoding: deflate (raw data)\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "prefer-deflate-raw");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "deflate", "text/plain", EXPECT_DECODED);
check_req_bodies (plain, cmp, "plain", "compressed");
g_byte_array_free (cmp, TRUE);
@@ -490,8 +503,10 @@ do_coding_req_test (void)
/* Plain text data, claim deflate with server error */
debug_printf (1, " GET /mbox, Accept-Encoding: deflate (raw data), with server error\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "force-encode, prefer-deflate-raw");
+ g_object_unref (msg);
cmp = do_single_coding_req_test (reqh, "deflate", "text/plain", EXPECT_NOT_DECODED);
check_req_bodies (plain, cmp, "plain", "mis-encoded");
g_byte_array_free (cmp, TRUE);
@@ -530,8 +545,10 @@ do_coding_empty_test (void)
debug_printf (1, " SoupRequest\n");
reqh = soup_session_request_http_uri (session, "GET", uri, NULL);
- soup_message_headers_append (reqh->request_headers,
+ msg = soup_request_http_get_message (reqh);
+ soup_message_headers_append (msg->request_headers,
"X-Test-Options", "empty");
+ g_object_unref (msg);
body = do_single_coding_req_test (reqh, "gzip", "text/plain", EXPECT_NOT_DECODED);
g_byte_array_free (body, TRUE);
g_object_unref (reqh);
diff --git a/tests/connection-test.c b/tests/connection-test.c
index 938c7deb..6b57f24d 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -300,7 +300,7 @@ static void
do_timeout_req_test_for_session (SoupSession *session)
{
SoupRequest *req;
- SoupRequestHTTP *http;
+ SoupMessage *msg;
GInputStream *stream;
SoupSocket *sockets[4] = { NULL, NULL, NULL, NULL };
SoupURI *timeout_uri;
@@ -360,10 +360,10 @@ do_timeout_req_test_for_session (SoupSession *session)
g_object_unref (stream);
}
- http = SOUP_REQUEST_HTTP (req);
- if (http->status_code != SOUP_STATUS_OK) {
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (req));
+ if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
- http->status_code, http->reason_phrase);
+ msg->status_code, msg->reason_phrase);
errors++;
}
if (sockets[1] != sockets[0]) {
@@ -379,6 +379,7 @@ do_timeout_req_test_for_session (SoupSession *session)
debug_printf (1, " Message was retried again??\n");
errors++;
}
+ g_object_unref (msg);
g_object_unref (req);
for (i = 0; sockets[i]; i++)
diff --git a/tests/proxy-test.c b/tests/proxy-test.c
index 3466c569..048acfa7 100644
--- a/tests/proxy-test.c
+++ b/tests/proxy-test.c
@@ -131,8 +131,8 @@ test_url_new_api (const char *url, int proxy, guint expected,
{
SoupSession *session;
SoupURI *proxy_uri;
+ SoupMessage *msg;
SoupRequest *request;
- SoupRequestHTTP *http;
GInputStream *stream;
GError *error = NULL;
@@ -162,6 +162,7 @@ test_url_new_api (const char *url, int proxy, guint expected,
}
request = soup_session_request (session, url, NULL);
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
stream = soup_test_request_send (request, NULL, &error);
if (!stream) {
@@ -182,13 +183,13 @@ test_url_new_api (const char *url, int proxy, guint expected,
g_object_unref (stream);
}
- http = SOUP_REQUEST_HTTP (request);
- debug_printf (1, " %d %s\n", http->status_code, http->reason_phrase);
- if (http->status_code != expected) {
+ debug_printf (1, " %d %s\n", msg->status_code, msg->reason_phrase);
+ if (msg->status_code != expected) {
debug_printf (1, " EXPECTED %d!\n", expected);
errors++;
}
+ g_object_unref (msg);
g_object_unref (request);
soup_test_session_abort_unref (session);
diff --git a/tests/requester-test.c b/tests/requester-test.c
index 0a61815b..a4bb5b62 100644
--- a/tests/requester-test.c
+++ b/tests/requester-test.c
@@ -145,10 +145,10 @@ test_read_ready (GObject *source, GAsyncResult *res, gpointer user_data)
static void
auth_test_sent (GObject *source, GAsyncResult *res, gpointer user_data)
{
- SoupRequestHTTP *http = SOUP_REQUEST_HTTP (source);
RequestData *data = user_data;
GInputStream *stream;
GError *error = NULL;
+ SoupMessage *msg;
const char *content_type;
stream = soup_request_send_finish (SOUP_REQUEST (source), res, &error);
@@ -160,14 +160,15 @@ auth_test_sent (GObject *source, GAsyncResult *res, gpointer user_data)
return;
}
-
- if (http->status_code != SOUP_STATUS_UNAUTHORIZED) {
- debug_printf (1, " GET failed: %d %s\n", http->status_code,
- http->reason_phrase);
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (source));
+ if (msg->status_code != SOUP_STATUS_UNAUTHORIZED) {
+ debug_printf (1, " GET failed: %d %s\n", msg->status_code,
+ msg->reason_phrase);
errors++;
g_main_loop_quit (loop);
return;
}
+ g_object_unref (msg);
content_type = soup_request_get_content_type (SOUP_REQUEST (source));
if (g_strcmp0 (content_type, "text/html") != 0) {
@@ -265,12 +266,11 @@ do_async_test (SoupSession *session, SoupURI *uri,
request = soup_requester_request_uri (requester, uri, NULL);
else
request = soup_session_request_uri (session, uri, NULL);
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
if (cancel) {
- msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
g_signal_connect (msg, "got-headers",
G_CALLBACK (cancel_message), session);
- g_object_unref (msg);
}
started_id = g_signal_connect (session, "request-started",
@@ -278,6 +278,7 @@ do_async_test (SoupSession *session, SoupURI *uri,
&socket);
soup_request_send_async (request, NULL, callback, &data);
+ g_object_unref (request);
loop = g_main_loop_new (soup_session_get_async_context (session), TRUE);
g_main_loop_run (loop);
@@ -285,16 +286,16 @@ do_async_test (SoupSession *session, SoupURI *uri,
g_signal_handler_disconnect (session, started_id);
- if (SOUP_REQUEST_HTTP (request)->status_code != expected_status) {
+ if (msg->status_code != expected_status) {
debug_printf (1, " GET failed: %d %s (expected %d)\n",
msg->status_code, msg->reason_phrase,
expected_status);
+ g_object_unref (msg);
g_object_unref (socket);
- g_object_unref (request);
errors++;
return;
}
- g_object_unref (request);
+ g_object_unref (msg);
if (!expected_response) {
if (data.body->len) {
@@ -470,11 +471,10 @@ do_sync_request (SoupSession *session, SoupRequest *request,
guint started_id;
SoupSocket *socket = NULL;
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
if (cancel) {
- msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (request));
g_signal_connect (msg, "got-headers",
G_CALLBACK (cancel_message), session);
- g_object_unref (msg);
}
started_id = g_signal_connect (session, "request-started",
@@ -494,25 +494,29 @@ do_sync_request (SoupSession *session, SoupRequest *request,
errors++;
}
g_clear_error (&error);
+ g_object_unref (msg);
g_object_unref (socket);
return;
} else if (!in) {
debug_printf (1, " soup_request_send failed: %s\n",
error->message);
+ g_object_unref (msg);
g_clear_error (&error);
g_object_unref (socket);
errors++;
return;
}
- if (SOUP_REQUEST_HTTP (request)->status_code != expected_status) {
+ if (msg->status_code != expected_status) {
debug_printf (1, " GET failed: %d %s\n", msg->status_code,
msg->reason_phrase);
+ g_object_unref (msg);
g_object_unref (in);
g_object_unref (socket);
errors++;
return;
}
+ g_object_unref (msg);
body = g_string_new (NULL);
do {
diff --git a/tests/sniffing-test.c b/tests/sniffing-test.c
index ab8099da..f28ddaf8 100644
--- a/tests/sniffing-test.c
+++ b/tests/sniffing-test.c
@@ -436,7 +436,9 @@ test_disabled (const char *path)
g_object_unref (msg);
req = soup_session_request_uri (session, uri, NULL);
- soup_request_disable_feature (req, SOUP_TYPE_CONTENT_SNIFFER);
+ msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (req));
+ soup_message_disable_feature (msg, SOUP_TYPE_CONTENT_SNIFFER);
+ g_object_unref (msg);
stream = soup_test_request_send (req, NULL, &error);
if (stream) {
soup_test_request_close_stream (req, stream, NULL, &error);