[grilo/wip/hadess/props: 2/2] net: Make it possible to defer session creation
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo/wip/hadess/props: 2/2] net: Make it possible to defer session creation
- Date: Tue, 5 Jul 2022 09:05:34 +0000 (UTC)
commit 3d73177e05161aeb1ef1fd071098c7534429dd00
Author: Bastien Nocera <hadess hadess net>
Date: Tue Jul 5 11:00:06 2022 +0200
net: Make it possible to defer session creation
This will be used in the soup3 port.
libs/net/grl-net-wc.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/libs/net/grl-net-wc.c b/libs/net/grl-net-wc.c
index aa06bc8..fe4a914 100644
--- a/libs/net/grl-net-wc.c
+++ b/libs/net/grl-net-wc.c
@@ -85,6 +85,7 @@ struct _GrlNetWcPrivate {
/* closure queue for delayed requests */
GQueue *pending;
/* cache size in Mb */
+ gboolean use_cache;
guint cache_size;
gchar *previous_data;
};
@@ -395,7 +396,7 @@ grl_net_wc_get_property (GObject *object,
g_value_set_uint (value, wc->priv->throttling);
break;
case PROP_CACHE:
- g_value_set_boolean(value, cache_is_available (wc));
+ g_value_set_boolean(value, wc->priv->use_cache);
break;
case PROP_CACHE_SIZE:
g_value_set_uint (value, wc->priv->cache_size);
@@ -1014,7 +1015,8 @@ grl_net_wc_set_log_level (GrlNetWc *self,
g_return_if_fail (log_level <= 3);
g_return_if_fail (GRL_IS_NET_WC (self));
- if (self->priv->log_level == log_level)
+ self->priv->log_level = log_level;
+ if (!self->priv->session)
return;
soup_session_remove_feature_by_type (self->priv->session, SOUP_TYPE_LOGGER);
@@ -1040,6 +1042,10 @@ grl_net_wc_set_throttling (GrlNetWc *self,
{
g_return_if_fail (GRL_IS_NET_WC (self));
+ self->priv->throttling = throttling;
+ if (!self->priv->session)
+ return;
+
if (throttling > 0) {
/* max conns per host = 1 */
g_object_set (self->priv->session,
@@ -1049,8 +1055,6 @@ grl_net_wc_set_throttling (GrlNetWc *self,
g_object_set (self->priv->session,
SOUP_SESSION_MAX_CONNS_PER_HOST, 2, NULL);
}
-
- self->priv->throttling = throttling;
}
/**
@@ -1070,6 +1074,10 @@ grl_net_wc_set_cache (GrlNetWc *self,
{
g_return_if_fail (GRL_IS_NET_WC (self));
+ self->priv->use_cache = use_cache;
+ if (!self->priv->session)
+ return;
+
if (use_cache && !cache_is_available (self))
cache_up (self);
else if (!use_cache && cache_is_available (self))
@@ -1092,10 +1100,9 @@ grl_net_wc_set_cache_size (GrlNetWc *self,
{
g_return_if_fail (GRL_IS_NET_WC (self));
- if (self->priv->cache_size == size)
- return;
-
self->priv->cache_size = size;
+ if (!self->priv->session)
+ return;
SoupSessionFeature *cache = soup_session_get_feature (self->priv->session, SOUP_TYPE_CACHE);
if (!cache)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]