summaryrefslogtreecommitdiff
path: root/libsoup/soup-socket-properties.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2021-02-18 15:21:04 +0100
committerCarlos Garcia Campos <carlosgc@gnome.org>2021-02-19 09:05:28 +0000
commitf813d3d82ec4366b5349fc42eca4e1fbb2a332c5 (patch)
tree298f666136e0c22fae9395c37864eb843e5c7d5e /libsoup/soup-socket-properties.c
parentcffdb45ad8cc9ef91089a3a9cd7eb1bbdb2b020b (diff)
downloadlibsoup-f813d3d82ec4366b5349fc42eca4e1fbb2a332c5.tar.gz
session: Remove ssl-use-system-ca-file property
SoupSession:tls-database is enough. When not set the default will be used. Also ensure that we don't get the default tls database and proxy resolver unless the property getters are called.
Diffstat (limited to 'libsoup/soup-socket-properties.c')
-rw-r--r--libsoup/soup-socket-properties.c37
1 files changed, 30 insertions, 7 deletions
diff --git a/libsoup/soup-socket-properties.c b/libsoup/soup-socket-properties.c
index 5ceecd76..c41948c9 100644
--- a/libsoup/soup-socket-properties.c
+++ b/libsoup/soup-socket-properties.c
@@ -11,23 +11,21 @@
#include "soup.h"
SoupSocketProperties *
-soup_socket_properties_new (GProxyResolver *proxy_resolver,
- GInetSocketAddress *local_addr,
- GTlsDatabase *tlsdb,
+soup_socket_properties_new (GInetSocketAddress *local_addr,
GTlsInteraction *tls_interaction,
guint io_timeout,
guint idle_timeout)
{
SoupSocketProperties *props;
- props = g_slice_new (SoupSocketProperties);
+ props = g_slice_new0 (SoupSocketProperties);
g_atomic_ref_count_init (&props->ref_count);
- props->proxy_resolver = proxy_resolver ? g_object_ref (proxy_resolver) : NULL;
- props->local_addr = local_addr ? g_object_ref (local_addr) : NULL;
+ props->proxy_use_default = TRUE;
+ props->tlsdb_use_default = TRUE;
- props->tlsdb = tlsdb ? g_object_ref (tlsdb) : NULL;
+ props->local_addr = local_addr ? g_object_ref (local_addr) : NULL;
props->tls_interaction = tls_interaction ? g_object_ref (tls_interaction) : NULL;
props->io_timeout = io_timeout;
@@ -57,5 +55,30 @@ soup_socket_properties_unref (SoupSocketProperties *props)
g_slice_free (SoupSocketProperties, props);
}
+void
+soup_socket_properties_set_proxy_resolver (SoupSocketProperties *props,
+ GProxyResolver *proxy_resolver)
+{
+ props->proxy_use_default = FALSE;
+
+ if (props->proxy_resolver == proxy_resolver)
+ return;
+
+ g_clear_object (&props->proxy_resolver);
+ props->proxy_resolver = proxy_resolver ? g_object_ref (proxy_resolver) : NULL;
+}
+
+void
+soup_socket_properties_set_tls_database (SoupSocketProperties *props,
+ GTlsDatabase *tlsdb)
+{
+ props->tlsdb_use_default = FALSE;
+
+ if (props->tlsdb == tlsdb)
+ return;
+
+ g_clear_object (&props->tlsdb);
+ props->tlsdb = tlsdb ? g_object_ref (tlsdb) : NULL;
+}
G_DEFINE_BOXED_TYPE (SoupSocketProperties, soup_socket_properties, soup_socket_properties_ref, soup_socket_properties_unref)