/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