|
rpm-build |
4f3c61 |
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
rpm-build |
4f3c61 |
/*
|
|
rpm-build |
4f3c61 |
* soup-request.c: Protocol-independent streaming request interface
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Copyright (C) 2009, 2010 Red Hat, Inc.
|
|
rpm-build |
4f3c61 |
* Copyright (C) 2010, Igalia S.L.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* This library is free software; you can redistribute it and/or
|
|
rpm-build |
4f3c61 |
* modify it under the terms of the GNU Library General Public
|
|
rpm-build |
4f3c61 |
* License as published by the Free Software Foundation; either
|
|
rpm-build |
4f3c61 |
* version 2 of the License, or (at your option) any later version.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* This library is distributed in the hope that it will be useful,
|
|
rpm-build |
4f3c61 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
rpm-build |
4f3c61 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
rpm-build |
4f3c61 |
* Library General Public License for more details.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* You should have received a copy of the GNU Library General Public License
|
|
rpm-build |
4f3c61 |
* along with this library; see the file COPYING.LIB. If not, write to
|
|
rpm-build |
4f3c61 |
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
rpm-build |
4f3c61 |
* Boston, MA 02110-1301, USA.
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
#ifdef HAVE_CONFIG_H
|
|
rpm-build |
4f3c61 |
#include <config.h>
|
|
rpm-build |
4f3c61 |
#endif
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
#include <glib/gi18n-lib.h>
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
#include "soup-request.h"
|
|
rpm-build |
4f3c61 |
#include "soup.h"
|
|
rpm-build |
4f3c61 |
#include "soup-requester.h"
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SECTION:soup-request
|
|
rpm-build |
4f3c61 |
* @short_description: Protocol-independent streaming request interface
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* A #SoupRequest is created by #SoupSession, and represents a request
|
|
rpm-build |
4f3c61 |
* to retrieve a particular URI.
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SoupRequest:
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* A request to retrieve a particular URI.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
enum {
|
|
rpm-build |
4f3c61 |
PROP_0,
|
|
rpm-build |
4f3c61 |
PROP_URI,
|
|
rpm-build |
4f3c61 |
PROP_SESSION
|
|
rpm-build |
4f3c61 |
};
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
struct _SoupRequestPrivate {
|
|
rpm-build |
4f3c61 |
SoupURI *uri;
|
|
rpm-build |
4f3c61 |
SoupSession *session;
|
|
rpm-build |
4f3c61 |
};
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void soup_request_initable_interface_init (GInitableIface *initable_interface);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
G_DEFINE_TYPE_WITH_CODE (SoupRequest, soup_request, G_TYPE_OBJECT,
|
|
rpm-build |
4f3c61 |
G_ADD_PRIVATE (SoupRequest)
|
|
rpm-build |
4f3c61 |
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
|
|
rpm-build |
4f3c61 |
soup_request_initable_interface_init))
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_init (SoupRequest *request)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
request->priv = soup_request_get_instance_private (request);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_finalize (GObject *object)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
SoupRequest *request = SOUP_REQUEST (object);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
g_clear_pointer (&request->priv->uri, soup_uri_free);
|
|
rpm-build |
4f3c61 |
g_clear_object (&request->priv->session);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
G_OBJECT_CLASS (soup_request_parent_class)->finalize (object);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_set_property (GObject *object,
|
|
rpm-build |
4f3c61 |
guint prop_id,
|
|
rpm-build |
4f3c61 |
const GValue *value,
|
|
rpm-build |
4f3c61 |
GParamSpec *pspec)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
SoupRequest *request = SOUP_REQUEST (object);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
switch (prop_id) {
|
|
rpm-build |
4f3c61 |
case PROP_URI:
|
|
rpm-build |
4f3c61 |
if (request->priv->uri)
|
|
rpm-build |
4f3c61 |
soup_uri_free (request->priv->uri);
|
|
rpm-build |
4f3c61 |
request->priv->uri = g_value_dup_boxed (value);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
case PROP_SESSION:
|
|
rpm-build |
4f3c61 |
if (request->priv->session)
|
|
rpm-build |
4f3c61 |
g_object_unref (request->priv->session);
|
|
rpm-build |
4f3c61 |
request->priv->session = g_value_dup_object (value);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
default:
|
|
rpm-build |
4f3c61 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_get_property (GObject *object,
|
|
rpm-build |
4f3c61 |
guint prop_id,
|
|
rpm-build |
4f3c61 |
GValue *value,
|
|
rpm-build |
4f3c61 |
GParamSpec *pspec)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
SoupRequest *request = SOUP_REQUEST (object);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
switch (prop_id) {
|
|
rpm-build |
4f3c61 |
case PROP_URI:
|
|
rpm-build |
4f3c61 |
g_value_set_boxed (value, request->priv->uri);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
case PROP_SESSION:
|
|
rpm-build |
4f3c61 |
g_value_set_object (value, request->priv->session);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
default:
|
|
rpm-build |
4f3c61 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
rpm-build |
4f3c61 |
break;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static gboolean
|
|
rpm-build |
4f3c61 |
soup_request_initable_init (GInitable *initable,
|
|
rpm-build |
4f3c61 |
GCancellable *cancellable,
|
|
rpm-build |
4f3c61 |
GError **error)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
SoupRequest *request = SOUP_REQUEST (initable);
|
|
rpm-build |
4f3c61 |
gboolean ok;
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
if (!request->priv->uri) {
|
|
rpm-build |
4f3c61 |
g_set_error (error, SOUP_REQUEST_ERROR, SOUP_REQUEST_ERROR_BAD_URI,
|
|
rpm-build |
4f3c61 |
_("No URI provided"));
|
|
rpm-build |
4f3c61 |
return FALSE;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
ok = SOUP_REQUEST_GET_CLASS (initable)->
|
|
rpm-build |
4f3c61 |
check_uri (request, request->priv->uri, error);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
if (!ok && error && !*error) {
|
|
rpm-build |
4f3c61 |
char *uri_string = soup_uri_to_string (request->priv->uri, FALSE);
|
|
rpm-build |
4f3c61 |
g_set_error (error, SOUP_REQUEST_ERROR, SOUP_REQUEST_ERROR_BAD_URI,
|
|
rpm-build |
4f3c61 |
_("Invalid ā%sā URI: %s"),
|
|
rpm-build |
4f3c61 |
request->priv->uri->scheme,
|
|
rpm-build |
4f3c61 |
uri_string);
|
|
rpm-build |
4f3c61 |
g_free (uri_string);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
return ok;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static gboolean
|
|
rpm-build |
4f3c61 |
soup_request_default_check_uri (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
SoupURI *uri,
|
|
rpm-build |
4f3c61 |
GError **error)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return TRUE;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/* Default implementation: assume the sync implementation doesn't block */
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_default_send_async (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
GCancellable *cancellable,
|
|
rpm-build |
4f3c61 |
GAsyncReadyCallback callback,
|
|
rpm-build |
4f3c61 |
gpointer user_data)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
GTask *task;
|
|
rpm-build |
4f3c61 |
GInputStream *stream;
|
|
rpm-build |
4f3c61 |
GError *error = NULL;
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
task = g_task_new (request, cancellable, callback, user_data);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
stream = soup_request_send (request, cancellable, &error);
|
|
rpm-build |
4f3c61 |
if (stream)
|
|
rpm-build |
4f3c61 |
g_task_return_pointer (task, stream, g_object_unref);
|
|
rpm-build |
4f3c61 |
else
|
|
rpm-build |
4f3c61 |
g_task_return_error (task, error);
|
|
rpm-build |
4f3c61 |
g_object_unref (task);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static GInputStream *
|
|
rpm-build |
4f3c61 |
soup_request_default_send_finish (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
GAsyncResult *result,
|
|
rpm-build |
4f3c61 |
GError **error)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return g_task_propagate_pointer (G_TASK (result), error);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_send:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
* @cancellable: a #GCancellable or %NULL
|
|
rpm-build |
4f3c61 |
* @error: return location for a #GError, or %NULL
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Synchronously requests the URI pointed to by @request, and returns
|
|
rpm-build |
4f3c61 |
* a #GInputStream that can be used to read its contents.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Note that you cannot use this method with #SoupRequests attached to
|
|
rpm-build |
4f3c61 |
* a #SoupSessionAsync.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: (transfer full): a #GInputStream that can be used to
|
|
rpm-build |
4f3c61 |
* read from the URI pointed to by @request.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
GInputStream *
|
|
rpm-build |
4f3c61 |
soup_request_send (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
GCancellable *cancellable,
|
|
rpm-build |
4f3c61 |
GError **error)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return SOUP_REQUEST_GET_CLASS (request)->
|
|
rpm-build |
4f3c61 |
send (request, cancellable, error);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_send_async:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
* @cancellable: a #GCancellable or %NULL
|
|
rpm-build |
4f3c61 |
* @callback: a #GAsyncReadyCallback
|
|
rpm-build |
4f3c61 |
* @user_data: user data passed to @callback
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Begins an asynchronously request for the URI pointed to by
|
|
rpm-build |
4f3c61 |
* @request.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Note that you cannot use this method with #SoupRequests attached to
|
|
rpm-build |
4f3c61 |
* a #SoupSessionSync.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
void
|
|
rpm-build |
4f3c61 |
soup_request_send_async (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
GCancellable *cancellable,
|
|
rpm-build |
4f3c61 |
GAsyncReadyCallback callback,
|
|
rpm-build |
4f3c61 |
gpointer user_data)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
SOUP_REQUEST_GET_CLASS (request)->
|
|
rpm-build |
4f3c61 |
send_async (request, cancellable, callback, user_data);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_send_finish:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
* @result: the #GAsyncResult
|
|
rpm-build |
4f3c61 |
* @error: return location for a #GError, or %NULL
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Gets the result of a soup_request_send_async().
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: (transfer full): a #GInputStream that can be used to
|
|
rpm-build |
4f3c61 |
* read from the URI pointed to by @request.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
GInputStream *
|
|
rpm-build |
4f3c61 |
soup_request_send_finish (SoupRequest *request,
|
|
rpm-build |
4f3c61 |
GAsyncResult *result,
|
|
rpm-build |
4f3c61 |
GError **error)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return SOUP_REQUEST_GET_CLASS (request)->
|
|
rpm-build |
4f3c61 |
send_finish (request, result, error);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_class_init (SoupRequestClass *request_class)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
GObjectClass *object_class = G_OBJECT_CLASS (request_class);
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
request_class->check_uri = soup_request_default_check_uri;
|
|
rpm-build |
4f3c61 |
request_class->send_async = soup_request_default_send_async;
|
|
rpm-build |
4f3c61 |
request_class->send_finish = soup_request_default_send_finish;
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
object_class->finalize = soup_request_finalize;
|
|
rpm-build |
4f3c61 |
object_class->set_property = soup_request_set_property;
|
|
rpm-build |
4f3c61 |
object_class->get_property = soup_request_get_property;
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SOUP_REQUEST_URI:
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Alias for the #SoupRequest:uri property, qv.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SoupRequest:uri:
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* The request URI.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
g_object_class_install_property (
|
|
rpm-build |
4f3c61 |
object_class, PROP_URI,
|
|
rpm-build |
4f3c61 |
g_param_spec_boxed (SOUP_REQUEST_URI,
|
|
rpm-build |
4f3c61 |
"URI",
|
|
rpm-build |
4f3c61 |
"The request URI",
|
|
rpm-build |
4f3c61 |
SOUP_TYPE_URI,
|
|
rpm-build |
4f3c61 |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SOUP_REQUEST_SESSION:
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Alias for the #SoupRequest:session property, qv.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* SoupRequest:session:
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* The request's #SoupSession.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
g_object_class_install_property (
|
|
rpm-build |
4f3c61 |
object_class, PROP_SESSION,
|
|
rpm-build |
4f3c61 |
g_param_spec_object (SOUP_REQUEST_SESSION,
|
|
rpm-build |
4f3c61 |
"Session",
|
|
rpm-build |
4f3c61 |
"The request's session",
|
|
rpm-build |
4f3c61 |
SOUP_TYPE_SESSION,
|
|
rpm-build |
4f3c61 |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
static void
|
|
rpm-build |
4f3c61 |
soup_request_initable_interface_init (GInitableIface *initable_interface)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
initable_interface->init = soup_request_initable_init;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_get_uri:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Gets @request's URI
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: (transfer none): @request's URI
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
SoupURI *
|
|
rpm-build |
4f3c61 |
soup_request_get_uri (SoupRequest *request)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return request->priv->uri;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_get_session:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Gets @request's #SoupSession
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: (transfer none): @request's #SoupSession
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
SoupSession *
|
|
rpm-build |
4f3c61 |
soup_request_get_session (SoupRequest *request)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return request->priv->session;
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_get_content_length:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Gets the length of the data represented by @request. For most
|
|
rpm-build |
4f3c61 |
* request types, this will not be known until after you call
|
|
rpm-build |
4f3c61 |
* soup_request_send() or soup_request_send_finish().
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: the length of the data represented by @request,
|
|
rpm-build |
4f3c61 |
* or -1 if not known.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
goffset
|
|
rpm-build |
4f3c61 |
soup_request_get_content_length (SoupRequest *request)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return SOUP_REQUEST_GET_CLASS (request)->get_content_length (request);
|
|
rpm-build |
4f3c61 |
}
|
|
rpm-build |
4f3c61 |
|
|
rpm-build |
4f3c61 |
/**
|
|
rpm-build |
4f3c61 |
* soup_request_get_content_type:
|
|
rpm-build |
4f3c61 |
* @request: a #SoupRequest
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Gets the type of the data represented by @request. For most request
|
|
rpm-build |
4f3c61 |
* types, this will not be known until after you call
|
|
rpm-build |
4f3c61 |
* soup_request_send() or soup_request_send_finish().
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* As in the HTTP Content-Type header, this may include parameters
|
|
rpm-build |
4f3c61 |
* after the MIME type.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Return value: (nullable): the type of the data represented by
|
|
rpm-build |
4f3c61 |
* @request, or %NULL if not known.
|
|
rpm-build |
4f3c61 |
*
|
|
rpm-build |
4f3c61 |
* Since: 2.42
|
|
rpm-build |
4f3c61 |
*/
|
|
rpm-build |
4f3c61 |
const char *
|
|
rpm-build |
4f3c61 |
soup_request_get_content_type (SoupRequest *request)
|
|
rpm-build |
4f3c61 |
{
|
|
rpm-build |
4f3c61 |
return SOUP_REQUEST_GET_CLASS (request)->get_content_type (request);
|
|
rpm-build |
4f3c61 |
}
|