aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client/cal-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r--calendar/cal-client/cal-client.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c
index 1f76b5e210..371e6c06e0 100644
--- a/calendar/cal-client/cal-client.c
+++ b/calendar/cal-client/cal-client.c
@@ -50,6 +50,7 @@ struct _CalClientPrivate {
/* Email address associated with this calendar, or NULL */
char *cal_address;
char *alarm_email_address;
+ char *ldap_attribute;
/* Scheduling info */
char *capabilities;
@@ -314,6 +315,7 @@ cal_client_init (CalClient *client, CalClientClass *klass)
priv->uri = NULL;
priv->cal_address = NULL;
priv->alarm_email_address = NULL;
+ priv->ldap_attribute = NULL;
priv->capabilities = FALSE;
priv->factories = NULL;
priv->timezones = g_hash_table_new (g_str_hash, g_str_equal);
@@ -457,6 +459,10 @@ cal_client_finalize (GObject *object)
g_free (priv->alarm_email_address);
priv->alarm_email_address = NULL;
}
+ if (priv->ldap_attribute) {
+ g_free (priv->ldap_attribute);
+ priv->ldap_attribute = NULL;
+ }
if (priv->capabilities) {
g_free (priv->capabilities);
priv->capabilities = NULL;
@@ -1219,6 +1225,33 @@ cal_client_get_alarm_email_address (CalClient *client)
return priv->alarm_email_address;
}
+const char *
+cal_client_get_ldap_attribute (CalClient *client)
+{
+ CalClientPrivate *priv;
+
+ g_return_val_if_fail (client != NULL, NULL);
+ g_return_val_if_fail (IS_CAL_CLIENT (client), NULL);
+
+ priv = client->priv;
+ g_return_val_if_fail (priv->load_state == CAL_CLIENT_LOAD_LOADED, NULL);
+
+ if (priv->ldap_attribute == NULL) {
+ CORBA_Environment ev;
+ CORBA_char *ldap_attribute;
+
+ CORBA_exception_init (&ev);
+ ldap_attribute = GNOME_Evolution_Calendar_Cal_getLdapAttribute (priv->cal, &ev);
+ if (!BONOBO_EX (&ev)) {
+ priv->ldap_attribute = g_strdup (ldap_attribute);
+ CORBA_free (ldap_attribute);
+ }
+ CORBA_exception_free (&ev);
+ }
+
+ return priv->ldap_attribute;
+}
+
static void
load_static_capabilities (CalClient *client)
{