summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-05-03 10:17:18 +0200
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-05-09 12:14:11 +0200
commita1dfd77a72be0b0ad59121ebb5c27c8b6faa280c (patch)
tree71eb9106dea04b0f91398c87ba9e20e622b3fd5b
parentc1df57b9955393f7c4ef8b3d145b6fe70d2a1a0f (diff)
invalid the certificate if its state is invalid
-rw-r--r--telepathy-glib/tls-certificate.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/telepathy-glib/tls-certificate.c b/telepathy-glib/tls-certificate.c
index b59f0f1c2..cd23e1928 100644
--- a/telepathy-glib/tls-certificate.c
+++ b/telepathy-glib/tls-certificate.c
@@ -237,9 +237,14 @@ tls_certificate_got_all_cb (TpProxy *proxy,
break;
default:
- /* what does it mean? we just don't know */
- self->priv->state = state;
- g_object_notify ((GObject *) self, "state");
+ {
+ GError e = { TP_DBUS_ERRORS, TP_DBUS_ERROR_INCONSISTENT,
+ "Invalid State" };
+
+ DEBUG ("Invalid state '%u' on %s", state,
+ tp_proxy_get_object_path (self));
+ tp_proxy_invalidate (proxy, &e);
+ }
}
cert_data = tp_asv_get_boxed (properties, "CertificateChainData",
@@ -486,7 +491,7 @@ tp_tls_certificate_class_init (TpTLSCertificateClass *klass)
*/
pspec = g_param_spec_uint ("state", "State",
"The state of this certificate.",
- 0, G_MAXUINT32, TP_TLS_CERTIFICATE_STATE_PENDING,
+ 0, TP_NUM_TLS_CERTIFICATE_STATES - 1, TP_TLS_CERTIFICATE_STATE_PENDING,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (oclass, PROP_STATE, pspec);