summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Ruprecht <cmaiku@gmail.com>2018-12-14 19:30:50 -0600
committerMike Ruprecht <cmaiku@gmail.com>2018-12-14 19:30:50 -0600
commitd07624f8d7d57a5a925e11d7fdff0a5d8b81a0bd (patch)
treece5288fac637c32a9e490aa472791c9c012b9be6
parentd4c5ad320c5bc240cc1355b286561c8d817243c6 (diff)
downloadpidgin-d07624f8d7d57a5a925e11d7fdff0a5d8b81a0bd.tar.gz
libpurple: Make PurpleProxyInfo a boxed type
This patch makes PurpleProxyInfo a boxed type in order to play nicely with GObject introspection, fixing some warnings in the process.
-rw-r--r--libpurple/proxy.c20
-rw-r--r--libpurple/proxy.h7
2 files changed, 27 insertions, 0 deletions
diff --git a/libpurple/proxy.c b/libpurple/proxy.c
index 396e0d18b1..5281506eea 100644
--- a/libpurple/proxy.c
+++ b/libpurple/proxy.c
@@ -78,6 +78,23 @@ purple_proxy_info_new(void)
return g_new0(PurpleProxyInfo, 1);
}
+static PurpleProxyInfo *
+purple_proxy_info_copy(PurpleProxyInfo *info)
+{
+ PurpleProxyInfo *copy;
+
+ g_return_val_if_fail(info != NULL, NULL);
+
+ copy = purple_proxy_info_new();
+ copy->type = info->type;
+ copy->host = g_strdup(info->host);
+ copy->port = info->port;
+ copy->username = g_strdup(info->username);
+ copy->password = g_strdup(info->password);
+
+ return info;
+}
+
void
purple_proxy_info_destroy(PurpleProxyInfo *info)
{
@@ -173,6 +190,9 @@ purple_proxy_info_get_password(const PurpleProxyInfo *info)
return info->password;
}
+G_DEFINE_BOXED_TYPE(PurpleProxyInfo, purple_proxy_info,
+ purple_proxy_info_copy, purple_proxy_info_destroy);
+
/**************************************************************************
* Global Proxy API
**************************************************************************/
diff --git a/libpurple/proxy.h b/libpurple/proxy.h
index 856b5ae873..b7048f7142 100644
--- a/libpurple/proxy.h
+++ b/libpurple/proxy.h
@@ -77,6 +77,13 @@ G_BEGIN_DECLS
/**************************************************************************/
/**
+ * purple_proxy_info_get_type:
+ *
+ * Returns: The #GType for proxy information.
+ */
+GType purple_proxy_info_get_type(void);
+
+/**
* purple_proxy_info_new:
*
* Creates a proxy information structure.