diff libpurple/certificate.c @ 19012:b1090cbfc286

- Add expiration/activation functions for Certificates
author William Ehlhardt <williamehlhardt@gmail.com>
date Thu, 12 Jul 2007 01:10:04 +0000
parents 0d4b84820390
children bc4d0ebeabd3
line wrap: on
line diff
--- a/libpurple/certificate.c	Thu Jul 12 00:55:35 2007 +0000
+++ b/libpurple/certificate.c	Thu Jul 12 01:10:04 2007 +0000
@@ -203,6 +203,34 @@
 	return (scheme->check_subject_name)(crt, name);
 }
 
+gboolean
+purple_certificate_get_times(PurpleCertificate *crt, time_t *activation, time_t *expiration)
+{
+	PurpleCertificateScheme *scheme;
+
+	g_return_val_if_fail(crt, FALSE);
+
+	scheme = crt->scheme;
+	
+	g_return_val_if_fail(scheme, FALSE);
+
+	/* If both provided references are NULL, what are you doing calling
+	   this? */
+	g_return_val_if_fail( (activation != NULL) || (expiration != NULL), FALSE);
+
+	/* Fulfill the caller's requests, if possible */
+	if (activation) {
+		g_return_val_if_fail(scheme->get_activation, FALSE);
+		*activation = scheme->get_activation(crt);
+	}
+	if (expiration) {
+		g_return_val_if_fail(scheme->get_expiration, FALSE);
+		*expiration = scheme->get_expiration(crt);
+	}
+
+	return TRUE;
+}
+
 
 gchar *
 purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id)