/pidgin/main: c9a2d2176444: tls-certificate-info: Box PurpleTlsC...

Mike Ruprecht <[email protected]> Tue, 06 Sep 2016 11:19:21 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: c9a2d21764444160391420aa73bebd0eabae6001
Author:	 Mike Ruprecht <[email protected]>
Date:	 2016-09-01 19:57 -0500
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/c9a2d2176444

Description:

tls-certificate-info: Box PurpleTlsCertificateInfo and fix GI annotations

diffstat:

 libpurple/tls-certificate-info.c |  35 +++++++++++++++++++++++++++++++++++
 libpurple/tls-certificate-info.h |  12 +++++++++++-
 2 files changed, 46 insertions(+), 1 deletions(-)

diffs (88 lines):

diff --git a/libpurple/tls-certificate-info.c b/libpurple/tls-certificate-info.c
--- a/libpurple/tls-certificate-info.c
+++ b/libpurple/tls-certificate-info.c
@@ -222,6 +222,19 @@ typedef struct {
 	gchar *value;
 } DerOIDValue;
 
+static DerOIDValue *
+der_oid_value_copy(DerOIDValue *data)
+{
+	DerOIDValue *ret;
+
+	g_return_val_if_fail(data != NULL, NULL);
+
+	ret = g_new0(DerOIDValue, 1);
+	ret->oid = g_strdup(data->oid);
+	ret->value = g_strdup(data->value);
+	return ret;
+}
+
 static void
 der_oid_value_free(DerOIDValue *data)
 {
@@ -603,6 +616,24 @@ purple_tls_certificate_get_info(GTlsCert
 	return info;
 }
 
+static PurpleTlsCertificateInfo *
+purple_tls_certificate_info_copy(PurpleTlsCertificateInfo *info)
+{
+	PurpleTlsCertificateInfo *ret;
+
+	g_return_val_if_fail(info != NULL, NULL);
+
+	ret = g_new0(PurpleTlsCertificateInfo, 1);
+	ret->issuer = g_slist_copy_deep(info->issuer,
+			(GCopyFunc)der_oid_value_copy, NULL);
+	ret->notBefore = g_date_time_ref(info->notBefore);
+	ret->notAfter = g_date_time_ref(info->notAfter);
+	ret->subject = g_slist_copy_deep(info->subject,
+			(GCopyFunc)der_oid_value_copy, NULL);
+
+	return ret;
+}
+
 void
 purple_tls_certificate_info_free(PurpleTlsCertificateInfo *info)
 {
@@ -618,6 +649,10 @@ purple_tls_certificate_info_free(PurpleT
 	g_free(info);
 }
 
+G_DEFINE_BOXED_TYPE(PurpleTlsCertificateInfo, purple_tls_certificate_info,
+		purple_tls_certificate_info_copy,
+		purple_tls_certificate_info_free);
+
 /* Looks up the relative distinguished name (RDN) from an ObjectID */
 static const gchar *
 lookup_rdn_name_by_oid(const gchar *oid)
diff --git a/libpurple/tls-certificate-info.h b/libpurple/tls-certificate-info.h
--- a/libpurple/tls-certificate-info.h
+++ b/libpurple/tls-certificate-info.h
@@ -46,6 +46,16 @@
  */
 typedef struct _PurpleTlsCertificateInfo PurpleTlsCertificateInfo;
 
+#define PURPLE_TYPE_TLS_CERTIFICATE_INFO \
+		(purple_tls_certificate_info_get_type())
+
+/**
+ * purple_tls_certificate_info_get_type:
+ *
+ * Returns: The #GType for the #PurpleTlsCertificateInfo boxed structure.
+ */
+GType purple_tls_certificate_info_get_type(void);
+
 /**
  * purple_tls_certificate_get_info:
  * @certificate: Certificate from which to parse the info
@@ -95,7 +105,7 @@ purple_tls_certificate_info_get_subject_
  *
  * Returns the SHA1 fingerprint of the cert
  *
- * Returns: The SHA1 fingerprint of the cert
+ * Returns: (transfer full): The SHA1 fingerprint of the cert
  */
 GByteArray *
 purple_tls_certificate_get_fingerprint_sha1(GTlsCertificate *certificate);

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits