aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog10
-rw-r--r--camel/providers/groupwise/camel-groupwise-provider.c13
-rw-r--r--camel/providers/groupwise/camel-gw-listener.c150
-rw-r--r--plugins/groupwise-account-setup/camel-gw-listener.c150
4 files changed, 145 insertions, 178 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index ed10e180b2..2fc2b47c23 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,13 @@
+2004-03-25 Sivaiah Nallagatla <snallagatla@novell.com>
+
+ * providers/groupwise/camel-groupwise-provider.c : removed
+ ldap seetings and added a settng for SOAP port
+ * providers/groupwise/camel-gw-listner.h (add_calendar_tasks_sources)
+ (remove_calendar_tasks_sources), (modify_calendar_tasks_sources) : read port number
+ from url instead of hardcoding
+ Also removed code for adding e-sources for ldap address book and
+ adding now e-sources for groupwise address book
+
2004-03-24 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap4/camel-imap-engine.c (camel_imap_engine_literal):
diff --git a/camel/providers/groupwise/camel-groupwise-provider.c b/camel/providers/groupwise/camel-groupwise-provider.c
index 50e3346710..cd85359206 100644
--- a/camel/providers/groupwise/camel-groupwise-provider.c
+++ b/camel/providers/groupwise/camel-groupwise-provider.c
@@ -62,16 +62,13 @@ CamelProviderConfEntry groupwise_conf_entries[] = {
N_("Automatically synchronize remote mail locally"), "0" },
/* extra Groupwise configuration settings */
- {CAMEL_PROVIDER_CONF_SECTION_START, "ldapserver", NULL,
- N_("Address Book") },
+ {CAMEL_PROVIDER_CONF_SECTION_START, "soapport", NULL,
+ N_("Address Book And Calendar") },
- { CAMEL_PROVIDER_CONF_ENTRY, "ldap_server", NULL,
- N_("LDAP Server Name:") },
-
- { CAMEL_PROVIDER_CONF_ENTRY, "search_base", NULL,
- N_("Search base:") },
+ { CAMEL_PROVIDER_CONF_ENTRY, "soap_port", NULL,
+ N_("Post Office Agent SOAP Port:"), "7181" },
- { CAMEL_PROVIDER_CONF_SECTION_END },
+ { CAMEL_PROVIDER_CONF_SECTION_END },
{ CAMEL_PROVIDER_CONF_END }
diff --git a/camel/providers/groupwise/camel-gw-listener.c b/camel/providers/groupwise/camel-gw-listener.c
index dbf2e03776..5ca7e7ee64 100644
--- a/camel/providers/groupwise/camel-gw-listener.c
+++ b/camel/providers/groupwise/camel-gw-listener.c
@@ -51,8 +51,6 @@ typedef struct _GwAccountInfo GwAccountInfo;
#define GROUPWISE_URI_PREFIX "groupwise://"
#define GROUPWISE_PREFIX_LENGTH 12
-#define LDAP_URI_PREFIX "ldap://"
-
#define PARENT_TYPE G_TYPE_OBJECT
static GObjectClass *parent_class = NULL;
@@ -242,10 +240,13 @@ modify_esource (const char* conf_key, GwAccountInfo *old_account_info, const cha
char *old_relative_uri;
CamelURL *url;
gboolean found_group;
+ const char *soap_port;
url = camel_url_new (old_account_info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- old_relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ old_relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
list = e_source_list_new_for_gconf (gconf_client_get_default (), conf_key);
groups = e_source_list_peek_groups (list);
@@ -291,13 +292,15 @@ add_calendar_tasks_sources (GwAccountInfo *info)
{
CamelURL *url;
char *relative_uri;
-
+ const char *soap_port;
+
url = camel_url_new (info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
add_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), url->user, relative_uri);
add_esource ("/apps/evolution/tasks/sources", info->name, _("Checklist"), url->user, relative_uri);
-
groupwise_accounts = g_list_append (groupwise_accounts, info);
camel_url_free (url);
@@ -313,12 +316,13 @@ remove_calendar_tasks_sources (GwAccountInfo *info)
{
CamelURL *url;
char *relative_uri;
-
- url = camel_url_new (info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
-
+ const char *soap_port;
+ url = camel_url_new (info->source_url, NULL);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
remove_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), relative_uri);
remove_esource ("/apps/evolution/tasks/sources", info->name, _("Checklist"), relative_uri);
@@ -331,102 +335,73 @@ remove_calendar_tasks_sources (GwAccountInfo *info)
g_free (relative_uri);
}
+
static void
-add_ldap_addressbook_source (EAccount *account)
+add_addressbook_sources (EAccount *account)
{
CamelURL *url;
- const char *ldap_server_name;
- const char *search_scope;
ESourceList *list;
ESourceGroup *group;
ESource *source;
- GSList *groups;
- gboolean found_group;
- char * relative_uri;
-
+ char * relative_uri;
+ const char *soap_port;
+
url = camel_url_new (account->source->url, NULL);
-
if (url == NULL) {
return;
}
-
- ldap_server_name = camel_url_get_param (url, "ldap_server");
- search_scope = camel_url_get_param (url, "search_base");
-
- if (ldap_server_name == NULL) {
-
- return;
- }
-
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
- groups = e_source_list_peek_groups (list);
-
- relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
- search_scope, "??", "sub");
-
- found_group = FALSE;
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
-
- group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
- source = e_source_new (account->name, relative_uri);
- e_source_set_property ( source, "limit", "100");
- e_source_set_property ( source, "ssl", "never");
- e_source_set_property (source, "auth", "none");
- e_source_group_add_source (group, source, -1);
- e_source_list_sync (list, NULL);
- found_group = TRUE;
- }
- }
-
- g_free (relative_uri);
- g_object_unref (list);
- camel_url_free (url);
+ group = e_source_group_new (account->name, "groupwise://");
+ e_source_list_add_group (list, group, -1);
+ source = e_source_new ("Frequent Contacts", relative_uri);
+ e_source_set_property (source, "auth", "ldap/simple-binddn");
+ e_source_set_property(source, "binddn", url->user);
+ e_source_group_add_source (group, source, -1);
+ e_source_list_sync (list, NULL);
+ g_object_unref (source);
+ g_object_unref (group);
+ g_object_unref (list);
+ g_free (relative_uri);
}
static void
-modify_ldap_addressbook_source ( EAccount *account)
+modify_addressbook_sources ( EAccount *account, const char *old_account_name)
{
CamelURL *url;
- const char *ldap_server_name;
- const char *search_scope;
ESourceList *list;
ESourceGroup *group;
ESource *source;
GSList *groups;
gboolean found_group;
char * relative_uri;
+ const char *soap_port;
url = camel_url_new (account->source->url, NULL);
-
if (url == NULL) {
return;
}
-
- ldap_server_name = camel_url_get_param (url, "ldap_server");
-
- if (ldap_server_name == NULL) {
- return;
- }
-
- search_scope = camel_url_get_param (url, "search_base");
-
+
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
groups = e_source_list_peek_groups (list);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
- relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
- search_scope, "??", "sub");
-
found_group = FALSE;
-
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
- source = e_source_group_peek_source_by_name (group, account->name);
- e_source_set_relative_uri (source, relative_uri);
+ if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), old_account_name) == 0) {
+ e_source_group_set_name (group, account->name);
+ source = e_source_group_peek_source_by_name (group, "Frequent Contacts");
+ if (source)
+ e_source_set_relative_uri (source, relative_uri);
e_source_list_sync (list, NULL);
found_group = TRUE;
}
@@ -437,13 +412,13 @@ modify_ldap_addressbook_source ( EAccount *account)
camel_url_free (url);
}
+
static void
-remove_ldap_addressbook_source ( EAccount *account )
+remove_addressbook_sources (EAccount *account)
{
ESourceList *list;
ESourceGroup *group;
- ESource *source;
- GSList *groups;
+ GSList *groups;
gboolean found_group;
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
@@ -454,10 +429,9 @@ remove_ldap_addressbook_source ( EAccount *account )
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
+ if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), account->name) == 0) {
- source = e_source_group_peek_source_by_name (group, account->name);
- e_source_group_remove_source (group, source);
+ e_source_list_remove_group (list, group);
e_source_list_sync (list, NULL);
found_group = TRUE;
@@ -469,6 +443,7 @@ remove_ldap_addressbook_source ( EAccount *account )
}
+
static void
account_added (EAccountList *account_listener, EAccount *account)
{
@@ -484,7 +459,7 @@ account_added (EAccountList *account_listener, EAccount *account)
info->source_url = g_strdup (account->source->url);
add_calendar_tasks_sources (info);
- add_ldap_addressbook_source(account);
+ add_addressbook_sources (account);
}
@@ -495,8 +470,9 @@ account_changed (EAccountList *account_listener, EAccount *account)
gboolean is_gw_account;
CamelURL *url;
char *relative_uri;
-
+ const char *soap_port;
GwAccountInfo *existing_account_info;
+
is_gw_account = is_groupwise_account (account);
existing_account_info = lookup_account_info (account->uid);
@@ -517,15 +493,19 @@ account_changed (EAccountList *account_listener, EAccount *account)
if (strcmp (existing_account_info->name, account->name) != 0 || strcmp (existing_account_info->source_url, account->source->url) != 0) {
url = camel_url_new (account->source->url, NULL);
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
modify_esource ("/apps/evolution/calendar/sources", existing_account_info, account->name, url->user, relative_uri);
modify_esource ("/apps/evolution/tasks/sources", existing_account_info, account->name, url->user, relative_uri);
+ modify_addressbook_sources (account, existing_account_info->name);
g_free (existing_account_info->name);
g_free (existing_account_info->source_url);
existing_account_info->name = g_strdup (account->name);
existing_account_info->source_url = g_strdup (account->source->url);
camel_url_free (url);
- modify_ldap_addressbook_source (account);
+
}
}
@@ -547,7 +527,7 @@ account_removed (EAccountList *account_listener, EAccount *account)
}
remove_calendar_tasks_sources (info);
- remove_ldap_addressbook_source (account);
+ remove_addressbook_sources (account);
}
diff --git a/plugins/groupwise-account-setup/camel-gw-listener.c b/plugins/groupwise-account-setup/camel-gw-listener.c
index dbf2e03776..5ca7e7ee64 100644
--- a/plugins/groupwise-account-setup/camel-gw-listener.c
+++ b/plugins/groupwise-account-setup/camel-gw-listener.c
@@ -51,8 +51,6 @@ typedef struct _GwAccountInfo GwAccountInfo;
#define GROUPWISE_URI_PREFIX "groupwise://"
#define GROUPWISE_PREFIX_LENGTH 12
-#define LDAP_URI_PREFIX "ldap://"
-
#define PARENT_TYPE G_TYPE_OBJECT
static GObjectClass *parent_class = NULL;
@@ -242,10 +240,13 @@ modify_esource (const char* conf_key, GwAccountInfo *old_account_info, const cha
char *old_relative_uri;
CamelURL *url;
gboolean found_group;
+ const char *soap_port;
url = camel_url_new (old_account_info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- old_relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ old_relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
list = e_source_list_new_for_gconf (gconf_client_get_default (), conf_key);
groups = e_source_list_peek_groups (list);
@@ -291,13 +292,15 @@ add_calendar_tasks_sources (GwAccountInfo *info)
{
CamelURL *url;
char *relative_uri;
-
+ const char *soap_port;
+
url = camel_url_new (info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
add_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), url->user, relative_uri);
add_esource ("/apps/evolution/tasks/sources", info->name, _("Checklist"), url->user, relative_uri);
-
groupwise_accounts = g_list_append (groupwise_accounts, info);
camel_url_free (url);
@@ -313,12 +316,13 @@ remove_calendar_tasks_sources (GwAccountInfo *info)
{
CamelURL *url;
char *relative_uri;
-
- url = camel_url_new (info->source_url, NULL);
- /* FIXME: don't hard-code the port number */
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
-
+ const char *soap_port;
+ url = camel_url_new (info->source_url, NULL);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
remove_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), relative_uri);
remove_esource ("/apps/evolution/tasks/sources", info->name, _("Checklist"), relative_uri);
@@ -331,102 +335,73 @@ remove_calendar_tasks_sources (GwAccountInfo *info)
g_free (relative_uri);
}
+
static void
-add_ldap_addressbook_source (EAccount *account)
+add_addressbook_sources (EAccount *account)
{
CamelURL *url;
- const char *ldap_server_name;
- const char *search_scope;
ESourceList *list;
ESourceGroup *group;
ESource *source;
- GSList *groups;
- gboolean found_group;
- char * relative_uri;
-
+ char * relative_uri;
+ const char *soap_port;
+
url = camel_url_new (account->source->url, NULL);
-
if (url == NULL) {
return;
}
-
- ldap_server_name = camel_url_get_param (url, "ldap_server");
- search_scope = camel_url_get_param (url, "search_base");
-
- if (ldap_server_name == NULL) {
-
- return;
- }
-
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
- groups = e_source_list_peek_groups (list);
-
- relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
- search_scope, "??", "sub");
-
- found_group = FALSE;
-
- for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
-
- group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
- source = e_source_new (account->name, relative_uri);
- e_source_set_property ( source, "limit", "100");
- e_source_set_property ( source, "ssl", "never");
- e_source_set_property (source, "auth", "none");
- e_source_group_add_source (group, source, -1);
- e_source_list_sync (list, NULL);
- found_group = TRUE;
- }
- }
-
- g_free (relative_uri);
- g_object_unref (list);
- camel_url_free (url);
+ group = e_source_group_new (account->name, "groupwise://");
+ e_source_list_add_group (list, group, -1);
+ source = e_source_new ("Frequent Contacts", relative_uri);
+ e_source_set_property (source, "auth", "ldap/simple-binddn");
+ e_source_set_property(source, "binddn", url->user);
+ e_source_group_add_source (group, source, -1);
+ e_source_list_sync (list, NULL);
+ g_object_unref (source);
+ g_object_unref (group);
+ g_object_unref (list);
+ g_free (relative_uri);
}
static void
-modify_ldap_addressbook_source ( EAccount *account)
+modify_addressbook_sources ( EAccount *account, const char *old_account_name)
{
CamelURL *url;
- const char *ldap_server_name;
- const char *search_scope;
ESourceList *list;
ESourceGroup *group;
ESource *source;
GSList *groups;
gboolean found_group;
char * relative_uri;
+ const char *soap_port;
url = camel_url_new (account->source->url, NULL);
-
if (url == NULL) {
return;
}
-
- ldap_server_name = camel_url_get_param (url, "ldap_server");
-
- if (ldap_server_name == NULL) {
- return;
- }
-
- search_scope = camel_url_get_param (url, "search_base");
-
+
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
groups = e_source_list_peek_groups (list);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
- relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
- search_scope, "??", "sub");
-
found_group = FALSE;
-
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
- source = e_source_group_peek_source_by_name (group, account->name);
- e_source_set_relative_uri (source, relative_uri);
+ if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), old_account_name) == 0) {
+ e_source_group_set_name (group, account->name);
+ source = e_source_group_peek_source_by_name (group, "Frequent Contacts");
+ if (source)
+ e_source_set_relative_uri (source, relative_uri);
e_source_list_sync (list, NULL);
found_group = TRUE;
}
@@ -437,13 +412,13 @@ modify_ldap_addressbook_source ( EAccount *account)
camel_url_free (url);
}
+
static void
-remove_ldap_addressbook_source ( EAccount *account )
+remove_addressbook_sources (EAccount *account)
{
ESourceList *list;
ESourceGroup *group;
- ESource *source;
- GSList *groups;
+ GSList *groups;
gboolean found_group;
list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
@@ -454,10 +429,9 @@ remove_ldap_addressbook_source ( EAccount *account )
for ( ; groups != NULL && !found_group; groups = g_slist_next (groups)) {
group = E_SOURCE_GROUP (groups->data);
- if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
+ if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), account->name) == 0) {
- source = e_source_group_peek_source_by_name (group, account->name);
- e_source_group_remove_source (group, source);
+ e_source_list_remove_group (list, group);
e_source_list_sync (list, NULL);
found_group = TRUE;
@@ -469,6 +443,7 @@ remove_ldap_addressbook_source ( EAccount *account )
}
+
static void
account_added (EAccountList *account_listener, EAccount *account)
{
@@ -484,7 +459,7 @@ account_added (EAccountList *account_listener, EAccount *account)
info->source_url = g_strdup (account->source->url);
add_calendar_tasks_sources (info);
- add_ldap_addressbook_source(account);
+ add_addressbook_sources (account);
}
@@ -495,8 +470,9 @@ account_changed (EAccountList *account_listener, EAccount *account)
gboolean is_gw_account;
CamelURL *url;
char *relative_uri;
-
+ const char *soap_port;
GwAccountInfo *existing_account_info;
+
is_gw_account = is_groupwise_account (account);
existing_account_info = lookup_account_info (account->uid);
@@ -517,15 +493,19 @@ account_changed (EAccountList *account_listener, EAccount *account)
if (strcmp (existing_account_info->name, account->name) != 0 || strcmp (existing_account_info->source_url, account->source->url) != 0) {
url = camel_url_new (account->source->url, NULL);
- relative_uri = g_strdup_printf ("%s:7181/soap", url->host);
+ soap_port = camel_url_get_param (url, "soap_port");
+ if (!soap_port)
+ soap_port = "7181";
+ relative_uri = g_strdup_printf ("%s:%s/soap", url->host, soap_port);
modify_esource ("/apps/evolution/calendar/sources", existing_account_info, account->name, url->user, relative_uri);
modify_esource ("/apps/evolution/tasks/sources", existing_account_info, account->name, url->user, relative_uri);
+ modify_addressbook_sources (account, existing_account_info->name);
g_free (existing_account_info->name);
g_free (existing_account_info->source_url);
existing_account_info->name = g_strdup (account->name);
existing_account_info->source_url = g_strdup (account->source->url);
camel_url_free (url);
- modify_ldap_addressbook_source (account);
+
}
}
@@ -547,7 +527,7 @@ account_removed (EAccountList *account_listener, EAccount *account)
}
remove_calendar_tasks_sources (info);
- remove_ldap_addressbook_source (account);
+ remove_addressbook_sources (account);
}