Coverage Report

Created: 2026-02-14 06:56

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libsoup/libsoup/soup-socket-properties.c
Line
Count
Source
1
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
2
/*
3
 * Copyright 2013 Red Hat, Inc.
4
 */
5
6
#ifdef HAVE_CONFIG_H
7
#include <config.h>
8
#endif
9
10
#include "soup-socket-properties.h"
11
#include "soup.h"
12
13
SoupSocketProperties *
14
soup_socket_properties_new (GInetSocketAddress *local_addr,
15
          GTlsInteraction    *tls_interaction,
16
          guint               io_timeout,
17
          guint               idle_timeout)
18
0
{
19
0
  SoupSocketProperties *props;
20
21
0
  props = g_atomic_rc_box_new0 (SoupSocketProperties);
22
23
0
  props->proxy_use_default = TRUE;
24
0
  props->tlsdb_use_default = TRUE;
25
26
0
  props->local_addr = local_addr ? g_object_ref (local_addr) : NULL;
27
0
  props->tls_interaction = tls_interaction ? g_object_ref (tls_interaction) : NULL;
28
29
0
  props->io_timeout = io_timeout;
30
0
  props->idle_timeout = idle_timeout;
31
32
0
  return props;
33
0
}
34
35
SoupSocketProperties *
36
soup_socket_properties_ref (SoupSocketProperties *props)
37
0
{
38
0
        g_atomic_rc_box_acquire (props);
39
40
0
  return props;
41
0
}
42
43
static void
44
soup_socket_properties_destroy (SoupSocketProperties *props)
45
0
{
46
0
        g_clear_object (&props->proxy_resolver);
47
0
        g_clear_object (&props->local_addr);
48
0
  g_clear_object (&props->tlsdb);
49
0
  g_clear_object (&props->tls_interaction);
50
0
}
51
52
void
53
soup_socket_properties_unref (SoupSocketProperties *props)
54
0
{
55
0
        g_atomic_rc_box_release_full (props, (GDestroyNotify)soup_socket_properties_destroy);
56
0
}
57
58
void
59
soup_socket_properties_set_proxy_resolver (SoupSocketProperties *props,
60
             GProxyResolver       *proxy_resolver)
61
0
{
62
0
  props->proxy_use_default = FALSE;
63
64
0
  if (props->proxy_resolver == proxy_resolver)
65
0
    return;
66
67
0
  g_clear_object (&props->proxy_resolver);
68
0
  props->proxy_resolver = proxy_resolver ? g_object_ref (proxy_resolver) : NULL;
69
0
}
70
71
void
72
soup_socket_properties_set_tls_database (SoupSocketProperties *props,
73
           GTlsDatabase         *tlsdb)
74
0
{
75
0
  props->tlsdb_use_default = FALSE;
76
77
0
  if (props->tlsdb == tlsdb)
78
0
    return;
79
80
0
  g_clear_object (&props->tlsdb);
81
0
  props->tlsdb = tlsdb ? g_object_ref (tlsdb) : NULL;
82
0
}
83
84
G_DEFINE_BOXED_TYPE (SoupSocketProperties, soup_socket_properties, soup_socket_properties_ref, soup_socket_properties_unref)