summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-07-05 10:29:51 +0200
committerBastien Nocera <hadess@hadess.net>2022-07-05 10:29:51 +0200
commit891cb0a7872d17eccad5fd619c04c48fda650de4 (patch)
tree6ba8dcdf7f9019338e778d40b22c43ceea5db5a3
parent21fe57953dc738f4e16d2b56ca72b64c03cf04c4 (diff)
downloadgrilo-891cb0a7872d17eccad5fd619c04c48fda650de4.tar.gz
net: Cache user-agent property
So we don't rely on a SoupSession keeping it.
-rw-r--r--libs/net/grl-net-wc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/net/grl-net-wc.c b/libs/net/grl-net-wc.c
index 2d68f93..aa06bc8 100644
--- a/libs/net/grl-net-wc.c
+++ b/libs/net/grl-net-wc.c
@@ -76,6 +76,7 @@ struct request_res {
struct _GrlNetWcPrivate {
SoupSession *session;
+ char *user_agent;
SoupLoggerLogLevel log_level;
/* throttling in secs */
guint throttling;
@@ -334,6 +335,7 @@ grl_net_wc_finalize (GObject *object)
finalize_requester (wc);
finalize_mock_requester (wc);
+ g_clear_pointer (&wc->priv->user_agent, g_free);
g_queue_free (wc->priv->pending);
g_object_unref (wc->priv->session);
@@ -364,8 +366,10 @@ grl_net_wc_set_property (GObject *object,
grl_net_wc_set_cache_size (wc, g_value_get_uint (value));
break;
case PROP_USER_AGENT:
+ g_clear_pointer (&wc->priv->user_agent, g_free);
+ wc->priv->user_agent = g_value_dup_string (value);
g_object_set (G_OBJECT (wc->priv->session),
- "user-agent", g_value_get_string (value),
+ "user-agent", wc->priv->user_agent,
NULL);
break;
default:
@@ -397,7 +401,7 @@ grl_net_wc_get_property (GObject *object,
g_value_set_uint (value, wc->priv->cache_size);
break;
case PROP_USER_AGENT:
- g_object_get_property (G_OBJECT (wc->priv->session), "user_agent", value);
+ g_value_set_string (value, wc->priv->user_agent);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (wc, propid, pspec);