summaryrefslogtreecommitdiff
path: root/servers
diff options
context:
space:
mode:
authorSankarasivasubramanian Pasupathilingam <psankar@src.gnome.org>2008-10-31 10:27:56 +0000
committerSankarasivasubramanian Pasupathilingam <psankar@src.gnome.org>2008-10-31 10:27:56 +0000
commit848e4053e29dc91b0de1b157277c5550374ededf (patch)
tree078330934ad98a69b0bd72802a6add26f4f00134 /servers
parentf5cac8dcfae1e9d800b422d35c8063979b1fda7a (diff)
downloadevolution-data-server-848e4053e29dc91b0de1b157277c5550374ededf.tar.gz
** Fix for bnc bugs #440502, #209514, #434958, #434946,
GroupWise improvements svn path=/trunk/; revision=9715
Diffstat (limited to 'servers')
-rw-r--r--servers/groupwise/ChangeLog12
-rw-r--r--servers/groupwise/e-gw-connection.c44
-rw-r--r--servers/groupwise/e-gw-connection.h3
-rw-r--r--servers/groupwise/e-gw-item.c2
4 files changed, 59 insertions, 2 deletions
diff --git a/servers/groupwise/ChangeLog b/servers/groupwise/ChangeLog
index d0ab1572b..0f8f9d842 100644
--- a/servers/groupwise/ChangeLog
+++ b/servers/groupwise/ChangeLog
@@ -1,3 +1,15 @@
+2008-10-31 Sankar P <psankar@novell.com>
+
+ ** Fix for bnc bugs #440502, #209514, #434958, #434946,
+ #435725, #434950, #372382, #435727
+
+ * e-gw-connection.c (e_gw_connection_get_container_list),
+ (e_gw_connection_get_container_id),
+ (e_gw_connection_get_container):
+ * e-gw-connection.h:
+ * e-gw-item.c (e_gw_item_new_from_soap_parameter):
+ GroupWise improvements
+
2008-10-03 Milan Crha <mcrha@redhat.com>
** Part of fix for bug #547243
diff --git a/servers/groupwise/e-gw-connection.c b/servers/groupwise/e-gw-connection.c
index 458d94f2a..3eb340ad5 100644
--- a/servers/groupwise/e-gw-connection.c
+++ b/servers/groupwise/e-gw-connection.c
@@ -734,7 +734,6 @@ e_gw_connection_get_container_list (EGwConnection *cnc, const char *top, GList *
if (!cnc)
return E_GW_CONNECTION_STATUS_UNKNOWN;
- g_return_val_if_fail (E_IS_GW_CONNECTION (cnc), E_GW_CONNECTION_STATUS_UNKNOWN);
g_return_val_if_fail (container_list != NULL, E_GW_CONNECTION_STATUS_UNKNOWN);
msg = e_gw_message_new_with_header (cnc->priv->uri, cnc->priv->session_id, "getFolderListRequest");
@@ -824,6 +823,49 @@ e_gw_connection_get_container_id (EGwConnection *cnc, const char *name)
return container_id;
}
+EGwContainer *
+e_gw_connection_get_container (EGwConnection *cnc, const char * uid)
+{
+ SoupSoapMessage *msg;
+ SoupSoapResponse *response;
+ EGwConnectionStatus status;
+
+ g_return_val_if_fail (E_IS_GW_CONNECTION (cnc), NULL);
+ g_return_val_if_fail (uid!= NULL, NULL);
+
+ msg = e_gw_message_new_with_header (cnc->priv->uri, cnc->priv->session_id, "getFolderRequest");
+ if (!msg) {
+ g_warning (G_STRLOC ": Could not build SOAP message");
+ return NULL;
+ }
+
+ e_gw_message_write_string_parameter (msg, "uid", NULL, uid);
+ e_gw_message_write_string_parameter (msg, "view", NULL, "count");
+ e_gw_message_write_footer (msg);
+
+ /* send message to server */
+ response = e_gw_connection_send_message (cnc, msg);
+ if (!response) {
+ g_object_unref (msg);
+ return NULL;
+ }
+
+ status = e_gw_connection_parse_response_status (response);
+ g_object_unref (msg);
+
+ if (status == E_GW_CONNECTION_STATUS_OK) {
+ EGwContainer *container;
+ SoupSoapParameter *subparam;
+
+ subparam = soup_soap_response_get_first_parameter_by_name (response, "folder");
+ container = e_gw_container_new_from_soap_parameter (subparam);
+
+ return container;
+ }
+
+ return NULL;
+}
+
EGwConnectionStatus
e_gw_connection_get_items_delta_info (EGwConnection *cnc, const char *container, gdouble *first_sequence,
gdouble *last_sequence, gdouble *last_po_rebuild_time )
diff --git a/servers/groupwise/e-gw-connection.h b/servers/groupwise/e-gw-connection.h
index 17c7c3e9e..6a92039b1 100644
--- a/servers/groupwise/e-gw-connection.h
+++ b/servers/groupwise/e-gw-connection.h
@@ -99,9 +99,12 @@ EGwConnectionStatus e_gw_connection_parse_response_status (SoupSoapResponse *res
const char *e_gw_connection_get_error_message (EGwConnectionStatus status);
EGwConnectionStatus e_gw_connection_logout (EGwConnection *cnc);
+
EGwConnectionStatus e_gw_connection_get_container_list (EGwConnection *cnc, const char *top, GList **container_list);
void e_gw_connection_free_container_list (GList *container_list);
char *e_gw_connection_get_container_id (EGwConnection *cnc, const char *name);
+EGwContainer * e_gw_connection_get_container (EGwConnection *cnc, const char * uid);
+
EGwConnectionStatus e_gw_connection_get_items (EGwConnection *cnc, const char *container,
const char *view, EGwFilter *filter, GList **list);
EGwConnectionStatus e_gw_connection_get_deltas ( EGwConnection *cnc, GSList **adds, GSList **deletes, GSList **updates);
diff --git a/servers/groupwise/e-gw-item.c b/servers/groupwise/e-gw-item.c
index 4f10e6f7a..f8263ba92 100644
--- a/servers/groupwise/e-gw-item.c
+++ b/servers/groupwise/e-gw-item.c
@@ -2058,7 +2058,7 @@ e_gw_item_new_from_soap_parameter (const char *email, const char *container, Sou
} else if (!g_ascii_strcasecmp (name, "alarm")) {
char *enabled;
enabled = soup_soap_parameter_get_property (child, "enabled");
- if (!g_ascii_strcasecmp (enabled, "1") ) {
+ if (enabled && !g_ascii_strcasecmp (enabled, "1") ) {
value = soup_soap_parameter_get_string_value (child);
/* convert it into integer */
item->priv->trigger = atoi (value);