[evolution-ews/wip/mcrha/soup3] Rename ESoap/EwsMessage to ESoap/EwsRequest and move some functionality to ESoapResponse
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews/wip/mcrha/soup3] Rename ESoap/EwsMessage to ESoap/EwsRequest and move some functionality to ESoapResponse
- Date: Thu, 9 Dec 2021 16:03:28 +0000 (UTC)
commit 9f13d8de11a2f8e9785898972e6046bfe383e6c9
Author: Milan Crha <mcrha redhat com>
Date: Thu Dec 9 17:02:50 2021 +0100
Rename ESoap/EwsMessage to ESoap/EwsRequest and move some functionality to ESoapResponse
src/CMakeLists.txt | 2 +-
src/EWS/addressbook/e-book-backend-ews.c | 270 +--
src/EWS/calendar/e-cal-backend-ews-utils.c | 476 +++---
src/EWS/calendar/e-cal-backend-ews-utils.h | 20 +-
src/EWS/camel/camel-ews-folder.c | 80 +-
src/EWS/camel/camel-ews-store.c | 24 +-
src/EWS/camel/camel-ews-utils.c | 68 +-
src/EWS/camel/camel-ews-utils.h | 4 +-
src/EWS/common/CMakeLists.txt | 10 +-
src/EWS/common/e-ews-calendar-utils.c | 308 ++--
src/EWS/common/e-ews-calendar-utils.h | 8 +-
src/EWS/common/e-ews-camel-common.c | 107 +-
src/EWS/common/e-ews-connection-utils.c | 27 +-
src/EWS/common/e-ews-connection-utils.h | 3 +
src/EWS/common/e-ews-connection.c | 1781 +++++++++-----------
src/EWS/common/e-ews-connection.h | 23 +-
src/EWS/common/e-ews-debug.c | 2 +-
src/EWS/common/e-ews-folder.c | 20 +-
src/EWS/common/e-ews-folder.h | 4 +-
src/EWS/common/e-ews-item-change.c | 436 ++---
src/EWS/common/e-ews-item-change.h | 183 +-
src/EWS/common/e-ews-item.h | 4 +-
src/EWS/common/e-ews-notification.c | 44 +-
src/EWS/common/e-ews-oof-settings.c | 62 +-
src/EWS/common/e-ews-query-to-restriction.c | 170 +-
src/EWS/common/e-ews-query-to-restriction.h | 4 +-
.../common/{e-ews-message.c => e-ews-request.c} | 222 +--
.../common/{e-ews-message.h => e-ews-request.h} | 65 +-
src/EWS/common/e-soap-message.c | 1163 -------------
src/EWS/common/e-soap-message.h | 146 --
src/EWS/common/e-soap-request.c | 890 ++++++++++
src/EWS/common/e-soap-request.h | 135 ++
src/EWS/common/e-soap-response.c | 286 ++++
src/EWS/common/e-soap-response.h | 19 +
34 files changed, 3468 insertions(+), 3598 deletions(-)
---
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 32df2977..78da6ab6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,2 +1,2 @@
add_subdirectory(EWS)
-add_subdirectory(Microsoft365)
+#add_subdirectory(Microsoft365)
diff --git a/src/EWS/addressbook/e-book-backend-ews.c b/src/EWS/addressbook/e-book-backend-ews.c
index 7a021774..29d7bf10 100644
--- a/src/EWS/addressbook/e-book-backend-ews.c
+++ b/src/EWS/addressbook/e-book-backend-ews.c
@@ -28,7 +28,7 @@
#include <libedata-book/libedata-book.h>
#include "common/e-ews-item-change.h"
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "common/e-ews-connection.h"
#include "common/e-ews-connection-utils.h"
#include "common/e-ews-item.h"
@@ -757,7 +757,7 @@ ebews_find_cert_base64_data (EContact *contact,
static void
ebews_set_cert (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact,
const gchar *kind,
gint fallback_index)
@@ -772,14 +772,14 @@ ebews_set_cert (EBookBackendEws *bbews,
if (!base64_data)
return;
- e_soap_message_start_element (message, kind, NULL, NULL);
- e_ews_message_write_string_parameter (message, "Base64Binary", NULL, base64_data);
- e_soap_message_end_element (message);
+ e_soap_request_start_element (message, kind, NULL, NULL);
+ e_ews_request_write_string_parameter (message, "Base64Binary", NULL, base64_data);
+ e_soap_request_end_element (message);
}
static void
ebews_set_user_cert (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
ebews_set_cert (bbews, message, contact, E_EWS_CERT_KIND_USER, 0);
@@ -788,7 +788,7 @@ ebews_set_user_cert (EBookBackendEws *bbews,
static void
ebews_set_msex_cert (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
ebews_set_cert (bbews, message, contact, E_EWS_CERT_KIND_MSEX, 1);
@@ -796,7 +796,7 @@ ebews_set_msex_cert (EBookBackendEws *bbews,
static void
ebews_set_cert_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
const gchar *kind,
@@ -820,19 +820,19 @@ ebews_set_cert_changes (EBookBackendEws *bbews,
return;
if (new_base64_data) {
- e_ews_message_start_set_item_field (message, kind, "contacts", "Contact");
- e_soap_message_start_element (message, kind, NULL, NULL);
- e_ews_message_write_string_parameter (message, "Base64Binary", NULL, new_base64_data);
- e_soap_message_end_element (message);
- e_ews_message_end_set_item_field (message);
+ e_ews_request_start_set_item_field (message, kind, "contacts", "Contact");
+ e_soap_request_start_element (message, kind, NULL, NULL);
+ e_ews_request_write_string_parameter (message, "Base64Binary", NULL, new_base64_data);
+ e_soap_request_end_element (message);
+ e_ews_request_end_set_item_field (message);
} else {
- e_ews_message_add_delete_item_field (message, kind, "contacts");
+ e_ews_request_add_delete_item_field (message, kind, "contacts");
}
}
static void
ebews_set_user_cert_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -844,7 +844,7 @@ ebews_set_user_cert_changes (EBookBackendEws *bbews,
static void
ebews_set_msex_cert_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1020,7 +1020,7 @@ ebews_populate_emails (EBookBackendEws *bbews,
static void
ebews_set_item_id (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
@@ -1028,7 +1028,7 @@ ebews_set_item_id (EBookBackendEws *bbews,
static void
ebews_set_full_name (EBookBackendEws *bbews,
- ESoapMessage *msg,
+ ESoapRequest *request,
EContact *contact)
{
EContactName *name;
@@ -1038,16 +1038,16 @@ ebews_set_full_name (EBookBackendEws *bbews,
return;
if (name->given)
- e_ews_message_write_string_parameter (msg, "GivenName", NULL, name->given);
+ e_ews_request_write_string_parameter (request, "GivenName", NULL, name->given);
if (name->additional && *name->additional)
- e_ews_message_write_string_parameter (msg, "MiddleName", NULL, name->additional);
+ e_ews_request_write_string_parameter (request, "MiddleName", NULL, name->additional);
e_contact_name_free (name);
}
static void
-ebews_set_date_value (ESoapMessage *message,
+ebews_set_date_value (ESoapRequest *request,
EContact *contact,
EContactField field,
const gchar *element_name)
@@ -1063,7 +1063,7 @@ ebews_set_date_value (ESoapMessage *message,
value = g_strdup_printf ("%04d-%02d-%02dT00:00:00Z",
date->year, date->month, date->day);
- e_ews_message_write_string_parameter (message, element_name, NULL, value);
+ e_ews_request_write_string_parameter (message, element_name, NULL, value);
e_contact_date_free (date);
g_free (value);
@@ -1071,7 +1071,7 @@ ebews_set_date_value (ESoapMessage *message,
static void
ebews_set_birth_date (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
ebews_set_date_value (message, contact, E_CONTACT_BIRTH_DATE, "Birthday");
@@ -1079,7 +1079,7 @@ ebews_set_birth_date (EBookBackendEws *bbews,
static void
ebews_set_anniversary (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
ebews_set_date_value (message, contact, E_CONTACT_ANNIVERSARY, "WeddingAnniversary");
@@ -1087,14 +1087,14 @@ ebews_set_anniversary (EBookBackendEws *bbews,
static void
ebews_set_photo (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
}
static gboolean
-add_entry (ESoapMessage *msg,
+add_entry (ESoapRequest *request,
EContact *contact,
EContactField field,
const gchar *entry_name,
@@ -1106,9 +1106,9 @@ add_entry (ESoapMessage *msg,
if (entry_val && *entry_val) {
if (include_hdr)
- e_soap_message_start_element (msg, include_hdr, NULL, NULL);
+ e_soap_request_start_element (request, include_hdr, NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "Entry", NULL, entry_val, "Key",
entry_name);
+ e_ews_request_write_string_parameter_with_attribute (request, "Entry", NULL, entry_val,
"Key", entry_name);
g_free (entry_val);
return TRUE;
@@ -1120,23 +1120,23 @@ add_entry (ESoapMessage *msg,
static void
ebews_set_phone_numbers (EBookBackendEws *bbews,
- ESoapMessage *msg,
+ ESoapRequest *request,
EContact *contact)
{
gint i;
const gchar *include_hdr = "PhoneNumbers";
for (i = 0; i < G_N_ELEMENTS (phone_field_map); i++) {
- if (add_entry (msg, contact, phone_field_map[i].field, phone_field_map[i].element,
include_hdr))
+ if (add_entry (request, contact, phone_field_map[i].field, phone_field_map[i].element,
include_hdr))
include_hdr = NULL;
}
if (!include_hdr)
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
static gboolean
-add_physical_address (ESoapMessage *msg,
+add_physical_address (ESoapRequest *request,
EContact *contact,
EContactField field,
const gchar *entry_name,
@@ -1149,18 +1149,18 @@ add_physical_address (ESoapMessage *msg,
return FALSE;
if (include_start_hdr)
- e_soap_message_start_element (msg, "PhysicalAddresses", NULL, NULL);
+ e_soap_request_start_element (request, "PhysicalAddresses", NULL, NULL);
- e_soap_message_start_element (msg, "Entry", NULL, NULL);
+ e_soap_request_start_element (request, "Entry", NULL, NULL);
- e_soap_message_add_attribute (msg, "Key", entry_name, NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Street", NULL, contact_addr->street);
- e_ews_message_write_string_parameter (msg, "City", NULL, contact_addr->locality);
- e_ews_message_write_string_parameter (msg, "State", NULL, contact_addr->region);
- e_ews_message_write_string_parameter (msg, "CountryOrRegion", NULL, contact_addr->country);
- e_ews_message_write_string_parameter (msg, "PostalCode", NULL, contact_addr->code);
+ e_soap_request_add_attribute (request, "Key", entry_name, NULL, NULL);
+ e_ews_request_write_string_parameter (request, "Street", NULL, contact_addr->street);
+ e_ews_request_write_string_parameter (request, "City", NULL, contact_addr->locality);
+ e_ews_request_write_string_parameter (request, "State", NULL, contact_addr->region);
+ e_ews_request_write_string_parameter (request, "CountryOrRegion", NULL, contact_addr->country);
+ e_ews_request_write_string_parameter (request, "PostalCode", NULL, contact_addr->code);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
e_contact_address_free (contact_addr);
return TRUE;
@@ -1168,25 +1168,25 @@ add_physical_address (ESoapMessage *msg,
static void
ebews_set_address (EBookBackendEws *bbews,
- ESoapMessage *msg,
+ ESoapRequest *request,
EContact *contact)
{
gboolean include_hdr = TRUE;
- if (add_physical_address (msg, contact, E_CONTACT_ADDRESS_WORK, "Business", include_hdr))
+ if (add_physical_address (request, contact, E_CONTACT_ADDRESS_WORK, "Business", include_hdr))
include_hdr = FALSE;
- if (add_physical_address (msg, contact, E_CONTACT_ADDRESS_HOME, "Home", include_hdr))
+ if (add_physical_address (request, contact, E_CONTACT_ADDRESS_HOME, "Home", include_hdr))
include_hdr = FALSE;
- if (add_physical_address (msg, contact, E_CONTACT_ADDRESS_OTHER, "Other", include_hdr))
+ if (add_physical_address (request, contact, E_CONTACT_ADDRESS_OTHER, "Other", include_hdr))
include_hdr = FALSE;
if (!include_hdr)
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
static void
ebews_set_ims (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
@@ -1194,51 +1194,51 @@ ebews_set_ims (EBookBackendEws *bbews,
static void
ebews_set_notes (EBookBackendEws *bbews,
- ESoapMessage *msg,
+ ESoapRequest *request,
EContact *contact)
{
gchar *notes = e_contact_get (contact, E_CONTACT_NOTE);
if (!notes)
return;
- e_ews_message_write_string_parameter_with_attribute (msg, "Body", NULL, notes, "BodyType", "Text");
+ e_ews_request_write_string_parameter_with_attribute (request, "Body", NULL, notes, "BodyType",
"Text");
g_free (notes);
}
static void
ebews_set_emails (EBookBackendEws *bbews,
- ESoapMessage *msg,
+ ESoapRequest *request,
EContact *contact)
{
const gchar *include_hdr = "EmailAddresses";
- if (add_entry (msg, contact, E_CONTACT_EMAIL_1, "EmailAddress1", include_hdr))
+ if (add_entry (request, contact, E_CONTACT_EMAIL_1, "EmailAddress1", include_hdr))
include_hdr = NULL;
- if (add_entry (msg, contact, E_CONTACT_EMAIL_2, "EmailAddress2", include_hdr))
+ if (add_entry (request, contact, E_CONTACT_EMAIL_2, "EmailAddress2", include_hdr))
include_hdr = NULL;
- if (add_entry (msg, contact, E_CONTACT_EMAIL_3, "EmailAddress3", include_hdr))
+ if (add_entry (request, contact, E_CONTACT_EMAIL_3, "EmailAddress3", include_hdr))
include_hdr = NULL;
if (!include_hdr)
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
static void
-convert_contact_property_to_updatexml (ESoapMessage *msg,
+convert_contact_property_to_updatexml (ESoapRequest *request,
const gchar *name,
const gchar *value,
const gchar *prefix,
const gchar *attr_name,
const gchar *attr_value)
{
- e_ews_message_start_set_item_field (msg, name, prefix, "Contact");
- e_ews_message_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_start_set_item_field (request, name, prefix, "Contact");
+ e_ews_request_write_string_parameter_with_attribute (request, name, NULL, value, attr_name,
attr_value);
+ e_ews_request_end_set_item_field (request);
}
static void
-convert_indexed_contact_property_to_updatexml (ESoapMessage *message,
+convert_indexed_contact_property_to_updatexml (ESoapRequest *request,
const gchar *name,
const gchar *value,
const gchar *prefix,
@@ -1249,20 +1249,20 @@ convert_indexed_contact_property_to_updatexml (ESoapMessage *message,
if (!value || !*value)
delete_field = TRUE;
- e_ews_message_start_set_indexed_item_field (message, name , prefix, "Contact", key, delete_field);
+ e_ews_request_start_set_indexed_item_field (message, name , prefix, "Contact", key, delete_field);
if (!delete_field)
{
- e_soap_message_start_element (message, element_name, NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (message, "Entry", NULL, value, "Key",
key);
- e_soap_message_end_element (message);
+ e_soap_request_start_element (message, element_name, NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (message, "Entry", NULL, value, "Key",
key);
+ e_soap_request_end_element (message);
}
- e_ews_message_end_set_indexed_item_field (message, delete_field);
+ e_ews_request_end_set_indexed_item_field (message, delete_field);
}
static void
ebews_set_full_name_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1299,7 +1299,7 @@ ebews_set_full_name_changes (EBookBackendEws *bbews,
}
static void
-ebews_set_date_value_changes (ESoapMessage *message,
+ebews_set_date_value_changes (ESoapRequest *request,
EContact *new,
EContact *old,
EContactField field,
@@ -1324,7 +1324,7 @@ ebews_set_date_value_changes (ESoapMessage *message,
g_free (value);
} else {
- e_ews_message_add_delete_item_field (message, element_name, "contacts");
+ e_ews_request_add_delete_item_field (message, element_name, "contacts");
}
}
@@ -1334,7 +1334,7 @@ ebews_set_date_value_changes (ESoapMessage *message,
static void
ebews_set_birth_date_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1346,7 +1346,7 @@ ebews_set_birth_date_changes (EBookBackendEws *bbews,
static void
ebews_set_anniversary_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1472,7 +1472,7 @@ ebb_ews_photo_changed (EBookMetaBackend *meta_backend,
static void
ebews_set_photo_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1579,7 +1579,7 @@ ebews_set_photo_changes (EBookBackendEws *bbews,
static void
ebews_set_phone_number_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1605,7 +1605,7 @@ ebews_set_phone_number_changes (EBookBackendEws *bbews,
}
static void
-convert_indexed_contact_property_to_updatexml_physical_address (ESoapMessage *message,
+convert_indexed_contact_property_to_updatexml_physical_address (ESoapRequest *request,
const gchar *name,
const gchar *uri_element,
const gchar *value,
@@ -1621,24 +1621,24 @@ convert_indexed_contact_property_to_updatexml_physical_address (ESoapMessage *me
fielduri = g_strconcat (name, ":", uri_element, NULL);
- e_ews_message_start_set_indexed_item_field (message, fielduri , prefix, "Contact", key, delete_field);
+ e_ews_request_start_set_indexed_item_field (message, fielduri , prefix, "Contact", key, delete_field);
if (!delete_field)
{
- e_soap_message_start_element (message, element_name, NULL, NULL);
+ e_soap_request_start_element (message, element_name, NULL, NULL);
- e_soap_message_start_element (message, "Entry", NULL, NULL);
- e_soap_message_add_attribute (message, "Key", key, NULL, NULL);
- e_ews_message_write_string_parameter (message, uri_element, NULL, value);
- e_soap_message_end_element (message);
+ e_soap_request_start_element (message, "Entry", NULL, NULL);
+ e_soap_request_add_attribute (message, "Key", key, NULL, NULL);
+ e_ews_request_write_string_parameter (message, uri_element, NULL, value);
+ e_soap_request_end_element (message);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
}
- e_ews_message_end_set_indexed_item_field (message, delete_field);
+ e_ews_request_end_set_indexed_item_field (message, delete_field);
}
static void
-compare_address (ESoapMessage *message,
+compare_address (ESoapRequest *request,
EContact *new,
EContact *old,
EContactField field,
@@ -1679,7 +1679,7 @@ compare_address (ESoapMessage *message,
static void
ebews_set_address_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1696,7 +1696,7 @@ ebews_set_address_changes (EBookBackendEws *bbews,
static void
ebews_set_im_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1708,7 +1708,7 @@ ebews_set_im_changes (EBookBackendEws *bbews,
static void
ebews_set_notes_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1734,7 +1734,7 @@ ebews_set_notes_changes (EBookBackendEws *bbews,
static void
ebews_set_email_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1784,7 +1784,7 @@ ebews_populate_givenname (EBookBackendEws *bbews,
static void
ebews_set_givenname (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
/* Does nothing, the "GivenName" is filled by the "FullName" code */
@@ -1792,7 +1792,7 @@ ebews_set_givenname (EBookBackendEws *bbews,
static void
ebews_set_givenname_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1837,7 +1837,7 @@ ebews_populate_categories (EBookBackendEws *bbews,
static void
ebews_set_categories (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *contact)
{
GList *values;
@@ -1846,13 +1846,13 @@ ebews_set_categories (EBookBackendEws *bbews,
if (values) {
GList *link;
- e_soap_message_start_element (message, "Categories", NULL, NULL);
+ e_soap_request_start_element (message, "Categories", NULL, NULL);
for (link = values; link; link = g_list_next (link)) {
const gchar *category = link->data;
if (category && *category)
- e_ews_message_write_string_parameter (message, "String", NULL, category);
+ e_ews_request_write_string_parameter (message, "String", NULL, category);
}
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
}
g_list_free_full (values, g_free);
@@ -1860,7 +1860,7 @@ ebews_set_categories (EBookBackendEws *bbews,
static void
ebews_set_categories_changes (EBookBackendEws *bbews,
- ESoapMessage *message,
+ ESoapRequest *request,
EContact *new,
EContact *old,
gchar **out_new_change_key,
@@ -1880,27 +1880,27 @@ ebews_set_categories_changes (EBookBackendEws *bbews,
values = e_contact_get (new, E_CONTACT_CATEGORY_LIST);
if (values) {
- e_soap_message_start_element (message, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (message, "SetItemField", NULL, NULL);
- e_soap_message_start_element (message, "FieldURI", NULL, NULL);
- e_soap_message_add_attribute (message, "FieldURI", "item:Categories", NULL, NULL);
- e_soap_message_end_element (message);
+ e_soap_request_start_element (message, "FieldURI", NULL, NULL);
+ e_soap_request_add_attribute (message, "FieldURI", "item:Categories", NULL, NULL);
+ e_soap_request_end_element (message);
- e_soap_message_start_element (message, "Contact", NULL, NULL);
- e_soap_message_start_element (message, "Categories", NULL, NULL);
+ e_soap_request_start_element (message, "Contact", NULL, NULL);
+ e_soap_request_start_element (message, "Categories", NULL, NULL);
for (link = values; link; link = g_list_next (link)) {
const gchar *category = link->data;
if (category && *category)
- e_ews_message_write_string_parameter (message, "String", NULL,
category);
+ e_ews_request_write_string_parameter (message, "String", NULL,
category);
}
- e_soap_message_end_element (message); /* Categories */
- e_soap_message_end_element (message); /* Contact */
- e_soap_message_end_element (message); /* SetItemField */
+ e_soap_request_end_element (message); /* Categories */
+ e_soap_request_end_element (message); /* Contact */
+ e_soap_request_end_element (message); /* SetItemField */
} else {
- e_ews_message_add_delete_item_field (message, "Categories", "item");
+ e_ews_request_add_delete_item_field (message, "Categories", "item");
}
g_list_free_full (values, g_free);
@@ -1917,8 +1917,8 @@ static const struct field_element_mapping {
/* set function for simple string type values */
const gchar * (*get_simple_prop_func) (EEwsItem *item);
void (*populate_contact_func)(EBookBackendEws *bbews, EContact *contact, EEwsItem *item, GCancellable
*cancellable, GError **error);
- void (*set_value_in_soap_message) (EBookBackendEws *bbews, ESoapMessage *message, EContact *contact);
- void (*set_changes) (EBookBackendEws *bbews, ESoapMessage *message, EContact *new, EContact *old,
gchar **out_new_change_key, GCancellable *cancellable, GError **error);
+ void (*set_value_in_soap_message) (EBookBackendEws *bbews, ESoapRequest *request, EContact *contact);
+ void (*set_changes) (EBookBackendEws *bbews, ESoapRequest *request, EContact *new, EContact *old,
gchar **out_new_change_key, GCancellable *cancellable, GError **error);
} mappings[] = {
/* The order should be maintained for create contacts to work */
@@ -1957,12 +1957,12 @@ static const struct field_element_mapping {
};
static void
-ebb_ews_write_dl_members (ESoapMessage *msg,
+ebb_ews_write_dl_members (ESoapRequest *request,
EContact *contact)
{
GSList *emails, *l;
- e_soap_message_start_element (msg, "Members", NULL, NULL);
+ e_soap_request_start_element (request, "Members", NULL, NULL);
emails = e_contact_get (contact, E_CONTACT_EMAIL);
for (l = emails; l; l = l->next) {
@@ -1976,19 +1976,19 @@ ebb_ews_write_dl_members (ESoapMessage *msg,
const gchar *name = NULL, *email = NULL;
if (camel_internet_address_get (addr, 0, &name, &email) && email) {
- e_soap_message_start_element (msg, "Member", NULL, NULL);
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Name", NULL, name ? name : email);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, email);
- e_soap_message_end_element (msg); /* Mailbox */
- e_soap_message_end_element (msg); /* Member */
+ e_soap_request_start_element (request, "Member", NULL, NULL);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "Name", NULL, name ? name :
email);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, email);
+ e_soap_request_end_element (request); /* Mailbox */
+ e_soap_request_end_element (request); /* Member */
}
}
g_object_unref (addr);
}
g_slist_free_full (emails, g_free);
- e_soap_message_end_element (msg); /* Members */
+ e_soap_request_end_element (request); /* Members */
}
typedef struct _CreateItemsData
@@ -1998,7 +1998,7 @@ typedef struct _CreateItemsData
} CreateItemsData;
static gboolean
-ebb_ews_convert_dl_to_xml_cb (ESoapMessage *msg,
+ebb_ews_convert_dl_to_xml_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2008,21 +2008,21 @@ ebb_ews_convert_dl_to_xml_cb (ESoapMessage *msg,
GList *values;
/* Prepare DistributionList node in the SOAP message */
- e_soap_message_start_element (msg, "DistributionList", NULL, NULL);
+ e_soap_request_start_element (request, "DistributionList", NULL, NULL);
attribute = e_vcard_get_attribute (E_VCARD (contact), EVC_FN);
values = e_vcard_attribute_get_values (attribute);
- e_ews_message_write_string_parameter (msg, "DisplayName", NULL, values->data);
+ e_ews_request_write_string_parameter (request, "DisplayName", NULL, values->data);
- ebb_ews_write_dl_members (msg, contact);
+ ebb_ews_write_dl_members (request, contact);
- e_soap_message_end_element (msg); /* DistributionList */
+ e_soap_request_end_element (request); /* DistributionList */
return TRUE;
}
static gboolean
-ebb_ews_convert_contact_to_xml_cb (ESoapMessage *msg,
+ebb_ews_convert_contact_to_xml_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2031,7 +2031,7 @@ ebb_ews_convert_contact_to_xml_cb (ESoapMessage *msg,
gint i, element_type;
/* Prepare Contact node in the SOAP message */
- e_soap_message_start_element (msg, "Contact", NULL, NULL);
+ e_soap_request_start_element (request, "Contact", NULL, NULL);
for (i = 0; i < G_N_ELEMENTS (mappings); i++) {
element_type = mappings[i].element_type;
@@ -2045,14 +2045,14 @@ ebb_ews_convert_contact_to_xml_cb (ESoapMessage *msg,
val = e_contact_get (contact, mappings[i].field_id);
if (val && *val)
- e_ews_message_write_string_parameter (msg, mappings[i].element_name, NULL,
val);
+ e_ews_request_write_string_parameter (request, mappings[i].element_name,
NULL, val);
g_free (val);
} else
- mappings[i].set_value_in_soap_message (cid->bbews, msg, contact);
+ mappings[i].set_value_in_soap_message (cid->bbews, request, contact);
}
/* end of "Contact" */
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
return TRUE;
}
@@ -2068,7 +2068,7 @@ typedef struct _ConvertData {
} ConvertData;
static gboolean
-ebb_ews_convert_dl_to_updatexml_cb (ESoapMessage *msg,
+ebb_ews_convert_dl_to_updatexml_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2083,14 +2083,14 @@ ebb_ews_convert_dl_to_updatexml_cb (ESoapMessage *msg,
change_key = e_contact_get (old_contact, E_CONTACT_REV);
}
- e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
+ e_ews_request_start_item_change (request, E_EWS_ITEMCHANGE_TYPE_ITEM,
e_contact_get_const (old_contact, E_CONTACT_UID),
cd->change_key ? cd->change_key : change_key,
0);
- e_ews_message_start_set_item_field (msg, "Members", "distributionlist", "DistributionList");
- ebb_ews_write_dl_members (msg, new_contact);
- e_ews_message_end_set_item_field (msg);
- e_ews_message_end_item_change (msg);
+ e_ews_request_start_set_item_field (request, "Members", "distributionlist", "DistributionList");
+ ebb_ews_write_dl_members (request, new_contact);
+ e_ews_request_end_set_item_field (request);
+ e_ews_request_end_item_change (request);
g_free (change_key);
@@ -2098,7 +2098,7 @@ ebb_ews_convert_dl_to_updatexml_cb (ESoapMessage *msg,
}
static gboolean
-ebb_ews_convert_contact_to_updatexml_cb (ESoapMessage *msg,
+ebb_ews_convert_contact_to_updatexml_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2134,7 +2134,7 @@ ebb_ews_convert_contact_to_updatexml_cb (ESoapMessage *msg,
change_key = e_contact_get (old_contact, E_CONTACT_REV);
}
- e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
+ e_ews_request_start_item_change (request, E_EWS_ITEMCHANGE_TYPE_ITEM,
e_contact_get_const (old_contact, E_CONTACT_UID),
cd->change_key ? cd->change_key : change_key,
0);
@@ -2147,7 +2147,7 @@ ebb_ews_convert_contact_to_updatexml_cb (ESoapMessage *msg,
value = e_contact_get (new_contact, mappings[i].field_id);
old_value = e_contact_get (old_contact, mappings[i].field_id);
if (g_strcmp0 (value, old_value) != 0)
- convert_contact_property_to_updatexml (msg, mappings[i].element_name, value,
"contacts", NULL, NULL);
+ convert_contact_property_to_updatexml (request, mappings[i].element_name,
value, "contacts", NULL, NULL);
if (value)
g_free (value);
if (old_value)
@@ -2158,7 +2158,7 @@ ebb_ews_convert_contact_to_updatexml_cb (ESoapMessage *msg,
if (mappings[i].field_id == E_CONTACT_UID)
continue;
- mappings[i].set_changes (cd->bbews, msg, new_contact, old_contact, &new_change_key,
cd->cancellable, cd->error);
+ mappings[i].set_changes (cd->bbews, request, new_contact, old_contact,
&new_change_key, cd->cancellable, cd->error);
if (new_change_key) {
g_free (cd->change_key);
@@ -2167,7 +2167,7 @@ ebb_ews_convert_contact_to_updatexml_cb (ESoapMessage *msg,
}
}
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (request);
g_free (change_key);
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
index 5ea8a218..f2386930 100644
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
@@ -31,7 +31,7 @@
#include "common/e-ews-calendar-utils.h"
#include "common/e-ews-connection.h"
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "common/e-ews-item-change.h"
#include "e-cal-backend-ews-utils.h"
@@ -329,7 +329,7 @@ ews_get_alarm (ECalComponent *comp)
}
void
-ews_set_alarm (ESoapMessage *msg,
+ews_set_alarm (ESoapRequest *request,
ECalComponent *comp,
ETimezoneCache *timezone_cache,
ICalComponent *vcalendar,
@@ -346,7 +346,7 @@ ews_set_alarm (ESoapMessage *msg,
alarm = e_cal_component_get_alarm (comp, (const gchar *) (alarm_uids->data));
- e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "true");
+ e_ews_request_write_string_parameter (msg, "ReminderIsSet", NULL, "true");
action = e_cal_component_alarm_get_action (alarm);
if (action == E_CAL_COMPONENT_ALARM_DISPLAY) {
ECalComponentAlarmTrigger *trigger;
@@ -355,7 +355,7 @@ ews_set_alarm (ESoapMessage *msg,
trigger = e_cal_component_alarm_get_trigger (alarm);
if (trigger && e_cal_component_alarm_trigger_get_kind (trigger) ==
E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START) {
dur_int = (i_cal_duration_as_int (e_cal_component_alarm_trigger_get_duration
(trigger)) / SECS_IN_MINUTE) * -1;
- e_ews_message_write_int_parameter (msg, "ReminderMinutesBeforeStart", NULL, dur_int);
+ e_ews_request_write_int_parameter (msg, "ReminderMinutesBeforeStart", NULL, dur_int);
if (with_due_by) {
ICalTime *dtstart;
@@ -363,7 +363,7 @@ ews_set_alarm (ESoapMessage *msg,
I_CAL_DTSTART_PROPERTY, i_cal_property_get_dtstart);
if (dtstart && !i_cal_time_is_null_time (dtstart)) {
- e_ews_message_write_time_parameter (msg, "ReminderDueBy", NULL,
+ e_ews_request_write_time_parameter (msg, "ReminderDueBy", NULL,
i_cal_time_as_timet_with_zone (dtstart,
i_cal_timezone_get_utc_timezone ()));
}
@@ -376,7 +376,7 @@ ews_set_alarm (ESoapMessage *msg,
}
static void
-ewscal_set_date (ESoapMessage *msg,
+ewscal_set_date (ESoapRequest *request,
const gchar *name,
ICalTime *itt)
{
@@ -386,7 +386,7 @@ ewscal_set_date (ESoapMessage *msg,
"%04d-%02d-%02d",
i_cal_time_get_year (itt), i_cal_time_get_month (itt), i_cal_time_get_day (itt));
- e_ews_message_write_string_parameter (msg, name, NULL, str);
+ e_ews_request_write_string_parameter (msg, name, NULL, str);
g_free (str);
}
@@ -432,23 +432,23 @@ static const gchar *weekindex_to_ical (gint index) {
}
static void
-ewscal_add_rrule (ESoapMessage *msg,
+ewscal_add_rrule (ESoapRequest *request,
ICalProperty *prop)
{
ICalRecurrence *recur = i_cal_property_get_rrule (prop);
- e_soap_message_start_element (msg, "RelativeYearlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "RelativeYearlyRecurrence", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "DaysOfWeek", NULL, number_to_weekday
(i_cal_recurrence_day_day_of_week (i_cal_recurrence_get_by_day (recur, 0))));
- e_ews_message_write_string_parameter (msg, "DayOfWeekIndex", NULL, weekindex_to_ical
(i_cal_recurrence_day_position (i_cal_recurrence_get_by_day (recur, 0))));
- e_ews_message_write_string_parameter (msg, "Month", NULL, number_to_month
(i_cal_recurrence_get_by_month (recur, 0)));
+ e_ews_request_write_string_parameter (msg, "DaysOfWeek", NULL, number_to_weekday
(i_cal_recurrence_day_day_of_week (i_cal_recurrence_get_by_day (recur, 0))));
+ e_ews_request_write_string_parameter (msg, "DayOfWeekIndex", NULL, weekindex_to_ical
(i_cal_recurrence_day_position (i_cal_recurrence_get_by_day (recur, 0))));
+ e_ews_request_write_string_parameter (msg, "Month", NULL, number_to_month
(i_cal_recurrence_get_by_month (recur, 0)));
- e_soap_message_end_element (msg); /* "RelativeYearlyRecurrence" */
+ e_soap_request_end_element (msg); /* "RelativeYearlyRecurrence" */
g_clear_object (&recur);
}
static void
-ewscal_add_timechange (ESoapMessage *msg,
+ewscal_add_timechange (ESoapRequest *request,
ICalComponent *comp,
gint baseoffs)
{
@@ -461,7 +461,7 @@ ewscal_add_timechange (ESoapMessage *msg,
prop = i_cal_component_get_first_property (comp, I_CAL_TZNAME_PROPERTY);
if (prop) {
tzname = i_cal_property_get_tzname (prop);
- e_soap_message_add_attribute (msg, "TimeZoneName", tzname, NULL, NULL);
+ e_soap_request_add_attribute (msg, "TimeZoneName", tzname, NULL, NULL);
g_object_unref (prop);
}
@@ -474,7 +474,7 @@ ewscal_add_timechange (ESoapMessage *msg,
utcoffs -= baseoffs;
duration = i_cal_duration_new_from_int (utcoffs);
offset = i_cal_duration_as_ical_string (duration);
- e_ews_message_write_string_parameter (msg, "Offset", NULL, offset);
+ e_ews_request_write_string_parameter (msg, "Offset", NULL, offset);
g_clear_object (&duration);
g_object_unref (prop);
@@ -491,14 +491,14 @@ ewscal_add_timechange (ESoapMessage *msg,
if (prop) {
dtstart = i_cal_property_get_dtstart (prop);
snprintf (buffer, 16, "%02d:%02d:%02d", i_cal_time_get_hour (dtstart), i_cal_time_get_minute
(dtstart), i_cal_time_get_second (dtstart));
- e_ews_message_write_string_parameter (msg, "Time", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "Time", NULL, buffer);
g_clear_object (&dtstart);
g_object_unref (prop);
}
}
static void
-ewscal_set_absolute_date_transitions (ESoapMessage *msg,
+ewscal_set_absolute_date_transitions (ESoapRequest *request,
GSList *absolute_date_transitions)
{
GSList *l;
@@ -509,20 +509,20 @@ ewscal_set_absolute_date_transitions (ESoapMessage *msg,
for (l = absolute_date_transitions; l != NULL; l = l->next) {
EEwsCalendarAbsoluteDateTransition *adt = l->data;
- e_soap_message_start_element (msg, "AbsoluteDateTransition", NULL, NULL);
+ e_soap_request_start_element (msg, "AbsoluteDateTransition", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"To", NULL, adt->to->value,
"Kind", adt->to->kind);
- e_ews_message_write_string_parameter (msg, "DateTime", NULL, adt->date_time);
+ e_ews_request_write_string_parameter (msg, "DateTime", NULL, adt->date_time);
- e_soap_message_end_element (msg); /* "AbsoluteDateTransition" */
+ e_soap_request_end_element (msg); /* "AbsoluteDateTransition" */
}
}
static void
-ewscal_set_recurring_day_transitions (ESoapMessage *msg,
+ewscal_set_recurring_day_transitions (ESoapRequest *request,
GSList *recurring_day_transitions)
{
GSList *l;
@@ -533,23 +533,23 @@ ewscal_set_recurring_day_transitions (ESoapMessage *msg,
for (l = recurring_day_transitions; l != NULL; l = l->next) {
EEwsCalendarRecurringDayTransition *rdt = l->data;
- e_soap_message_start_element (msg, "RecurringDayTransition", NULL, NULL);
+ e_soap_request_start_element (msg, "RecurringDayTransition", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"To", NULL, rdt->to->value,
"Kind", rdt->to->kind);
- e_ews_message_write_string_parameter (msg, "TimeOffset", NULL, rdt->time_offset);
- e_ews_message_write_string_parameter (msg, "Month", NULL, rdt->month);
- e_ews_message_write_string_parameter (msg, "DayOfWeek", NULL, rdt->day_of_week);
- e_ews_message_write_string_parameter (msg, "Occurrence", NULL, rdt->occurrence);
+ e_ews_request_write_string_parameter (msg, "TimeOffset", NULL, rdt->time_offset);
+ e_ews_request_write_string_parameter (msg, "Month", NULL, rdt->month);
+ e_ews_request_write_string_parameter (msg, "DayOfWeek", NULL, rdt->day_of_week);
+ e_ews_request_write_string_parameter (msg, "Occurrence", NULL, rdt->occurrence);
- e_soap_message_end_element (msg); /* "RecurringDayTransition" */
+ e_soap_request_end_element (msg); /* "RecurringDayTransition" */
}
}
static void
-ewscal_set_recurring_date_transitions (ESoapMessage *msg,
+ewscal_set_recurring_date_transitions (ESoapRequest *request,
GSList *recurring_date_transitions)
{
GSList *l;
@@ -560,22 +560,22 @@ ewscal_set_recurring_date_transitions (ESoapMessage *msg,
for (l = recurring_date_transitions; l != NULL; l = l->next) {
EEwsCalendarRecurringDateTransition *rdt = l->data;
- e_soap_message_start_element (msg, "RecurringDateTransition", NULL, NULL);
+ e_soap_request_start_element (msg, "RecurringDateTransition", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"To", NULL, rdt->to->value,
"Kind", rdt->to->kind);
- e_ews_message_write_string_parameter (msg, "TimeOffset", NULL, rdt->time_offset);
- e_ews_message_write_string_parameter (msg, "Month", NULL, rdt->month);
- e_ews_message_write_string_parameter (msg, "Day", NULL, rdt->day);
+ e_ews_request_write_string_parameter (msg, "TimeOffset", NULL, rdt->time_offset);
+ e_ews_request_write_string_parameter (msg, "Month", NULL, rdt->month);
+ e_ews_request_write_string_parameter (msg, "Day", NULL, rdt->day);
- e_soap_message_end_element (msg); /* "RecurringDateTransition" */
+ e_soap_request_end_element (msg); /* "RecurringDateTransition" */
}
}
void
-ewscal_set_timezone (ESoapMessage *msg,
+ewscal_set_timezone (ESoapRequest *request,
const gchar *name,
EEwsCalendarTimeZoneDefinition *tzd)
{
@@ -584,63 +584,63 @@ ewscal_set_timezone (ESoapMessage *msg,
if (name == NULL || tzd == NULL)
return;
- e_soap_message_start_element (msg, name, NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", tzd->id, NULL, NULL);
- e_soap_message_add_attribute (msg, "Name", tzd->name, NULL, NULL);
+ e_soap_request_start_element (msg, name, NULL, NULL);
+ e_soap_request_add_attribute (msg, "Id", tzd->id, NULL, NULL);
+ e_soap_request_add_attribute (msg, "Name", tzd->name, NULL, NULL);
- e_soap_message_start_element (msg, "Periods", NULL, NULL);
+ e_soap_request_start_element (msg, "Periods", NULL, NULL);
for (l = tzd->periods; l != NULL; l = l->next) {
EEwsCalendarPeriod *period = l->data;
- e_soap_message_start_element (msg, "Period", NULL, NULL);
- e_soap_message_add_attribute (msg, "Bias", period->bias, NULL, NULL);
- e_soap_message_add_attribute (msg, "Name", period->name, NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", period->id, NULL, NULL);
- e_soap_message_end_element (msg); /* "Period" */
+ e_soap_request_start_element (msg, "Period", NULL, NULL);
+ e_soap_request_add_attribute (msg, "Bias", period->bias, NULL, NULL);
+ e_soap_request_add_attribute (msg, "Name", period->name, NULL, NULL);
+ e_soap_request_add_attribute (msg, "Id", period->id, NULL, NULL);
+ e_soap_request_end_element (msg); /* "Period" */
}
- e_soap_message_end_element (msg); /* "Periods" */
+ e_soap_request_end_element (msg); /* "Periods" */
- e_soap_message_start_element (msg, "TransitionsGroups", NULL, NULL);
+ e_soap_request_start_element (msg, "TransitionsGroups", NULL, NULL);
for (l = tzd->transitions_groups; l != NULL; l = l->next) {
EEwsCalendarTransitionsGroup *tg = l->data;
- e_soap_message_start_element (msg, "TransitionsGroup", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", tg->id, NULL, NULL);
+ e_soap_request_start_element (msg, "TransitionsGroup", NULL, NULL);
+ e_soap_request_add_attribute (msg, "Id", tg->id, NULL, NULL);
if (tg->transition != NULL) {
- e_soap_message_start_element (msg, "Transition", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_soap_request_start_element (msg, "Transition", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"To", NULL, tg->transition->value,
"Kind", tg->transition->kind);
- e_soap_message_end_element (msg); /* "Transition" */
+ e_soap_request_end_element (msg); /* "Transition" */
}
ewscal_set_absolute_date_transitions (msg, tg->absolute_date_transitions);
ewscal_set_recurring_day_transitions (msg, tg->recurring_day_transitions);
ewscal_set_recurring_date_transitions (msg, tg->recurring_date_transitions);
- e_soap_message_end_element (msg); /* "TransitionsGroup" */
+ e_soap_request_end_element (msg); /* "TransitionsGroup" */
}
- e_soap_message_end_element (msg); /* "TransitionsGroups" */
+ e_soap_request_end_element (msg); /* "TransitionsGroups" */
- e_soap_message_start_element (msg, "Transitions", NULL, NULL);
- e_soap_message_start_element (msg, "Transition", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_soap_request_start_element (msg, "Transitions", NULL, NULL);
+ e_soap_request_start_element (msg, "Transition", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"To", NULL, tzd->transitions->transition->value,
"Kind", tzd->transitions->transition->kind);
- e_soap_message_end_element (msg); /* "Transition" */
+ e_soap_request_end_element (msg); /* "Transition" */
ewscal_set_absolute_date_transitions (msg, tzd->transitions->absolute_date_transitions);
ewscal_set_recurring_day_transitions (msg, tzd->transitions->recurring_day_transitions);
ewscal_set_recurring_date_transitions (msg, tzd->transitions->recurring_date_transitions);
- e_soap_message_end_element (msg); /* "Transitions" */
+ e_soap_request_end_element (msg); /* "Transitions" */
- e_soap_message_end_element (msg); /* "StartTimeZone" */
+ e_soap_request_end_element (msg); /* "StartTimeZone" */
}
void
-ewscal_set_meeting_timezone (ESoapMessage *msg,
+ewscal_set_meeting_timezone (ESoapRequest *request,
ICalTimezone *icaltz,
ICalComponent *icomp)
{
@@ -688,8 +688,8 @@ ewscal_set_meeting_timezone (ESoapMessage *msg,
if (!location)
location = i_cal_timezone_get_tznames (icaltz);
- e_soap_message_start_element (msg, "MeetingTimeZone", NULL, NULL);
- e_soap_message_add_attribute (msg, "TimeZoneName", location, NULL, NULL);
+ e_soap_request_start_element (msg, "MeetingTimeZone", NULL, NULL);
+ e_soap_request_add_attribute (msg, "TimeZoneName", location, NULL, NULL);
/* Fetch the timezone offsets for the standard (or only) zone.
* Negate it, because Exchange does it backwards */
@@ -710,7 +710,7 @@ ewscal_set_meeting_timezone (ESoapMessage *msg,
* zone to zero. So try to avoid problems by doing the same. */
duration = i_cal_duration_new_from_int (std_utcoffs);
offset = i_cal_duration_as_ical_string (duration);
- e_ews_message_write_string_parameter (msg, "BaseOffset", NULL, offset);
+ e_ews_request_write_string_parameter (msg, "BaseOffset", NULL, offset);
g_clear_object (&duration);
free (offset);
@@ -719,16 +719,16 @@ ewscal_set_meeting_timezone (ESoapMessage *msg,
* one. */
if (xdaylight) {
/* Standard */
- e_soap_message_start_element (msg, "Standard", NULL, NULL);
+ e_soap_request_start_element (msg, "Standard", NULL, NULL);
ewscal_add_timechange (msg, xstd, std_utcoffs);
- e_soap_message_end_element (msg); /* "Standard" */
+ e_soap_request_end_element (msg); /* "Standard" */
/* DayLight */
- e_soap_message_start_element (msg, "Daylight", NULL, NULL);
+ e_soap_request_start_element (msg, "Daylight", NULL, NULL);
ewscal_add_timechange (msg, xdaylight, std_utcoffs);
- e_soap_message_end_element (msg); /* "Daylight" */
+ e_soap_request_end_element (msg); /* "Daylight" */
}
- e_soap_message_end_element (msg); /* "MeetingTimeZone" */
+ e_soap_request_end_element (msg); /* "MeetingTimeZone" */
g_clear_object (&comp);
g_clear_object (&xstd);
@@ -736,7 +736,7 @@ ewscal_set_meeting_timezone (ESoapMessage *msg,
}
void
-ewscal_set_reccurence (ESoapMessage *msg,
+ewscal_set_reccurence (ESoapRequest *request,
ICalProperty *rrule,
ICalTime *dtstart)
{
@@ -750,21 +750,21 @@ ewscal_set_reccurence (ESoapMessage *msg,
if (!recur)
return;
- e_soap_message_start_element (msg, "Recurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "Recurrence", NULL, NULL);
switch (i_cal_recurrence_get_freq (recur)) {
case I_CAL_DAILY_RECURRENCE:
- e_soap_message_start_element (msg, "DailyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "DailyRecurrence", NULL, NULL);
snprintf (buffer, 32, "%d", i_cal_recurrence_get_interval (recur));
- e_ews_message_write_string_parameter (msg, "Interval", NULL, buffer);
- e_soap_message_end_element (msg); /* "DailyRecurrence" */
+ e_ews_request_write_string_parameter (msg, "Interval", NULL, buffer);
+ e_soap_request_end_element (msg); /* "DailyRecurrence" */
break;
case I_CAL_WEEKLY_RECURRENCE:
- e_soap_message_start_element (msg, "WeeklyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "WeeklyRecurrence", NULL, NULL);
snprintf (buffer, 32, "%d", i_cal_recurrence_get_interval (recur));
- e_ews_message_write_string_parameter (msg, "Interval", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "Interval", NULL, buffer);
len = snprintf (
buffer, 256, "%s",
@@ -774,39 +774,39 @@ ewscal_set_reccurence (ESoapMessage *msg,
buffer + len, 256 - len, " %s",
number_to_weekday (i_cal_recurrence_day_day_of_week
(i_cal_recurrence_get_by_day (recur, i))));
}
- e_ews_message_write_string_parameter (msg, "DaysOfWeek", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "DaysOfWeek", NULL, buffer);
- e_soap_message_end_element (msg); /* "WeeklyRecurrence" */
+ e_soap_request_end_element (msg); /* "WeeklyRecurrence" */
break;
case I_CAL_MONTHLY_RECURRENCE:
if (i_cal_recurrence_get_by_month_day (recur, 0) == I_CAL_RECURRENCE_ARRAY_MAX) {
- e_soap_message_start_element (msg, "RelativeMonthlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "RelativeMonthlyRecurrence", NULL, NULL);
/* For now this is what got implemented since this is the only
relative monthly recurrence evolution can set.
TODO: extend the code with all possible monthly recurrence settings */
snprintf (buffer, 32, "%d", i_cal_recurrence_get_interval (recur));
- e_ews_message_write_string_parameter (msg, "Interval", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "Interval", NULL, buffer);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
msg, "DaysOfWeek", NULL,
number_to_weekday (i_cal_recurrence_day_day_of_week
(i_cal_recurrence_get_by_day (recur, 0))));
- e_ews_message_write_string_parameter (msg, "DayOfWeekIndex", NULL,
weekindex_to_ical (
+ e_ews_request_write_string_parameter (msg, "DayOfWeekIndex", NULL,
weekindex_to_ical (
i_cal_recurrence_get_by_set_pos (recur, 0) == 5 ? -1 :
i_cal_recurrence_get_by_set_pos (recur, 0)));
- e_soap_message_end_element (msg); /* "RelativeMonthlyRecurrence" */
+ e_soap_request_end_element (msg); /* "RelativeMonthlyRecurrence" */
} else {
- e_soap_message_start_element (msg, "AbsoluteMonthlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "AbsoluteMonthlyRecurrence", NULL, NULL);
snprintf (buffer, 256, "%d", i_cal_recurrence_get_interval (recur));
- e_ews_message_write_string_parameter (msg, "Interval", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "Interval", NULL, buffer);
snprintf (buffer, 256, "%d", i_cal_recurrence_get_by_month_day (recur, 0) ==
-1 ? 31 : i_cal_recurrence_get_by_month_day (recur, 0));
- e_ews_message_write_string_parameter (msg, "DayOfMonth", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "DayOfMonth", NULL, buffer);
- e_soap_message_end_element (msg); /* "AbsoluteMonthlyRecurrence" */
+ e_soap_request_end_element (msg); /* "AbsoluteMonthlyRecurrence" */
}
break;
@@ -818,7 +818,7 @@ ewscal_set_reccurence (ESoapMessage *msg,
} else
#endif
{
- e_soap_message_start_element (msg, "AbsoluteYearlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "AbsoluteYearlyRecurrence", NULL, NULL);
/* work according to RFC5545 §3.3.10
* dtstart is the default, give preference to by_month & by_month_day if they
are set
@@ -828,20 +828,20 @@ ewscal_set_reccurence (ESoapMessage *msg,
} else {
snprintf (buffer, 256, "%d", i_cal_time_get_day (dtstart));
}
- e_ews_message_write_string_parameter (msg, "DayOfMonth", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "DayOfMonth", NULL, buffer);
if (i_cal_recurrence_get_by_month (recur, 0) != I_CAL_RECURRENCE_ARRAY_MAX) {
snprintf (buffer, 256, "%d", i_cal_recurrence_get_by_month_day
(recur, 0));
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
msg, "Month", NULL,
number_to_month (i_cal_recurrence_get_by_month (recur, 0)));
} else {
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
msg, "Month", NULL,
number_to_month (i_cal_time_get_month (dtstart)));
}
- e_soap_message_end_element (msg); /* "AbsoluteYearlyRecurrence" */
+ e_soap_request_end_element (msg); /* "AbsoluteYearlyRecurrence" */
}
break;
@@ -856,32 +856,32 @@ ewscal_set_reccurence (ESoapMessage *msg,
}
if (i_cal_recurrence_get_count (recur) > 0) {
- e_soap_message_start_element (msg, "NumberedRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "NumberedRecurrence", NULL, NULL);
ewscal_set_date (msg, "StartDate", dtstart);
snprintf (buffer, 32, "%d", i_cal_recurrence_get_count (recur));
- e_ews_message_write_string_parameter (msg, "NumberOfOccurrences", NULL, buffer);
- e_soap_message_end_element (msg); /* "NumberedRecurrence" */
+ e_ews_request_write_string_parameter (msg, "NumberOfOccurrences", NULL, buffer);
+ e_soap_request_end_element (msg); /* "NumberedRecurrence" */
} else {
ICalTime *until;
until = i_cal_recurrence_get_until (recur);
if (until && !i_cal_time_is_null_time (until)) {
- e_soap_message_start_element (msg, "EndDateRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "EndDateRecurrence", NULL, NULL);
ewscal_set_date (msg, "StartDate", dtstart);
ewscal_set_date (msg, "EndDate", until);
- e_soap_message_end_element (msg); /* "EndDateRecurrence" */
+ e_soap_request_end_element (msg); /* "EndDateRecurrence" */
} else {
- e_soap_message_start_element (msg, "NoEndRecurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "NoEndRecurrence", NULL, NULL);
ewscal_set_date (msg, "StartDate", dtstart);
- e_soap_message_end_element (msg); /* "NoEndRecurrence" */
+ e_soap_request_end_element (msg); /* "NoEndRecurrence" */
}
g_clear_object (&until);
}
exit:
- e_soap_message_end_element (msg); /* "Recurrence" */
+ e_soap_request_end_element (msg); /* "Recurrence" */
g_object_unref (recur);
}
@@ -932,7 +932,7 @@ icomponent_get_datetime (ICalComponent *comp,
}
void
-ewscal_set_reccurence_exceptions (ESoapMessage *msg,
+ewscal_set_reccurence_exceptions (ESoapRequest *request,
ICalComponent *comp)
{
ICalProperty *exdate;
@@ -942,21 +942,21 @@ ewscal_set_reccurence_exceptions (ESoapMessage *msg,
if (!exdate)
return;
- e_soap_message_start_element (msg, "DeletedOccurrences", NULL, NULL);
+ e_soap_request_start_element (msg, "DeletedOccurrences", NULL, NULL);
for (; exdate; g_object_unref (exdate), exdate = i_cal_component_get_next_property (comp,
I_CAL_EXDATE_PROPERTY)) {
ICalTime *exdatetime = icomponent_get_datetime (comp, exdate);
- e_soap_message_start_element (msg, "DeletedOccurrence", NULL, NULL);
+ e_soap_request_start_element (msg, "DeletedOccurrence", NULL, NULL);
ewscal_set_date (msg, "Start", exdatetime);
- e_soap_message_end_element (msg); /* "DeletedOccurrence" */
+ e_soap_request_end_element (msg); /* "DeletedOccurrence" */
g_clear_object (&exdatetime);
}
- e_soap_message_end_element (msg); /* "DeletedOccurrences" */
+ e_soap_request_end_element (msg); /* "DeletedOccurrences" */
}
/*
@@ -1016,29 +1016,29 @@ e_ews_clean_icomponent (ICalComponent *icomp)
}
static void
-add_attendees_list_to_message (ESoapMessage *msg,
+add_attendees_list_to_message (ESoapRequest *request,
const gchar *listname,
GSList *list)
{
GSList *item;
- e_soap_message_start_element (msg, listname, NULL, NULL);
+ e_soap_request_start_element (msg, listname, NULL, NULL);
for (item = list; item != NULL; item = item->next) {
- e_soap_message_start_element (msg, "Attendee", NULL, NULL);
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
+ e_soap_request_start_element (msg, "Attendee", NULL, NULL);
+ e_soap_request_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, item->data);
+ e_ews_request_write_string_parameter (msg, "EmailAddress", NULL, item->data);
- e_soap_message_end_element (msg); /* "Mailbox" */
- e_soap_message_end_element (msg); /* "Attendee" */
+ e_soap_request_end_element (msg); /* "Mailbox" */
+ e_soap_request_end_element (msg); /* "Attendee" */
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (msg);
}
static void
-convert_sensitivity_calcomp_to_xml (ESoapMessage *msg,
+convert_sensitivity_calcomp_to_xml (ESoapRequest *request,
ICalComponent *icomp)
{
ICalProperty *prop;
@@ -1050,18 +1050,18 @@ convert_sensitivity_calcomp_to_xml (ESoapMessage *msg,
if (prop) {
ICalProperty_Class classify = i_cal_property_get_class (prop);
if (classify == I_CAL_CLASS_PUBLIC) {
- e_ews_message_write_string_parameter (msg, "Sensitivity", NULL, "Normal");
+ e_ews_request_write_string_parameter (msg, "Sensitivity", NULL, "Normal");
} else if (classify == I_CAL_CLASS_PRIVATE) {
- e_ews_message_write_string_parameter (msg, "Sensitivity", NULL, "Private");
+ e_ews_request_write_string_parameter (msg, "Sensitivity", NULL, "Private");
} else if (classify == I_CAL_CLASS_CONFIDENTIAL) {
- e_ews_message_write_string_parameter (msg, "Sensitivity", NULL, "Personal");
+ e_ews_request_write_string_parameter (msg, "Sensitivity", NULL, "Personal");
}
g_object_unref (prop);
}
}
static void
-convert_categories_calcomp_to_xml (ESoapMessage *msg,
+convert_categories_calcomp_to_xml (ESoapRequest *request,
ECalComponent *comp,
ICalComponent *icomp)
{
@@ -1096,7 +1096,7 @@ convert_categories_calcomp_to_xml (ESoapMessage *msg,
}
if (citer) {
- e_soap_message_start_element (msg, "Categories", NULL, NULL);
+ e_soap_request_start_element (msg, "Categories", NULL, NULL);
for (citer = categ_list; citer; citer = g_slist_next (citer)) {
const gchar *category = citer->data;
@@ -1104,10 +1104,10 @@ convert_categories_calcomp_to_xml (ESoapMessage *msg,
if (!category || !*category)
continue;
- e_ews_message_write_string_parameter (msg, "String", NULL, category);
+ e_ews_request_write_string_parameter (msg, "String", NULL, category);
}
- e_soap_message_end_element (msg); /* Categories */
+ e_soap_request_end_element (msg); /* Categories */
}
g_slist_free_full (categ_list, g_free);
@@ -1132,7 +1132,7 @@ check_is_all_day_event (const ICalTime *dtstart,
}
static gboolean
-convert_vevent_calcomp_to_xml (ESoapMessage *msg,
+convert_vevent_calcomp_to_xml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1154,19 +1154,19 @@ convert_vevent_calcomp_to_xml (ESoapMessage *msg,
/* FORMAT OF A SAMPLE SOAP MESSAGE: http://msdn.microsoft.com/en-us/library/aa564690.aspx */
/* Prepare CalendarItem node in the SOAP message */
- e_soap_message_start_element (msg, "CalendarItem", NULL, NULL);
+ e_soap_request_start_element (msg, "CalendarItem", NULL, NULL);
/* subject */
value = i_cal_component_get_summary (icomp);
if (value)
- e_ews_message_write_string_parameter (msg, "Subject", NULL, value);
+ e_ews_request_write_string_parameter (msg, "Subject", NULL, value);
convert_sensitivity_calcomp_to_xml (msg, icomp);
/* description */
value = i_cal_component_get_description (icomp);
if (value)
- e_ews_message_write_string_parameter_with_attribute (msg, "Body", NULL, value, "BodyType",
"Text");
+ e_ews_request_write_string_parameter_with_attribute (msg, "Body", NULL, value, "BodyType",
"Text");
convert_categories_calcomp_to_xml (msg, comp, icomp);
@@ -1175,7 +1175,7 @@ convert_vevent_calcomp_to_xml (ESoapMessage *msg,
if (has_alarms)
ews_set_alarm (msg, comp, convert_data->timezone_cache, convert_data->vcalendar, FALSE);
else
- e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "false");
+ e_ews_request_write_string_parameter (msg, "ReminderIsSet", NULL, "false");
/* start time, end time and meeting time zone */
dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache,
convert_data->vcalendar, icomp, I_CAL_DTSTART_PROPERTY, i_cal_property_get_dtstart);
@@ -1193,13 +1193,13 @@ convert_vevent_calcomp_to_xml (ESoapMessage *msg,
satisfies = e_ews_connection_satisfies_server_version (convert_data->connection, E_EWS_EXCHANGE_2010);
if (satisfies && ical_location_start != NULL && ical_location_end != NULL) {
/* set iana timezone info as an extended property */
- e_ews_message_add_extended_property_distinguished_name_string (
+ e_ews_request_add_extended_property_distinguished_name_string (
msg,
"PublicStrings",
"EvolutionEWSStartTimeZone",
ical_location_start);
- e_ews_message_add_extended_property_distinguished_name_string (
+ e_ews_request_add_extended_property_distinguished_name_string (
msg,
"PublicStrings",
"EvolutionEWSEndTimeZone",
@@ -1221,25 +1221,25 @@ convert_vevent_calcomp_to_xml (ESoapMessage *msg,
/* All day event ? */
if (is_all_day_event)
- e_ews_message_write_string_parameter (msg, "IsAllDayEvent", NULL, "true");
+ e_ews_request_write_string_parameter (msg, "IsAllDayEvent", NULL, "true");
/*freebusy*/
prop = i_cal_component_get_first_property (icomp, I_CAL_TRANSP_PROPERTY);
if (!prop || i_cal_property_get_transp (prop) == I_CAL_TRANSP_TRANSPARENT)
- e_ews_message_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Free");
+ e_ews_request_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Free");
else
- e_ews_message_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Busy");
+ e_ews_request_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Busy");
g_clear_object (&prop);
/* location */
value = i_cal_component_get_location (icomp);
if (value)
- e_ews_message_write_string_parameter (msg, "Location", NULL, value);
+ e_ews_request_write_string_parameter (msg, "Location", NULL, value);
/* collect attendees */
e_ews_collect_attendees (icomp, &required, &optional, &resource, &rsvp_requested);
- e_ews_message_write_string_parameter (msg, "IsResponseRequested", NULL, rsvp_requested ? "true" :
"false");
+ e_ews_request_write_string_parameter (msg, "IsResponseRequested", NULL, rsvp_requested ? "true" :
"false");
if (required != NULL) {
add_attendees_list_to_message (msg, "RequiredAttendees", required);
@@ -1287,12 +1287,12 @@ convert_vevent_calcomp_to_xml (ESoapMessage *msg,
g_slist_free (msdn_locations);
g_slist_free_full (tzds, (GDestroyNotify) e_ews_calendar_time_zone_definition_free);
} else {
- e_ews_message_replace_server_version (msg, E_EWS_EXCHANGE_2007_SP1);
+ e_ews_request_replace_server_version (msg, E_EWS_EXCHANGE_2007_SP1);
ewscal_set_meeting_timezone (msg, tzid_start, icomp);
}
- e_soap_message_end_element (msg); /* "CalendarItem" */
+ e_soap_request_end_element (msg); /* "CalendarItem" */
g_clear_object (&dtstart);
g_clear_object (&dtend);
@@ -1314,7 +1314,7 @@ ews_priority_to_string (gint priority)
}
static gboolean
-convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
+convert_vtodo_calcomp_to_xml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1327,13 +1327,13 @@ convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
gboolean success;
/* gboolean has_alarms; */
- e_soap_message_start_element (msg, "Task", NULL, NULL);
+ e_soap_request_start_element (msg, "Task", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Subject", NULL, i_cal_component_get_summary (icomp));
+ e_ews_request_write_string_parameter (msg, "Subject", NULL, i_cal_component_get_summary (icomp));
convert_sensitivity_calcomp_to_xml (msg, icomp);
- e_ews_message_write_string_parameter_with_attribute (msg, "Body", NULL,
i_cal_component_get_description (icomp), "BodyType", "Text");
+ e_ews_request_write_string_parameter_with_attribute (msg, "Body", NULL,
i_cal_component_get_description (icomp), "BodyType", "Text");
convert_categories_calcomp_to_xml (msg, NULL, icomp);
@@ -1342,7 +1342,7 @@ convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
gint priority;
priority = i_cal_property_get_priority (prop);
- e_ews_message_write_string_parameter (msg, "Importance", NULL, ews_priority_to_string
(priority));
+ e_ews_request_write_string_parameter (msg, "Importance", NULL, ews_priority_to_string
(priority));
g_object_unref (prop);
}
@@ -1358,7 +1358,7 @@ convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
if (prop) {
value = i_cal_property_get_percentcomplete (prop);
snprintf (buffer, 16, "%d", value);
- e_ews_message_write_string_parameter (msg, "PercentComplete", NULL, buffer);
+ e_ews_request_write_string_parameter (msg, "PercentComplete", NULL, buffer);
g_object_unref (prop);
}
@@ -1376,10 +1376,10 @@ convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
if (prop) {
switch (i_cal_property_get_status (prop)) {
case I_CAL_STATUS_INPROCESS:
- e_ews_message_write_string_parameter (msg, "Status", NULL, "InProgress");
+ e_ews_request_write_string_parameter (msg, "Status", NULL, "InProgress");
break;
case I_CAL_STATUS_COMPLETED:
- e_ews_message_write_string_parameter (msg, "Status", NULL, "Completed");
+ e_ews_request_write_string_parameter (msg, "Status", NULL, "Completed");
break;
default:
break;
@@ -1401,15 +1401,15 @@ convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
}
if (!has_alarms)
- e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "false"); */
+ e_ews_request_write_string_parameter (msg, "ReminderIsSet", NULL, "false"); */
- e_soap_message_end_element (msg); /* "Task" */
+ e_soap_request_end_element (msg); /* "Task" */
return success;
}
static gboolean
-convert_vjournal_calcomp_to_xml (ESoapMessage *msg,
+convert_vjournal_calcomp_to_xml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1417,27 +1417,27 @@ convert_vjournal_calcomp_to_xml (ESoapMessage *msg,
ICalComponent *icomp = convert_data->icomp;
const gchar *text;
- e_soap_message_start_element (msg, "Message", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "ItemClass", NULL, "IPM.StickyNote");
+ e_soap_request_start_element (msg, "Message", NULL, NULL);
+ e_ews_request_write_string_parameter (msg, "ItemClass", NULL, "IPM.StickyNote");
- e_ews_message_write_string_parameter (msg, "Subject", NULL, i_cal_component_get_summary (icomp));
+ e_ews_request_write_string_parameter (msg, "Subject", NULL, i_cal_component_get_summary (icomp));
convert_sensitivity_calcomp_to_xml (msg, icomp);
text = i_cal_component_get_description (icomp);
if (!text || !*text)
text = i_cal_component_get_summary (icomp);
- e_ews_message_write_string_parameter_with_attribute (msg, "Body", NULL, text, "BodyType", "Text");
+ e_ews_request_write_string_parameter_with_attribute (msg, "Body", NULL, text, "BodyType", "Text");
convert_categories_calcomp_to_xml (msg, NULL, icomp);
- e_soap_message_end_element (msg); /* Message */
+ e_soap_request_end_element (msg); /* Message */
return TRUE;
}
gboolean
-e_cal_backend_ews_convert_calcomp_to_xml (ESoapMessage *msg,
+e_cal_backend_ews_convert_calcomp_to_xml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1464,7 +1464,7 @@ e_cal_backend_ews_convert_calcomp_to_xml (ESoapMessage *msg,
static void
convert_component_categories_to_updatexml (ECalComponent *comp,
- ESoapMessage *msg,
+ ESoapRequest *request,
const gchar *base_elem_name)
{
GSList *categ_list, *citer;
@@ -1475,8 +1475,8 @@ convert_component_categories_to_updatexml (ECalComponent *comp,
categ_list = e_cal_component_get_categories_list (comp);
- e_ews_message_start_set_item_field (msg, "Categories", "item", base_elem_name);
- e_soap_message_start_element (msg, "Categories", NULL, NULL);
+ e_ews_request_start_set_item_field (msg, "Categories", "item", base_elem_name);
+ e_soap_request_start_element (msg, "Categories", NULL, NULL);
for (citer = categ_list; citer; citer = g_slist_next (citer)) {
const gchar *category = citer->data;
@@ -1484,30 +1484,30 @@ convert_component_categories_to_updatexml (ECalComponent *comp,
if (!category || !*category)
continue;
- e_ews_message_write_string_parameter (msg, "String", NULL, category);
+ e_ews_request_write_string_parameter (msg, "String", NULL, category);
}
- e_soap_message_end_element (msg); /* Categories */
- e_ews_message_end_set_item_field (msg);
+ e_soap_request_end_element (msg); /* Categories */
+ e_ews_request_end_set_item_field (msg);
g_slist_free_full (categ_list, g_free);
}
static void
-convert_vevent_property_to_updatexml (ESoapMessage *msg,
+convert_vevent_property_to_updatexml (ESoapRequest *request,
const gchar *name,
const gchar *value,
const gchar *prefix,
const gchar *attr_name,
const gchar *attr_value)
{
- e_ews_message_start_set_item_field (msg, name, prefix, "CalendarItem");
- e_ews_message_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_start_set_item_field (msg, name, prefix, "CalendarItem");
+ e_ews_request_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
+ e_ews_request_end_set_item_field (msg);
}
static gboolean
-convert_vevent_component_to_updatexml (ESoapMessage *msg,
+convert_vevent_component_to_updatexml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1530,14 +1530,14 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
gboolean satisfies, rsvp_requested = TRUE, is_all_day_event = FALSE;
if (convert_data->change_type == E_EWS_ITEMCHANGE_TYPE_OCCURRENCEITEM && convert_data->index > 0) {
- e_ews_message_start_item_change (
+ e_ews_request_start_item_change (
msg,
convert_data->change_type,
convert_data->item_id,
convert_data->change_key,
convert_data->index);
} else {
- e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
+ e_ews_request_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
convert_data->item_id, convert_data->change_key, 0);
}
@@ -1620,7 +1620,7 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
org_email_address = e_ews_collect_organizer (icomp);
if (org_email_address && convert_data->user_email && g_ascii_strcasecmp (org_email_address,
convert_data->user_email)) {
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
return TRUE;
}
@@ -1682,7 +1682,7 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
dt_end_changed = TRUE;
if ((dt_start_changed || dt_start_changed_timezone_name) && ical_location_start != NULL)
- e_ews_message_add_set_item_field_extended_distinguished_name_string (
+ e_ews_request_add_set_item_field_extended_distinguished_name_string (
msg,
NULL,
"CalendarItem",
@@ -1691,7 +1691,7 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
ical_location_start);
if ((dt_end_changed || dt_end_changed_timezone_name) && ical_location_end != NULL)
- e_ews_message_add_set_item_field_extended_distinguished_name_string (
+ e_ews_request_add_set_item_field_extended_distinguished_name_string (
msg,
NULL,
"CalendarItem",
@@ -1706,15 +1706,15 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
is_all_day_event = check_is_all_day_event (dtstart, tzid_start, dtend, tzid_end);
if (dt_start_changed) {
- e_ews_message_start_set_item_field (msg, "Start", "calendar","CalendarItem");
+ e_ews_request_start_set_item_field (msg, "Start", "calendar","CalendarItem");
e_ews_cal_utils_set_time (msg, "Start", dtstart, is_all_day_event && i_cal_time_is_date
(dtstart));
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
if (dt_end_changed) {
- e_ews_message_start_set_item_field (msg, "End", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "End", "calendar", "CalendarItem");
e_ews_cal_utils_set_time (msg, "End", dtend, is_all_day_event && i_cal_time_is_date (dtend));
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
/*Check for All Day Event*/
@@ -1730,28 +1730,28 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
convert_vevent_property_to_updatexml (msg, "IsResponseRequested", rsvp_requested ? "true" : "false",
"calendar", NULL, NULL);
if (required != NULL) {
- e_ews_message_start_set_item_field (msg, "RequiredAttendees", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "RequiredAttendees", "calendar", "CalendarItem");
add_attendees_list_to_message (msg, "RequiredAttendees", required);
g_slist_free (required);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
if (optional != NULL) {
- e_ews_message_start_set_item_field (msg, "OptionalAttendees", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "OptionalAttendees", "calendar", "CalendarItem");
add_attendees_list_to_message (msg, "OptionalAttendees", optional);
g_slist_free (optional);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
if (resource != NULL) {
- e_ews_message_start_set_item_field (msg, "Resources", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "Resources", "calendar", "CalendarItem");
add_attendees_list_to_message (msg, "Resources", resource);
g_slist_free (resource);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
/* Recurrence */
@@ -1768,9 +1768,9 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
rrule_value = i_cal_property_get_value_as_string (prop);
if (prop && g_strcmp0 (rrule_value, rrule_old_value)) {
- e_ews_message_start_set_item_field (msg, "Recurrence", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "Recurrence", "calendar", "CalendarItem");
ewscal_set_reccurence (msg, prop, dtstart);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
g_clear_object (&prop);
g_free (rrule_value);
@@ -1798,9 +1798,9 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
tmp = tzds;
if (tzid_start != NULL) {
- e_ews_message_start_set_item_field (msg, "StartTimeZone", "calendar",
"CalendarItem");
+ e_ews_request_start_set_item_field (msg, "StartTimeZone", "calendar",
"CalendarItem");
ewscal_set_timezone (msg, "StartTimeZone", tmp->data);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
/*
* Exchange server is smart enough to return the list of
@@ -1811,9 +1811,9 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
}
if (tzid_end != NULL) {
- e_ews_message_start_set_item_field (msg, "EndTimeZone", "calendar",
"CalendarItem");
+ e_ews_request_start_set_item_field (msg, "EndTimeZone", "calendar",
"CalendarItem");
ewscal_set_timezone (msg, "EndTimeZone", tmp->data);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
}
@@ -1821,14 +1821,14 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
g_slist_free_full (tzds, (GDestroyNotify) e_ews_calendar_time_zone_definition_free);
}
} else if (dt_changed) {
- e_ews_message_replace_server_version (msg, E_EWS_EXCHANGE_2007_SP1);
+ e_ews_request_replace_server_version (msg, E_EWS_EXCHANGE_2007_SP1);
- e_ews_message_start_set_item_field (msg, "MeetingTimeZone", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "MeetingTimeZone", "calendar", "CalendarItem");
ewscal_set_meeting_timezone (msg, tzid_start ? tzid_start : convert_data->default_zone,
icomp);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
}
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
g_clear_object (&dtstart);
g_clear_object (&dtend);
@@ -1839,20 +1839,20 @@ convert_vevent_component_to_updatexml (ESoapMessage *msg,
}
static void
-convert_vtodo_property_to_updatexml (ESoapMessage *msg,
+convert_vtodo_property_to_updatexml (ESoapRequest *request,
const gchar *name,
const gchar *value,
const gchar *prefix,
const gchar *attr_name,
const gchar *attr_value)
{
- e_ews_message_start_set_item_field (msg, name, prefix, "Task");
- e_ews_message_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_start_set_item_field (msg, name, prefix, "Task");
+ e_ews_request_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
+ e_ews_request_end_set_item_field (msg);
}
static gboolean
-convert_vtodo_component_to_updatexml (ESoapMessage *msg,
+convert_vtodo_component_to_updatexml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1864,7 +1864,7 @@ convert_vtodo_component_to_updatexml (ESoapMessage *msg,
gchar buffer[16];
gboolean success = TRUE;
- e_ews_message_start_item_change (
+ e_ews_request_start_item_change (
msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
convert_data->item_id, convert_data->change_key, 0);
@@ -1888,22 +1888,22 @@ convert_vtodo_component_to_updatexml (ESoapMessage *msg,
prop = i_cal_component_get_first_property (icomp, I_CAL_DUE_PROPERTY);
if (prop) {
dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache,
convert_data->vcalendar, icomp, I_CAL_DUE_PROPERTY, i_cal_property_get_due);
- e_ews_message_start_set_item_field (msg, "DueDate", "task", "Task");
+ e_ews_request_start_set_item_field (msg, "DueDate", "task", "Task");
e_ews_cal_utils_set_time (msg, "DueDate", dt, TRUE);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
g_object_unref (prop);
g_clear_object (&dt);
} else {
- e_ews_message_add_delete_item_field (msg, "DueDate", "task");
+ e_ews_request_add_delete_item_field (msg, "DueDate", "task");
}
prop = i_cal_component_get_first_property (icomp, I_CAL_PERCENTCOMPLETE_PROPERTY);
if (prop) {
value = i_cal_property_get_percentcomplete (prop);
snprintf (buffer, 16, "%d", value);
- e_ews_message_start_set_item_field (msg, "PercentComplete", "task", "Task");
- e_ews_message_write_string_parameter (msg, "PercentComplete", NULL, buffer);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_start_set_item_field (msg, "PercentComplete", "task", "Task");
+ e_ews_request_write_string_parameter (msg, "PercentComplete", NULL, buffer);
+ e_ews_request_end_set_item_field (msg);
g_object_unref (prop);
}
@@ -1911,23 +1911,23 @@ convert_vtodo_component_to_updatexml (ESoapMessage *msg,
value = i_cal_component_count_properties (e_cal_component_get_icalcomponent (convert_data->old_comp),
I_CAL_RRULE_PROPERTY);
if (i_cal_component_count_properties (icomp, I_CAL_RRULE_PROPERTY) > 0 ||
(e_cal_util_component_has_x_property (icomp, X_EWS_TASK_REGENERATION) && value <= 0)) {
- e_ews_message_start_set_item_field (msg, "Recurrence", "task", "Task");
+ e_ews_request_start_set_item_field (msg, "Recurrence", "task", "Task");
success = success && e_ews_cal_utils_set_recurrence (msg, icomp, FALSE, error);
- e_ews_message_end_set_item_field (msg); /* Recurrence */
+ e_ews_request_end_set_item_field (msg); /* Recurrence */
} else if (value > 0) {
- e_ews_message_add_delete_item_field (msg, "Recurrence", "task");
+ e_ews_request_add_delete_item_field (msg, "Recurrence", "task");
}
prop = i_cal_component_get_first_property (icomp, I_CAL_DTSTART_PROPERTY);
if (prop) {
dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache,
convert_data->vcalendar, icomp, I_CAL_DTSTART_PROPERTY, i_cal_property_get_dtstart);
- e_ews_message_start_set_item_field (msg, "StartDate", "task", "Task");
+ e_ews_request_start_set_item_field (msg, "StartDate", "task", "Task");
e_ews_cal_utils_set_time (msg, "StartDate", dt, TRUE);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
g_object_unref (prop);
g_clear_object (&dt);
} else {
- e_ews_message_add_delete_item_field (msg, "StartDate", "task");
+ e_ews_request_add_delete_item_field (msg, "StartDate", "task");
}
prop = i_cal_component_get_first_property (icomp, I_CAL_STATUS_PROPERTY);
@@ -1961,26 +1961,26 @@ convert_vtodo_component_to_updatexml (ESoapMessage *msg,
g_object_unref (prop);
}
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
return success;
}
static void
-convert_vjournal_property_to_updatexml (ESoapMessage *msg,
+convert_vjournal_property_to_updatexml (ESoapRequest *request,
const gchar *name,
const gchar *value,
const gchar *prefix,
const gchar *attr_name,
const gchar *attr_value)
{
- e_ews_message_start_set_item_field (msg, name, prefix, "Message");
- e_ews_message_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_start_set_item_field (msg, name, prefix, "Message");
+ e_ews_request_write_string_parameter_with_attribute (msg, name, NULL, value, attr_name, attr_value);
+ e_ews_request_end_set_item_field (msg);
}
static gboolean
-convert_vjournal_component_to_updatexml (ESoapMessage *msg,
+convert_vjournal_component_to_updatexml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1989,7 +1989,7 @@ convert_vjournal_component_to_updatexml (ESoapMessage *msg,
ICalProperty *prop;
const gchar *text;
- e_ews_message_start_item_change (
+ e_ews_request_start_item_change (
msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
convert_data->item_id, convert_data->change_key, 0);
@@ -2018,13 +2018,13 @@ convert_vjournal_component_to_updatexml (ESoapMessage *msg,
/* Categories */
convert_component_categories_to_updatexml (convert_data->comp, msg, "Message");
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
return TRUE;
}
gboolean
-e_cal_backend_ews_convert_component_to_updatexml (ESoapMessage *msg,
+e_cal_backend_ews_convert_component_to_updatexml (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2114,52 +2114,52 @@ e_cal_backend_ews_rid_to_index (ICalTimezone *timezone,
}
gboolean
-e_cal_backend_ews_clear_reminder_is_set (ESoapMessage *msg,
+e_cal_backend_ews_clear_reminder_is_set (ESoapRequest *request,
gpointer user_data,
GError **error)
{
EwsCalendarConvertData *convert_data = user_data;
- e_ews_message_start_item_change (
+ e_ews_request_start_item_change (
msg,
convert_data->change_type,
convert_data->item_id,
convert_data->change_key,
convert_data->index);
- e_ews_message_start_set_item_field (msg, "ReminderIsSet","item", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "ReminderIsSet","item", "CalendarItem");
- e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "false");
+ e_ews_request_write_string_parameter (msg, "ReminderIsSet", NULL, "false");
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
return TRUE;
}
gboolean
-e_cal_backend_ews_prepare_set_free_busy_status (ESoapMessage *msg,
+e_cal_backend_ews_prepare_set_free_busy_status (ESoapRequest *request,
gpointer user_data,
GError **error)
{
EwsCalendarConvertData *data = user_data;
- e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM, data->item_id, data->change_key, 0);
+ e_ews_request_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM, data->item_id, data->change_key, 0);
- e_ews_message_start_set_item_field (msg, "LegacyFreeBusyStatus", "calendar", "CalendarItem");
+ e_ews_request_start_set_item_field (msg, "LegacyFreeBusyStatus", "calendar", "CalendarItem");
- e_ews_message_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Free");
+ e_ews_request_write_string_parameter (msg, "LegacyFreeBusyStatus", NULL, "Free");
- e_ews_message_end_set_item_field (msg);
+ e_ews_request_end_set_item_field (msg);
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
return TRUE;
}
gboolean
-e_cal_backend_ews_prepare_accept_item_request (ESoapMessage *msg,
+e_cal_backend_ews_prepare_accept_item_request (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -2173,19 +2173,19 @@ e_cal_backend_ews_prepare_accept_item_request (ESoapMessage *msg,
* Prepare AcceptItem node in the SOAP message */
if (response_type && !g_ascii_strcasecmp (response_type, "ACCEPTED"))
- e_soap_message_start_element (msg, "AcceptItem", NULL, NULL);
+ e_soap_request_start_element (msg, "AcceptItem", NULL, NULL);
else if (response_type && !g_ascii_strcasecmp (response_type, "DECLINED"))
- e_soap_message_start_element (msg, "DeclineItem", NULL, NULL);
+ e_soap_request_start_element (msg, "DeclineItem", NULL, NULL);
else
- e_soap_message_start_element (msg, "TentativelyAcceptItem", NULL, NULL);
+ e_soap_request_start_element (msg, "TentativelyAcceptItem", NULL, NULL);
- e_soap_message_start_element (msg, "ReferenceItemId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", data->item_id, NULL, NULL);
- e_soap_message_add_attribute (msg, "ChangeKey", data->change_key, NULL, NULL);
- e_soap_message_end_element (msg); /* "ReferenceItemId" */
+ e_soap_request_start_element (msg, "ReferenceItemId", NULL, NULL);
+ e_soap_request_add_attribute (msg, "Id", data->item_id, NULL, NULL);
+ e_soap_request_add_attribute (msg, "ChangeKey", data->change_key, NULL, NULL);
+ e_soap_request_end_element (msg); /* "ReferenceItemId" */
/* end of "AcceptItem" */
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (msg);
return TRUE;
}
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.h b/src/EWS/calendar/e-cal-backend-ews-utils.h
index 7b84911c..7b2c13b7 100644
--- a/src/EWS/calendar/e-cal-backend-ews-utils.h
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.h
@@ -41,12 +41,12 @@ typedef struct {
const gchar *e_ews_collect_organizer (ICalComponent *comp);
void e_ews_collect_attendees (ICalComponent *comp, GSList **required, GSList **optional, GSList **resource,
gboolean *out_rsvp_requested);
-void ewscal_set_timezone (ESoapMessage *msg, const gchar *name, EEwsCalendarTimeZoneDefinition *tzd);
-void ewscal_set_meeting_timezone (ESoapMessage *msg, ICalTimezone *icaltz, ICalComponent *icomp);
-void ewscal_set_reccurence (ESoapMessage *msg, ICalProperty *rrule, ICalTime *dtstart);
-void ewscal_set_reccurence_exceptions (ESoapMessage *msg, ICalComponent *comp);
+void ewscal_set_timezone (ESoapRequest *request, const gchar *name, EEwsCalendarTimeZoneDefinition *tzd);
+void ewscal_set_meeting_timezone (ESoapRequest *request, ICalTimezone *icaltz, ICalComponent *icomp);
+void ewscal_set_reccurence (ESoapRequest *request, ICalProperty *rrule, ICalTime *dtstart);
+void ewscal_set_reccurence_exceptions (ESoapRequest *request, ICalComponent *comp);
gchar *e_ews_extract_attachment_id_from_uri (const gchar *uri);
-void ews_set_alarm (ESoapMessage *msg, ECalComponent *comp, ETimezoneCache *timezone_cache, ICalComponent
*vcalendar, gboolean with_due_by);
+void ews_set_alarm (ESoapRequest *request, ECalComponent *comp, ETimezoneCache *timezone_cache,
ICalComponent *vcalendar, gboolean with_due_by);
gint ews_get_alarm (ECalComponent *comp);
void e_ews_clean_icomponent (ICalComponent *icomp);
@@ -55,11 +55,11 @@ const gchar *e_cal_backend_ews_tz_util_get_ical_equivalent (const gchar *msdn_tz
void e_cal_backend_ews_populate_windows_zones (void);
void e_cal_backend_ews_unref_windows_zones (void);
-gboolean e_cal_backend_ews_convert_calcomp_to_xml (ESoapMessage *msg, gpointer user_data, GError **error);
-gboolean e_cal_backend_ews_convert_component_to_updatexml (ESoapMessage *msg, gpointer user_data, GError
**error);
-gboolean e_cal_backend_ews_clear_reminder_is_set (ESoapMessage *msg, gpointer user_data, GError **error);
-gboolean e_cal_backend_ews_prepare_set_free_busy_status (ESoapMessage *msg,gpointer user_data, GError
**error);
-gboolean e_cal_backend_ews_prepare_accept_item_request (ESoapMessage *msg, gpointer user_data, GError
**error);
+gboolean e_cal_backend_ews_convert_calcomp_to_xml (ESoapRequest *request, gpointer user_data, GError
**error);
+gboolean e_cal_backend_ews_convert_component_to_updatexml (ESoapRequest *request, gpointer user_data, GError
**error);
+gboolean e_cal_backend_ews_clear_reminder_is_set (ESoapRequest *request, gpointer user_data, GError **error);
+gboolean e_cal_backend_ews_prepare_set_free_busy_status (ESoapRequest *request,gpointer user_data, GError
**error);
+gboolean e_cal_backend_ews_prepare_accept_item_request (ESoapRequest *request, gpointer user_data, GError
**error);
guint e_cal_backend_ews_rid_to_index (ICalTimezone *timezone, const gchar *rid, ICalComponent *comp, GError
**error);
diff --git a/src/EWS/camel/camel-ews-folder.c b/src/EWS/camel/camel-ews-folder.c
index 126fb36a..66087cf3 100644
--- a/src/EWS/camel/camel-ews-folder.c
+++ b/src/EWS/camel/camel-ews-folder.c
@@ -27,7 +27,7 @@ which needs to be better organized via functions */
#include "common/e-ews-camel-common.h"
#include "common/e-ews-connection.h"
#include "common/e-ews-item-change.h"
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "camel-ews-folder.h"
#include "camel-ews-private.h"
@@ -831,7 +831,7 @@ camel_ews_folder_get_message (CamelFolder *folder,
g_free (mime_dir);
/* The mime_content actually contains the *filename*, due to the
- * streaming hack in ESoapMessage */
+ * streaming hack in ESoapResponse */
mime_content = e_ews_item_get_mime_content (items->data);
if (!mime_content)
goto exit;
@@ -1263,7 +1263,7 @@ ews_folder_search_free (CamelFolder *folder,
/********************* folder functions*************************/
static gboolean
-msg_update_flags (ESoapMessage *msg,
+msg_update_flags (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1291,7 +1291,7 @@ msg_update_flags (ESoapMessage *msg,
mi_flags = camel_message_info_get_flags (mi);
flags_changed = camel_ews_message_info_get_server_flags (emi) ^ mi_flags;
- e_ews_message_start_item_change (
+ e_ews_request_start_item_change (
msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
camel_message_info_get_uid (mi), camel_ews_message_info_get_change_key (emi), 0);
if (flags_changed & CAMEL_MESSAGE_FLAGGED) {
@@ -1302,33 +1302,33 @@ msg_update_flags (ESoapMessage *msg,
else
flag = "Normal";
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (msg, "SetItemField", NULL, NULL);
- e_soap_message_start_element (msg, "FieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", "item:Importance", NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (msg, "FieldURI", NULL, NULL);
+ e_soap_request_add_attribute (msg, "FieldURI", "item:Importance", NULL, NULL);
+ e_soap_request_end_element (msg);
- e_soap_message_start_element (msg, "Message", NULL, NULL);
+ e_soap_request_start_element (msg, "Message", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Importance", NULL, flag);
+ e_ews_request_write_string_parameter (msg, "Importance", NULL, flag);
- e_soap_message_end_element (msg); /* Message */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* Message */
+ e_soap_request_end_element (msg); /* SetItemField */
}
if (flags_changed & CAMEL_MESSAGE_SEEN) {
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (msg, "SetItemField", NULL, NULL);
- e_soap_message_start_element (msg, "FieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", "message:IsRead", NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (msg, "FieldURI", NULL, NULL);
+ e_soap_request_add_attribute (msg, "FieldURI", "message:IsRead", NULL, NULL);
+ e_soap_request_end_element (msg);
- e_soap_message_start_element (msg, "Message", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "IsRead", NULL,
+ e_soap_request_start_element (msg, "Message", NULL, NULL);
+ e_ews_request_write_string_parameter (msg, "IsRead", NULL,
(mi_flags & CAMEL_MESSAGE_SEEN) ? "true" : "false");
- e_soap_message_end_element (msg); /* Message */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* Message */
+ e_soap_request_end_element (msg); /* SetItemField */
}
/* Ick Ick Ick. Why in hell is there a field in the database for the Icon
* *anyway*? Why isn't there a better place for forwarded/answered status? */
@@ -1340,7 +1340,7 @@ msg_update_flags (ESoapMessage *msg,
if (mi_flags & CAMEL_MESSAGE_FORWARDED)
icon = 0x106;
- e_ews_message_add_set_item_field_extended_tag_int (msg, NULL, "Message", 0x1080,
icon);
+ e_ews_request_add_set_item_field_extended_tag_int (msg, NULL, "Message", 0x1080,
icon);
}
/* now update the Categories */
@@ -1348,33 +1348,33 @@ msg_update_flags (ESoapMessage *msg,
if (user_flags) {
GSList *link;
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (msg, "SetItemField", NULL, NULL);
- e_soap_message_start_element (msg, "FieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", "item:Categories", NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (msg, "FieldURI", NULL, NULL);
+ e_soap_request_add_attribute (msg, "FieldURI", "item:Categories", NULL, NULL);
+ e_soap_request_end_element (msg);
- e_soap_message_start_element (msg, "Message", NULL, NULL);
- e_soap_message_start_element (msg, "Categories", NULL, NULL);
+ e_soap_request_start_element (msg, "Message", NULL, NULL);
+ e_soap_request_start_element (msg, "Categories", NULL, NULL);
for (link = user_flags; link; link = g_slist_next (link)) {
const gchar *user_flag = link->data;
- e_ews_message_write_string_parameter (msg, "String", NULL, user_flag);
+ e_ews_request_write_string_parameter (msg, "String", NULL, user_flag);
}
- e_soap_message_end_element (msg); /* Categories */
- e_soap_message_end_element (msg); /* Message */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* Categories */
+ e_soap_request_end_element (msg); /* Message */
+ e_soap_request_end_element (msg); /* SetItemField */
} else {
- e_ews_message_add_delete_item_field (msg, "Categories", "item");
+ e_ews_request_add_delete_item_field (msg, "Categories", "item");
}
g_slist_free_full (user_flags, g_free);
ews_utils_update_followup_flags (msg, mi);
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (msg);
camel_message_info_set_folder_flagged (mi, FALSE);
@@ -1388,7 +1388,7 @@ msg_update_flags (ESoapMessage *msg,
}
static gboolean
-ews_suppress_read_receipt (ESoapMessage *msg,
+ews_suppress_read_receipt (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -1411,12 +1411,12 @@ ews_suppress_read_receipt (ESoapMessage *msg,
/* There was requested a read-receipt, but it is handled by evolution-ews,
thus prevent an automatic send of it by the server */
- e_soap_message_start_element (msg, "SuppressReadReceipt", NULL, NULL);
- e_soap_message_start_element (msg, "ReferenceItemId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", camel_message_info_get_uid (mi), NULL, NULL);
- e_soap_message_add_attribute (msg, "ChangeKey", camel_ews_message_info_get_change_key
(CAMEL_EWS_MESSAGE_INFO (mi)), NULL, NULL);
- e_soap_message_end_element (msg); /* "ReferenceItemId" */
- e_soap_message_end_element (msg); /* SuppressReadReceipt */
+ e_soap_request_start_element (msg, "SuppressReadReceipt", NULL, NULL);
+ e_soap_request_start_element (msg, "ReferenceItemId", NULL, NULL);
+ e_soap_request_add_attribute (msg, "Id", camel_message_info_get_uid (mi), NULL, NULL);
+ e_soap_request_add_attribute (msg, "ChangeKey", camel_ews_message_info_get_change_key
(CAMEL_EWS_MESSAGE_INFO (mi)), NULL, NULL);
+ e_soap_request_end_element (msg); /* "ReferenceItemId" */
+ e_soap_request_end_element (msg); /* SuppressReadReceipt */
camel_message_info_set_flags (mi, CAMEL_EWS_MESSAGE_MSGFLAG_RN_PENDING, 0);
diff --git a/src/EWS/camel/camel-ews-store.c b/src/EWS/camel/camel-ews-store.c
index 205ea02b..24c1b623 100644
--- a/src/EWS/camel/camel-ews-store.c
+++ b/src/EWS/camel/camel-ews-store.c
@@ -22,7 +22,7 @@
#include "common/camel-ews-settings.h"
#include "common/e-ews-item-change.h"
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "common/e-ews-oof-settings.h"
#include "camel-ews-folder.h"
@@ -3152,27 +3152,27 @@ struct _rename_cb_data {
};
static gboolean
-rename_folder_cb (ESoapMessage *msg,
+rename_folder_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
struct _rename_cb_data *rename_data = user_data;
- e_ews_message_start_item_change (
- msg, E_EWS_ITEMCHANGE_TYPE_FOLDER,
+ e_ews_request_start_item_change (
+ request, E_EWS_ITEMCHANGE_TYPE_FOLDER,
rename_data->folder_id, rename_data->change_key, 0);
- e_soap_message_start_element (msg, "SetFolderField", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
- msg, "FieldURI", NULL, NULL,
+ e_soap_request_start_element (request, "SetFolderField", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (
+ request, "FieldURI", NULL, NULL,
"FieldURI", "folder:DisplayName");
- e_soap_message_start_element (msg, "Folder", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "DisplayName", NULL, rename_data->display_name);
- e_soap_message_end_element (msg); /* Folder */
+ e_soap_request_start_element (request, "Folder", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "DisplayName", NULL, rename_data->display_name);
+ e_soap_request_end_element (request); /* Folder */
- e_soap_message_end_element (msg); /* SetFolderField */
+ e_soap_request_end_element (request); /* SetFolderField */
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (request);
return TRUE;
}
diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
index 736efd2d..eefd56d1 100644
--- a/src/EWS/camel/camel-ews-utils.c
+++ b/src/EWS/camel/camel-ews-utils.c
@@ -20,7 +20,7 @@
#include "common/camel-ews-settings.h"
#include "common/e-ews-camel-common.h"
#include "common/e-ews-item-change.h"
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "camel-ews-utils.h"
@@ -518,7 +518,7 @@ camel_ews_utils_decode_category_name (const gchar *flag)
/* free with g_slist_free_full (flags, g_free);
the lists' members are values for the String xml element. */
GSList *
-ews_utils_gather_server_user_flags (ESoapMessage *msg,
+ews_utils_gather_server_user_flags (ESoapRequest *request,
CamelMessageInfo *mi)
{
GSList *out_user_flags = NULL;
@@ -1291,7 +1291,7 @@ camel_ews_utils_get_host_name (CamelSettings *settings)
}
void
-ews_utils_update_followup_flags (ESoapMessage *msg,
+ews_utils_update_followup_flags (ESoapRequest *request,
CamelMessageInfo *mi)
{
const gchar *followup, *completed, *dueby;
@@ -1315,66 +1315,66 @@ ews_utils_update_followup_flags (ESoapMessage *msg,
if (followup) {
/* PidTagFlagStatus */
- e_ews_message_add_set_item_field_extended_tag_int (msg, NULL, "Message", 0x1090,
+ e_ews_request_add_set_item_field_extended_tag_int (request, NULL, "Message", 0x1090,
completed_tt != (time_t) 0 ? 0x01 /* followupComplete */: 0x02 /* followupFlagged */);
/* PidLidFlagRequest */
- e_ews_message_add_set_item_field_extended_distinguished_tag_string (msg, NULL, "Message",
"Common", 0x8530, followup);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_string (request, NULL, "Message",
"Common", 0x8530, followup);
/* PidTagToDoItemFlags */
- e_ews_message_add_set_item_field_extended_tag_int (msg, NULL, "Message", 0x0e2b, 1);
+ e_ews_request_add_set_item_field_extended_tag_int (request, NULL, "Message", 0x0e2b, 1);
if (completed_tt == (time_t) 0 && dueby_tt == (time_t) 0) {
time_t now_tt = time (NULL);
/* PidLidTaskStatus */
- e_ews_message_add_set_item_field_extended_distinguished_tag_int (msg, NULL,
"Message", "Task", 0x8101, 0);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_int (request, NULL,
"Message", "Task", 0x8101, 0);
/* PidLidPercentComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_double (msg, NULL,
"Message", "Task", 0x8102, 0.0);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_double (request, NULL,
"Message", "Task", 0x8102, 0.0);
/* PidLidTaskStartDate */
- e_ews_message_add_set_item_field_extended_distinguished_tag_time (msg, NULL,
"Message", "Task", 0x8104, now_tt);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_time (request, NULL,
"Message", "Task", 0x8104, now_tt);
/* PidLidTaskComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_boolean (msg, NULL,
"Message", "Task", 0x811c, FALSE);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_boolean (request, NULL,
"Message", "Task", 0x811c, FALSE);
}
} else {
/* PidTagFlagStatus */
- e_ews_message_add_delete_item_field_extended_tag (msg, 0x1090, E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_tag (request, 0x1090,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidTagFlagCompleteTime */
- e_ews_message_add_delete_item_field_extended_tag (msg, 0x1091, E_EWS_MESSAGE_DATA_TYPE_TIME);
+ e_ews_request_add_delete_item_field_extended_tag (request, 0x1091,
E_EWS_MESSAGE_DATA_TYPE_TIME);
/* PidTagToDoItemFlags */
- e_ews_message_add_delete_item_field_extended_tag (msg, 0x0e2b, E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_tag (request, 0x0e2b,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidTagFollowupIcon */
- e_ews_message_add_delete_item_field_extended_tag (msg, 0x1095, E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_tag (request, 0x1095,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidLidFlagRequest */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Common", 0x8530,
E_EWS_MESSAGE_DATA_TYPE_STRING);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Common", 0x8530,
E_EWS_MESSAGE_DATA_TYPE_STRING);
/* PidLidFlagString */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Common", 0x85c0,
E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Common", 0x85c0,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidLidTaskStatus */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x8101,
E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x8101,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidLidPercentComplete */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x8102,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x8102,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE);
/* PidLidTaskStartDate */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x8104,
E_EWS_MESSAGE_DATA_TYPE_TIME);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x8104,
E_EWS_MESSAGE_DATA_TYPE_TIME);
/* PidLidTaskDueDate */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x8105,
E_EWS_MESSAGE_DATA_TYPE_TIME);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x8105,
E_EWS_MESSAGE_DATA_TYPE_TIME);
/* PidLidTaskDateCompleted */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x810f,
E_EWS_MESSAGE_DATA_TYPE_TIME);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x810f,
E_EWS_MESSAGE_DATA_TYPE_TIME);
/* PidLidTaskComplete */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x811c,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x811c,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN);
}
if (followup && completed_tt != (time_t) 0) {
@@ -1382,22 +1382,22 @@ ews_utils_update_followup_flags (ESoapMessage *msg,
completed_tt = completed_tt - (completed_tt % 60);
/* PidTagFlagCompleteTime */
- e_ews_message_add_set_item_field_extended_tag_time (msg, NULL, "Message", 0x1091,
completed_tt);
+ e_ews_request_add_set_item_field_extended_tag_time (request, NULL, "Message", 0x1091,
completed_tt);
/* PidTagFollowupIcon */
- e_ews_message_add_delete_item_field_extended_tag (msg, 0x1095, E_EWS_MESSAGE_DATA_TYPE_INT);
+ e_ews_request_add_delete_item_field_extended_tag (request, 0x1095,
E_EWS_MESSAGE_DATA_TYPE_INT);
/* PidLidTaskDateCompleted */
- e_ews_message_add_set_item_field_extended_distinguished_tag_time (msg, NULL, "Message",
"Task", 0x810f, completed_tt);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_time (request, NULL, "Message",
"Task", 0x810f, completed_tt);
/* PidLidTaskStatus */
- e_ews_message_add_set_item_field_extended_distinguished_tag_int (msg, NULL, "Message",
"Task", 0x8101, 2);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_int (request, NULL, "Message",
"Task", 0x8101, 2);
/* PidLidPercentComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_double (msg, NULL, "Message",
"Task", 0x8102, 1.0);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_double (request, NULL, "Message",
"Task", 0x8102, 1.0);
/* PidLidTaskComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_boolean (msg, NULL, "Message",
"Task", 0x811c, TRUE);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_boolean (request, NULL,
"Message", "Task", 0x811c, TRUE);
}
if (followup && dueby_tt != (time_t) 0 && completed_tt == (time_t) 0) {
@@ -1407,22 +1407,22 @@ ews_utils_update_followup_flags (ESoapMessage *msg,
now_tt = dueby_tt - 1;
/* PidLidTaskStatus */
- e_ews_message_add_set_item_field_extended_distinguished_tag_int (msg, NULL, "Message",
"Task", 0x8101, 0);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_int (request, NULL, "Message",
"Task", 0x8101, 0);
/* PidLidPercentComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_double (msg, NULL, "Message",
"Task", 0x8102, 0.0);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_double (request, NULL, "Message",
"Task", 0x8102, 0.0);
/* PidLidTaskStartDate */
- e_ews_message_add_set_item_field_extended_distinguished_tag_time (msg, NULL, "Message",
"Task", 0x8104, now_tt);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_time (request, NULL, "Message",
"Task", 0x8104, now_tt);
/* PidLidTaskDueDate */
- e_ews_message_add_set_item_field_extended_distinguished_tag_time (msg, NULL, "Message",
"Task", 0x8105, dueby_tt);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_time (request, NULL, "Message",
"Task", 0x8105, dueby_tt);
/* PidLidTaskComplete */
- e_ews_message_add_set_item_field_extended_distinguished_tag_boolean (msg, NULL, "Message",
"Task", 0x811c, FALSE);
+ e_ews_request_add_set_item_field_extended_distinguished_tag_boolean (request, NULL,
"Message", "Task", 0x811c, FALSE);
} else if (followup && dueby_tt == (time_t) 0) {
/* PidLidTaskDueDate */
- e_ews_message_add_delete_item_field_extended_distinguished_tag (msg, "Task", 0x8105,
E_EWS_MESSAGE_DATA_TYPE_TIME);
+ e_ews_request_add_delete_item_field_extended_distinguished_tag (request, "Task", 0x8105,
E_EWS_MESSAGE_DATA_TYPE_TIME);
}
}
gboolean
diff --git a/src/EWS/camel/camel-ews-utils.h b/src/EWS/camel/camel-ews-utils.h
index db0e6a17..067db64f 100644
--- a/src/EWS/camel/camel-ews-utils.h
+++ b/src/EWS/camel/camel-ews-utils.h
@@ -66,9 +66,9 @@ void camel_ews_utils_sync_updated_items
CamelFolderChangeInfo *change_info,
GCancellable *cancellable);
GSList * ews_utils_gather_server_user_flags
- (ESoapMessage *msg,
+ (ESoapRequest *request,
CamelMessageInfo *mi);
-void ews_utils_update_followup_flags (ESoapMessage *msg,
+void ews_utils_update_followup_flags (ESoapRequest *request,
CamelMessageInfo *mi);
gchar * camel_ews_utils_get_host_name (CamelSettings *settings);
gboolean camel_ews_utils_delete_folders_from_summary_recursive
diff --git a/src/EWS/common/CMakeLists.txt b/src/EWS/common/CMakeLists.txt
index 40ba90f8..0cf975b3 100644
--- a/src/EWS/common/CMakeLists.txt
+++ b/src/EWS/common/CMakeLists.txt
@@ -9,7 +9,7 @@ set(SOURCES
e-ews-calendar-utils.h
e-ews-camel-common.c
e-ews-camel-common.h
- e-ews-connection.c
+ #e-ews-connection.c
e-ews-connection.h
e-ews-connection-utils.c
e-ews-connection-utils.h
@@ -21,19 +21,19 @@ set(SOURCES
e-ews-item.h
e-ews-item-change.c
e-ews-item-change.h
- e-ews-message.c
- e-ews-message.h
e-ews-notification.c
e-ews-notification.h
e-ews-oof-settings.c
e-ews-query-to-restriction.c
e-ews-query-to-restriction.h
+ e-ews-request.c
+ e-ews-request.h
e-oauth2-service-office365.c
e-oauth2-service-office365.h
e-soup-auth-negotiate.c
e-soup-auth-negotiate.h
- e-soap-message.c
- e-soap-message.h
+ e-soap-request.c
+ e-soap-request.h
e-soap-response.c
e-soap-response.h
e-source-ews-folder.c
diff --git a/src/EWS/common/e-ews-calendar-utils.c b/src/EWS/common/e-ews-calendar-utils.c
index 864f5a80..49a900d2 100644
--- a/src/EWS/common/e-ews-calendar-utils.c
+++ b/src/EWS/common/e-ews-calendar-utils.c
@@ -10,7 +10,7 @@
#include <libecal/libecal.h>
#include <calendar/gui/calendar-config.h>
-#include "e-ews-message.h"
+#include "e-ews-request.h"
#include "ews-errors.h"
#include "e-ews-calendar-utils.h"
@@ -200,7 +200,7 @@ number_to_weekday (gint num)
}
static void
-ewscal_add_availability_rrule (ESoapMessage *msg,
+ewscal_add_availability_rrule (ESoapRequest *request,
ICalProperty *prop)
{
ICalRecurrence *recur = i_cal_property_get_rrule (prop);
@@ -215,39 +215,39 @@ ewscal_add_availability_rrule (ESoapMessage *msg,
/* expected value is 1..5, inclusive */
snprintf (buffer, 16, "%d", dayorder);
- e_ews_message_write_string_parameter (msg, "DayOrder", NULL, buffer);
+ e_ews_request_write_string_parameter (request, "DayOrder", NULL, buffer);
snprintf (buffer, 16, "%d", i_cal_recurrence_get_by_month (recur, 0));
- e_ews_message_write_string_parameter (msg, "Month", NULL, buffer);
+ e_ews_request_write_string_parameter (request, "Month", NULL, buffer);
- e_ews_message_write_string_parameter (msg, "DayOfWeek", NULL, number_to_weekday
(i_cal_recurrence_day_day_of_week (i_cal_recurrence_get_by_day (recur, 0))));
+ e_ews_request_write_string_parameter (request, "DayOfWeek", NULL, number_to_weekday
(i_cal_recurrence_day_day_of_week (i_cal_recurrence_get_by_day (recur, 0))));
g_clear_object (&recur);
}
static void
-ewscal_add_availability_default_timechange (ESoapMessage *msg)
+ewscal_add_availability_default_timechange (ESoapRequest *request)
{
- e_soap_message_start_element (msg, "StandardTime", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Bias", NULL, "0");
- e_ews_message_write_string_parameter (msg, "Time", NULL, "00:00:00");
- e_ews_message_write_string_parameter (msg, "DayOrder", NULL, "0");
- e_ews_message_write_string_parameter (msg, "Month", NULL, "0");
- e_ews_message_write_string_parameter (msg, "DayOfWeek", NULL, "Sunday");
- e_soap_message_end_element (msg);
-
- e_soap_message_start_element (msg, "DaylightTime", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Bias", NULL, "0");
- e_ews_message_write_string_parameter (msg, "Time", NULL, "00:00:00");
- e_ews_message_write_string_parameter (msg, "DayOrder", NULL, "0");
- e_ews_message_write_string_parameter (msg, "Month", NULL, "0");
- e_ews_message_write_string_parameter (msg, "DayOfWeek", NULL, "Sunday");
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "StandardTime", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "Bias", NULL, "0");
+ e_ews_request_write_string_parameter (request, "Time", NULL, "00:00:00");
+ e_ews_request_write_string_parameter (request, "DayOrder", NULL, "0");
+ e_ews_request_write_string_parameter (request, "Month", NULL, "0");
+ e_ews_request_write_string_parameter (request, "DayOfWeek", NULL, "Sunday");
+ e_soap_request_end_element (request);
+
+ e_soap_request_start_element (request, "DaylightTime", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "Bias", NULL, "0");
+ e_ews_request_write_string_parameter (request, "Time", NULL, "00:00:00");
+ e_ews_request_write_string_parameter (request, "DayOrder", NULL, "0");
+ e_ews_request_write_string_parameter (request, "Month", NULL, "0");
+ e_ews_request_write_string_parameter (request, "DayOfWeek", NULL, "Sunday");
+ e_soap_request_end_element (request);
}
static void
-ewscal_add_availability_timechange (ESoapMessage *msg,
+ewscal_add_availability_timechange (ESoapRequest *request,
ICalComponent *comp,
gint baseoffs)
{
@@ -262,7 +262,7 @@ ewscal_add_availability_timechange (ESoapMessage *msg,
utcoffs = -i_cal_property_get_tzoffsetto (prop) / 60;
utcoffs -= baseoffs;
snprintf (buffer, 16, "%d", utcoffs);
- e_ews_message_write_string_parameter (msg, "Bias", NULL, buffer);
+ e_ews_request_write_string_parameter (request, "Bias", NULL, buffer);
g_object_unref (prop);
}
@@ -270,20 +270,20 @@ ewscal_add_availability_timechange (ESoapMessage *msg,
if (prop) {
dtstart = i_cal_property_get_dtstart (prop);
snprintf (buffer, 16, "%02d:%02d:%02d", i_cal_time_get_hour (dtstart), i_cal_time_get_minute
(dtstart), i_cal_time_get_second (dtstart));
- e_ews_message_write_string_parameter (msg, "Time", NULL, buffer);
+ e_ews_request_write_string_parameter (request, "Time", NULL, buffer);
g_object_unref (dtstart);
g_object_unref (prop);
}
prop = i_cal_component_get_first_property (comp, I_CAL_RRULE_PROPERTY);
if (prop) {
- ewscal_add_availability_rrule (msg, prop);
+ ewscal_add_availability_rrule (request, prop);
g_object_unref (prop);
}
}
static void
-ewscal_set_availability_timezone (ESoapMessage *msg,
+ewscal_set_availability_timezone (ESoapRequest *request,
ICalTimezone *icaltz)
{
ICalComponent *comp;
@@ -305,7 +305,7 @@ ewscal_set_availability_timezone (ESoapMessage *msg,
}
/*TimeZone is the root element of GetUserAvailabilityRequest*/
- e_soap_message_start_element (msg, "TimeZone", NULL, NULL);
+ e_soap_request_start_element (request, "TimeZone", NULL, NULL);
/* Fetch the timezone offsets for the standard (or only) zone.
* Negate it, because Exchange does it backwards */
@@ -327,24 +327,24 @@ ewscal_set_availability_timezone (ESoapMessage *msg,
* to the offset of the Standard zone, and the Offset in the Standard
* zone to zero. So try to avoid problems by doing the same. */
offset = g_strdup_printf ("%d", std_utcoffs);
- e_ews_message_write_string_parameter (msg, "Bias", NULL, offset);
+ e_ews_request_write_string_parameter (request, "Bias", NULL, offset);
g_free (offset);
if (xdaylight) {
/* Standard */
- e_soap_message_start_element (msg, "StandardTime", NULL, NULL);
- ewscal_add_availability_timechange (msg, xstd, std_utcoffs);
- e_soap_message_end_element (msg); /* "StandardTime" */
+ e_soap_request_start_element (request, "StandardTime", NULL, NULL);
+ ewscal_add_availability_timechange (request, xstd, std_utcoffs);
+ e_soap_request_end_element (request); /* "StandardTime" */
/* DayLight */
- e_soap_message_start_element (msg, "DaylightTime", NULL, NULL);
- ewscal_add_availability_timechange (msg, xdaylight, std_utcoffs);
- e_soap_message_end_element (msg); /* "DaylightTime" */
+ e_soap_request_start_element (request, "DaylightTime", NULL, NULL);
+ ewscal_add_availability_timechange (request, xdaylight, std_utcoffs);
+ e_soap_request_end_element (request); /* "DaylightTime" */
} else
/* Set default values*/
- ewscal_add_availability_default_timechange (msg);
+ ewscal_add_availability_default_timechange (request);
- e_soap_message_end_element (msg); /* "TimeZone" */
+ e_soap_request_end_element (request); /* "TimeZone" */
g_clear_object (&comp);
g_clear_object (&xstd);
@@ -352,7 +352,7 @@ ewscal_set_availability_timezone (ESoapMessage *msg,
}
gboolean
-e_ews_cal_utils_prepare_free_busy_request (ESoapMessage *msg,
+e_ews_cal_utils_prepare_free_busy_request (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -363,50 +363,50 @@ e_ews_cal_utils_prepare_free_busy_request (ESoapMessage *msg,
g_return_val_if_fail (fbdata != NULL, FALSE);
- ewscal_set_availability_timezone (msg, utc_zone);
+ ewscal_set_availability_timezone (request, utc_zone);
- e_soap_message_start_element (msg, "MailboxDataArray", "messages", NULL);
+ e_soap_request_start_element (request, "MailboxDataArray", "messages", NULL);
for (link = (GSList *) fbdata->user_mails; link; link = g_slist_next (link)) {
const gchar *mail = link->data;
- e_soap_message_start_element (msg, "MailboxData", NULL, NULL);
+ e_soap_request_start_element (request, "MailboxData", NULL, NULL);
- e_soap_message_start_element (msg, "Email", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "Address", NULL, mail);
- e_soap_message_end_element (msg); /* "Email" */
+ e_soap_request_start_element (request, "Email", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "Address", NULL, mail);
+ e_soap_request_end_element (request); /* "Email" */
- e_ews_message_write_string_parameter (msg, "AttendeeType", NULL, "Required");
- e_ews_message_write_string_parameter (msg, "ExcludeConflicts", NULL, "false");
+ e_ews_request_write_string_parameter (request, "AttendeeType", NULL, "Required");
+ e_ews_request_write_string_parameter (request, "ExcludeConflicts", NULL, "false");
- e_soap_message_end_element (msg); /* "MailboxData" */
+ e_soap_request_end_element (request); /* "MailboxData" */
}
- e_soap_message_end_element (msg); /* "MailboxDataArray" */
+ e_soap_request_end_element (request); /* "MailboxDataArray" */
- e_soap_message_start_element (msg, "FreeBusyViewOptions", NULL, NULL);
+ e_soap_request_start_element (request, "FreeBusyViewOptions", NULL, NULL);
t_start = i_cal_time_new_from_timet_with_zone (fbdata->period_start, 0, utc_zone);
t_end = i_cal_time_new_from_timet_with_zone (fbdata->period_end, 0, utc_zone);
- e_soap_message_start_element (msg, "TimeWindow", NULL, NULL);
- e_ews_cal_utils_set_time (msg, "StartTime", t_start, FALSE);
- e_ews_cal_utils_set_time (msg, "EndTime", t_end, FALSE);
- e_soap_message_end_element (msg); /* "TimeWindow" */
+ e_soap_request_start_element (request, "TimeWindow", NULL, NULL);
+ e_ews_cal_utils_set_time (request, "StartTime", t_start, FALSE);
+ e_ews_cal_utils_set_time (request, "EndTime", t_end, FALSE);
+ e_soap_request_end_element (request); /* "TimeWindow" */
g_clear_object (&t_start);
g_clear_object (&t_end);
- e_ews_message_write_string_parameter (msg, "MergedFreeBusyIntervalInMinutes", NULL, "60");
- e_ews_message_write_string_parameter (msg, "RequestedView", NULL, "DetailedMerged");
+ e_ews_request_write_string_parameter (request, "MergedFreeBusyIntervalInMinutes", NULL, "60");
+ e_ews_request_write_string_parameter (request, "RequestedView", NULL, "DetailedMerged");
- e_soap_message_end_element (msg); /* "FreeBusyViewOptions" */
+ e_soap_request_end_element (request); /* "FreeBusyViewOptions" */
return TRUE;
}
void
-e_ews_cal_utils_set_time (ESoapMessage *msg,
+e_ews_cal_utils_set_time (ESoapRequest *request,
const gchar *name,
ICalTime *tt,
gboolean with_timezone)
@@ -459,7 +459,7 @@ e_ews_cal_utils_set_time (ESoapMessage *msg,
i_cal_time_get_second (tt),
tz_ident ? tz_ident : "");
- e_ews_message_write_string_parameter (msg, name, NULL, str);
+ e_ews_request_write_string_parameter (request, name, NULL, str);
g_clear_object (&local_tt);
g_free (tz_ident);
@@ -1210,13 +1210,13 @@ e_ews_cal_utils_convert_recurrence (ICalComponent *icomp,
}
static void
-e_ews_cal_utils_write_days_of_week (ESoapMessage *msg,
+e_ews_cal_utils_write_days_of_week (ESoapRequest *request,
guint32 days_of_week)
{
GString *value;
guint32 weekdays, weekenddays;
- g_return_if_fail (E_IS_SOAP_MESSAGE (msg));
+ g_return_if_fail (E_IS_SOAP_REQUEST (request));
if (days_of_week == E_EWS_RECURRENCE_DAYS_OF_WEEK_UNKNOWN)
return;
@@ -1269,21 +1269,21 @@ e_ews_cal_utils_write_days_of_week (ESoapMessage *msg,
}
if (value->len) {
- e_soap_message_start_element (msg, "DaysOfWeek", NULL, NULL);
- e_soap_message_write_string (msg, value->str);
- e_soap_message_end_element (msg); /* DaysOfWeek */
+ e_soap_request_start_element (request, "DaysOfWeek", NULL, NULL);
+ e_soap_request_write_string (request, value->str);
+ e_soap_request_end_element (request); /* DaysOfWeek */
}
g_string_free (value, TRUE);
}
static void
-e_ews_cal_utils_write_day_of_week_index (ESoapMessage *msg,
+e_ews_cal_utils_write_day_of_week_index (ESoapRequest *request,
EEwsRecurrenceDayOfWeekIndex day_of_week_index)
{
const gchar *value = NULL;
- g_return_if_fail (E_IS_SOAP_MESSAGE (msg));
+ g_return_if_fail (E_IS_SOAP_REQUEST (request));
/* Do not localize, these are values used in XML */
switch (day_of_week_index) {
@@ -1307,19 +1307,19 @@ e_ews_cal_utils_write_day_of_week_index (ESoapMessage *msg,
}
if (value) {
- e_soap_message_start_element (msg, "DayOfWeekIndex", NULL, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg); /* DayOfWeekIndex */
+ e_soap_request_start_element (request, "DayOfWeekIndex", NULL, NULL);
+ e_soap_request_write_string (request, value);
+ e_soap_request_end_element (request); /* DayOfWeekIndex */
}
}
static void
-e_ews_cal_utils_write_month (ESoapMessage *msg,
+e_ews_cal_utils_write_month (ESoapRequest *request,
GDateMonth month)
{
const gchar *value = NULL;
- g_return_if_fail (E_IS_SOAP_MESSAGE (msg));
+ g_return_if_fail (E_IS_SOAP_REQUEST (request));
/* Do not localize, these are values used in XML */
switch (month) {
@@ -1364,21 +1364,21 @@ e_ews_cal_utils_write_month (ESoapMessage *msg,
}
if (value) {
- e_soap_message_start_element (msg, "Month", NULL, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg); /* Month */
+ e_soap_request_start_element (request, "Month", NULL, NULL);
+ e_soap_request_write_string (request, value);
+ e_soap_request_end_element (request); /* Month */
}
}
static void
-e_ews_cal_util_write_utc_date (ESoapMessage *msg,
+e_ews_cal_util_write_utc_date (ESoapRequest *request,
const gchar *name,
time_t utc_date)
{
ICalTime *itt;
gchar *value;
- g_return_if_fail (E_IS_SOAP_MESSAGE (msg));
+ g_return_if_fail (E_IS_SOAP_REQUEST (request));
g_return_if_fail (name != NULL);
itt = i_cal_time_new_from_timet_with_zone (utc_date, 1, i_cal_timezone_get_utc_timezone ());
@@ -1388,9 +1388,9 @@ e_ews_cal_util_write_utc_date (ESoapMessage *msg,
i_cal_time_get_day (itt));
g_clear_object (&itt);
- e_soap_message_start_element (msg, name, NULL, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, name, NULL, NULL);
+ e_soap_request_write_string (request, value);
+ e_soap_request_end_element (request);
g_free (value);
}
@@ -1398,14 +1398,14 @@ e_ews_cal_util_write_utc_date (ESoapMessage *msg,
/* Writes 'Recurrence' element into the @msg. Sets the @error only if the RRULE
cannot be transformed into Recurrence */
gboolean
-e_ews_cal_utils_set_recurrence (ESoapMessage *msg,
+e_ews_cal_utils_set_recurrence (ESoapRequest *request,
ICalComponent *comp,
gboolean server_satisfies_2013,
GError **error)
{
EEwsRecurrence recur;
- g_return_val_if_fail (E_IS_SOAP_MESSAGE (msg), FALSE);
+ g_return_val_if_fail (E_IS_SOAP_REQUEST (request), FALSE);
g_return_val_if_fail (comp != NULL, FALSE);
memset (&recur, 0, sizeof (EEwsRecurrence));
@@ -1421,52 +1421,52 @@ e_ews_cal_utils_set_recurrence (ESoapMessage *msg,
return TRUE;
}
- e_soap_message_start_element (msg, "Recurrence", NULL, NULL);
+ e_soap_request_start_element (request, "Recurrence", NULL, NULL);
switch (recur.type) {
case E_EWS_RECURRENCE_UNKNOWN:
g_warn_if_reached ();
break;
case E_EWS_RECURRENCE_RELATIVE_YEARLY:
- e_soap_message_start_element (msg, "RelativeYearlyRecurrence", NULL, NULL);
- e_ews_cal_utils_write_days_of_week (msg, recur.recur.relative_yearly.days_of_week);
- e_ews_cal_utils_write_day_of_week_index (msg, recur.recur.relative_yearly.day_of_week_index);
- e_ews_cal_utils_write_month (msg, recur.recur.relative_yearly.month);
- e_soap_message_end_element (msg); /* RelativeYearlyRecurrence */
+ e_soap_request_start_element (request, "RelativeYearlyRecurrence", NULL, NULL);
+ e_ews_cal_utils_write_days_of_week (request, recur.recur.relative_yearly.days_of_week);
+ e_ews_cal_utils_write_day_of_week_index (request,
recur.recur.relative_yearly.day_of_week_index);
+ e_ews_cal_utils_write_month (request, recur.recur.relative_yearly.month);
+ e_soap_request_end_element (request); /* RelativeYearlyRecurrence */
break;
case E_EWS_RECURRENCE_ABSOLUTE_YEARLY:
- e_soap_message_start_element (msg, "AbsoluteYearlyRecurrence", NULL, NULL);
- e_soap_message_start_element (msg, "DayOfMonth", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.absolute_yearly.day_of_month);
- e_soap_message_end_element (msg); /* DayOfMonth */
- e_ews_cal_utils_write_month (msg, recur.recur.absolute_yearly.month);
- e_soap_message_end_element (msg); /* AbsoluteYearlyRecurrence */
+ e_soap_request_start_element (request, "AbsoluteYearlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (request, "DayOfMonth", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.absolute_yearly.day_of_month);
+ e_soap_request_end_element (request); /* DayOfMonth */
+ e_ews_cal_utils_write_month (request, recur.recur.absolute_yearly.month);
+ e_soap_request_end_element (request); /* AbsoluteYearlyRecurrence */
break;
case E_EWS_RECURRENCE_RELATIVE_MONTHLY:
- e_soap_message_start_element (msg, "RelativeMonthlyRecurrence", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.relative_monthly.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_ews_cal_utils_write_days_of_week (msg, recur.recur.relative_monthly.days_of_week);
- e_ews_cal_utils_write_day_of_week_index (msg, recur.recur.relative_monthly.day_of_week_index);
- e_soap_message_end_element (msg); /* RelativeMonthlyRecurrence */
+ e_soap_request_start_element (request, "RelativeMonthlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.relative_monthly.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_ews_cal_utils_write_days_of_week (request, recur.recur.relative_monthly.days_of_week);
+ e_ews_cal_utils_write_day_of_week_index (request,
recur.recur.relative_monthly.day_of_week_index);
+ e_soap_request_end_element (request); /* RelativeMonthlyRecurrence */
break;
case E_EWS_RECURRENCE_ABSOLUTE_MONTHLY:
- e_soap_message_start_element (msg, "AbsoluteMonthlyRecurrence", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.absolute_monthly.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_start_element (msg, "DayOfMonth", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.absolute_monthly.day_of_month);
- e_soap_message_end_element (msg); /* DayOfMonth */
- e_soap_message_end_element (msg); /* AbsoluteMonthlyRecurrence */
+ e_soap_request_start_element (request, "AbsoluteMonthlyRecurrence", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.absolute_monthly.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_start_element (request, "DayOfMonth", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.absolute_monthly.day_of_month);
+ e_soap_request_end_element (request); /* DayOfMonth */
+ e_soap_request_end_element (request); /* AbsoluteMonthlyRecurrence */
break;
case E_EWS_RECURRENCE_WEEKLY:
- e_soap_message_start_element (msg, "WeeklyRecurrence", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.weekly.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_ews_cal_utils_write_days_of_week (msg, recur.recur.weekly.days_of_week);
+ e_soap_request_start_element (request, "WeeklyRecurrence", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.weekly.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_ews_cal_utils_write_days_of_week (request, recur.recur.weekly.days_of_week);
if (server_satisfies_2013) {
const gchar *value = NULL;
@@ -1497,47 +1497,47 @@ e_ews_cal_utils_set_recurrence (ESoapMessage *msg,
}
if (value) {
- e_soap_message_start_element (msg, "FirstDayOfWeek", NULL, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg); /* FirstDayOfWeek */
+ e_soap_request_start_element (request, "FirstDayOfWeek", NULL, NULL);
+ e_soap_request_write_string (request, value);
+ e_soap_request_end_element (request); /* FirstDayOfWeek */
}
}
- e_soap_message_end_element (msg); /* WeeklyRecurrence */
+ e_soap_request_end_element (request); /* WeeklyRecurrence */
break;
case E_EWS_RECURRENCE_DAILY:
- e_soap_message_start_element (msg, "DailyRecurrence", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_end_element (msg); /* DailyRecurrence */
+ e_soap_request_start_element (request, "DailyRecurrence", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_end_element (request); /* DailyRecurrence */
break;
case E_EWS_RECURRENCE_DAILY_REGENERATION:
- e_soap_message_start_element (msg, "DailyRegeneration", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_end_element (msg); /* DailyRegeneration */
+ e_soap_request_start_element (request, "DailyRegeneration", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_end_element (request); /* DailyRegeneration */
break;
case E_EWS_RECURRENCE_WEEKLY_REGENERATION:
- e_soap_message_start_element (msg, "WeeklyRegeneration", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_end_element (msg); /* WeeklyRegeneration */
+ e_soap_request_start_element (request, "WeeklyRegeneration", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_end_element (request); /* WeeklyRegeneration */
break;
case E_EWS_RECURRENCE_MONTHLY_REGENERATION:
- e_soap_message_start_element (msg, "MonthlyRegeneration", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_end_element (msg); /* MonthlyRegeneration */
+ e_soap_request_start_element (request, "MonthlyRegeneration", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_end_element (request); /* MonthlyRegeneration */
break;
case E_EWS_RECURRENCE_YEARLY_REGENERATION:
- e_soap_message_start_element (msg, "YearlyRegeneration", NULL, NULL);
- e_soap_message_start_element (msg, "Interval", NULL, NULL);
- e_soap_message_write_int (msg, recur.recur.interval);
- e_soap_message_end_element (msg); /* Interval */
- e_soap_message_end_element (msg); /* YearlyRegeneration */
+ e_soap_request_start_element (request, "YearlyRegeneration", NULL, NULL);
+ e_soap_request_start_element (request, "Interval", NULL, NULL);
+ e_soap_request_write_int (request, recur.recur.interval);
+ e_soap_request_end_element (request); /* Interval */
+ e_soap_request_end_element (request); /* YearlyRegeneration */
break;
}
@@ -1546,27 +1546,27 @@ e_ews_cal_utils_set_recurrence (ESoapMessage *msg,
g_warn_if_reached ();
break;
case E_EWS_RECURRENCE_END_NO_END:
- e_soap_message_start_element (msg, "NoEndRecurrence", NULL, NULL);
- e_ews_cal_util_write_utc_date (msg, "StartDate", recur.utc_start_date);
- e_soap_message_end_element (msg); /* NoEndRecurrence */
+ e_soap_request_start_element (request, "NoEndRecurrence", NULL, NULL);
+ e_ews_cal_util_write_utc_date (request, "StartDate", recur.utc_start_date);
+ e_soap_request_end_element (request); /* NoEndRecurrence */
break;
case E_EWS_RECURRENCE_END_DATE:
- e_soap_message_start_element (msg, "EndDateRecurrence", NULL, NULL);
- e_ews_cal_util_write_utc_date (msg, "StartDate", recur.utc_start_date);
- e_ews_cal_util_write_utc_date (msg, "EndDate", recur.end.utc_end_date);
- e_soap_message_end_element (msg); /* EndDateRecurrence */
+ e_soap_request_start_element (request, "EndDateRecurrence", NULL, NULL);
+ e_ews_cal_util_write_utc_date (request, "StartDate", recur.utc_start_date);
+ e_ews_cal_util_write_utc_date (request, "EndDate", recur.end.utc_end_date);
+ e_soap_request_end_element (request); /* EndDateRecurrence */
break;
case E_EWS_RECURRENCE_END_NUMBERED:
- e_soap_message_start_element (msg, "NumberedRecurrence", NULL, NULL);
- e_ews_cal_util_write_utc_date (msg, "StartDate", recur.utc_start_date);
- e_soap_message_start_element (msg, "NumberOfOccurrences", NULL, NULL);
- e_soap_message_write_int (msg, recur.end.number_of_occurrences);
- e_soap_message_end_element (msg); /* NumberOfOccurrences */
- e_soap_message_end_element (msg); /* NumberedRecurrence */
+ e_soap_request_start_element (request, "NumberedRecurrence", NULL, NULL);
+ e_ews_cal_util_write_utc_date (request, "StartDate", recur.utc_start_date);
+ e_soap_request_start_element (request, "NumberOfOccurrences", NULL, NULL);
+ e_soap_request_write_int (request, recur.end.number_of_occurrences);
+ e_soap_request_end_element (request); /* NumberOfOccurrences */
+ e_soap_request_end_element (request); /* NumberedRecurrence */
break;
}
- e_soap_message_end_element (msg); /* Recurrence */
+ e_soap_request_end_element (request); /* Recurrence */
return TRUE;
}
diff --git a/src/EWS/common/e-ews-calendar-utils.h b/src/EWS/common/e-ews-calendar-utils.h
index 4b640df9..880cf652 100644
--- a/src/EWS/common/e-ews-calendar-utils.h
+++ b/src/EWS/common/e-ews-calendar-utils.h
@@ -10,7 +10,7 @@
#include <time.h>
#include <libecal/libecal.h>
-#include "common/e-soap-message.h"
+#include "common/e-soap-request.h"
#include "common/e-ews-item.h"
G_BEGIN_DECLS
@@ -26,14 +26,14 @@ typedef struct _EEWSFreeBusyData {
} EEWSFreeBusyData;
gboolean e_ews_cal_utils_prepare_free_busy_request
- (ESoapMessage *msg,
+ (ESoapRequest *request,
gpointer user_data, /* EEWSFreeBusyData * */
GError **error);
-void e_ews_cal_utils_set_time (ESoapMessage *msg,
+void e_ews_cal_utils_set_time (ESoapRequest *request,
const gchar *name,
ICalTime *tt,
gboolean with_timezone);
-gboolean e_ews_cal_utils_set_recurrence (ESoapMessage *msg,
+gboolean e_ews_cal_utils_set_recurrence (ESoapRequest *request,
ICalComponent *comp,
gboolean server_satisfies_2013,
GError **error);
diff --git a/src/EWS/common/e-ews-camel-common.c b/src/EWS/common/e-ews-camel-common.c
index 16962444..1446eea3 100644
--- a/src/EWS/common/e-ews-camel-common.c
+++ b/src/EWS/common/e-ews-camel-common.c
@@ -9,7 +9,7 @@
#include <glib/gi18n-lib.h>
#include <glib/gstdio.h>
-#include "common/e-ews-message.h"
+#include "common/e-ews-request.h"
#include "common/e-ews-item-change.h"
#include "e-ews-camel-common.h"
@@ -63,7 +63,7 @@ filter_recipients (CamelMimeMessage *message,
}
static void
-write_recipients (ESoapMessage *msg,
+write_recipients (ESoapRequest *request,
const gchar *elem_name,
GHashTable *recips,
gboolean is_resend)
@@ -71,23 +71,23 @@ write_recipients (ESoapMessage *msg,
GHashTableIter iter;
gpointer key, value;
- g_return_if_fail (msg != NULL);
+ g_return_if_fail (request != NULL);
g_return_if_fail (elem_name != NULL);
g_return_if_fail (recips != NULL);
if (!is_resend && !g_hash_table_size (recips))
return;
- e_soap_message_start_element (msg, elem_name, NULL, NULL);
+ e_soap_request_start_element (request, elem_name, NULL, NULL);
g_hash_table_iter_init (&iter, recips);
while (g_hash_table_iter_next (&iter, &key, &value)) {
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "EmailAddress", NULL, key, NULL,
NULL);
- e_soap_message_end_element (msg); /* Mailbox */
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "EmailAddress", NULL, key,
NULL, NULL);
+ e_soap_request_end_element (request); /* Mailbox */
}
- e_soap_message_end_element (msg); /* elem_name */
+ e_soap_request_end_element (request); /* elem_name */
}
static gboolean
@@ -101,7 +101,7 @@ is_any_address_filled (CamelInternetAddress *addrs)
#define MAPI_MSGFLAG_UNSENT 0x08
static gboolean
-create_mime_message_cb (ESoapMessage *msg,
+create_mime_message_cb (ESoapRequest *request,
gpointer user_data,
GError **error)
{
@@ -132,10 +132,10 @@ create_mime_message_cb (ESoapMessage *msg,
}
}
- e_soap_message_start_element (msg, "Message", NULL, NULL);
- e_soap_message_start_element (msg, "MimeContent", NULL, NULL);
+ e_soap_request_start_element (request, "Message", NULL, NULL);
+ e_soap_request_start_element (request, "MimeContent", NULL, NULL);
- /* This is horrid. We really need to extend ESoapMessage to allow us
+ /* This is horrid. We really need to extend ESoapRequest to allow us
* to stream this directly rather than storing it in RAM. Which right
* now we are doing about four times: the GByteArray in the mem stream,
* then the base64 version, then the xmlDoc, then the soup request. */
@@ -160,28 +160,27 @@ create_mime_message_cb (ESoapMessage *msg,
g_object_unref (mem);
g_object_unref (filtered);
- e_soap_message_write_string (msg, base64);
+ e_soap_request_write_string (request, base64);
g_free (base64);
- e_soap_message_end_element (msg); /* MimeContent */
+ e_soap_request_end_element (request); /* MimeContent */
content_type = camel_mime_part_get_content_type (CAMEL_MIME_PART (create_data->message));
if (content_type && camel_content_type_is (content_type, "multipart", "report") &&
camel_content_type_param (content_type, "report-type") &&
g_ascii_strcasecmp (camel_content_type_param (content_type, "report-type"),
"disposition-notification") == 0) {
/* it's a disposition notification reply, set ItemClass too */
- e_soap_message_start_element (msg, "ItemClass", NULL, NULL);
- e_soap_message_write_string (msg, "REPORT.IPM.NOTE.IPNRN");
- e_soap_message_end_element (msg); /* ItemClass */
+ e_soap_request_start_element (request, "ItemClass", NULL, NULL);
+ e_soap_request_write_string (request, "REPORT.IPM.NOTE.IPNRN");
+ e_soap_request_end_element (request); /* ItemClass */
}
- e_ews_message_write_string_parameter_with_attribute (
- msg,
- "Importance",
- NULL,
- (message_camel_flags & CAMEL_MESSAGE_FLAGGED) != 0 ? "High" : "Normal",
- NULL,
- NULL);
+ e_ews_request_write_string_parameter_with_attribute (request,
+ "Importance",
+ NULL,
+ (message_camel_flags & CAMEL_MESSAGE_FLAGGED) != 0 ? "High" : "Normal",
+ NULL,
+ NULL);
/* more MAPI crap. You can't just set the IsDraft property
* here you have to use the MAPI MSGFLAG_UNSENT extended
@@ -192,14 +191,14 @@ create_mime_message_cb (ESoapMessage *msg,
if ((message_camel_flags & CAMEL_MESSAGE_DRAFT) != 0)
msgflag |= MAPI_MSGFLAG_UNSENT;
- e_ews_message_add_extended_property_tag_int (msg, 0x0e07, msgflag);
+ e_ews_request_add_extended_property_tag_int (request, 0x0e07, msgflag);
if ((message_camel_flags & (CAMEL_MESSAGE_FORWARDED | CAMEL_MESSAGE_ANSWERED)) != 0) {
gint icon;
icon = (message_camel_flags & CAMEL_MESSAGE_ANSWERED) != 0 ? 0x105 : 0x106;
- e_ews_message_add_extended_property_tag_int (msg, 0x1080, icon);
+ e_ews_request_add_extended_property_tag_int (request, 0x1080, icon);
}
if (create_data->info) {
@@ -221,15 +220,15 @@ create_mime_message_cb (ESoapMessage *msg,
dueby_tt = camel_header_decode_date (dueby, NULL);
/* PidTagFlagStatus */
- e_ews_message_add_extended_property_tag_int (msg, 0x1090,
+ e_ews_request_add_extended_property_tag_int (request, 0x1090,
followup ? (completed_tt != (time_t) 0 ? 0x01 /* followupComplete */: 0x02 /*
followupFlagged */) : 0x0);
if (followup) {
/* PidLidFlagRequest */
- e_ews_message_add_extended_property_distinguished_tag_string (msg, "Common", 0x8530,
followup);
+ e_ews_request_add_extended_property_distinguished_tag_string (request, "Common",
0x8530, followup);
/* PidTagToDoItemFlags */
- e_ews_message_add_extended_property_tag_int (msg, 0x0e2b, 1);
+ e_ews_request_add_extended_property_tag_int (request, 0x0e2b, 1);
}
if (followup && completed_tt != (time_t) 0) {
@@ -237,33 +236,33 @@ create_mime_message_cb (ESoapMessage *msg,
completed_tt = completed_tt - (completed_tt % 60);
/* PidTagFlagCompleteTime */
- e_ews_message_add_extended_property_tag_time (msg, 0x1091, completed_tt);
+ e_ews_request_add_extended_property_tag_time (request, 0x1091, completed_tt);
/* PidLidTaskDateCompleted */
- e_ews_message_add_extended_property_distinguished_tag_time (msg, "Task", 0x810f,
completed_tt);
+ e_ews_request_add_extended_property_distinguished_tag_time (request, "Task", 0x810f,
completed_tt);
/* PidLidTaskStatus */
- e_ews_message_add_extended_property_distinguished_tag_int (msg, "Task", 0x8101, 2);
+ e_ews_request_add_extended_property_distinguished_tag_int (request, "Task", 0x8101,
2);
/* PidLidPercentComplete */
- e_ews_message_add_extended_property_distinguished_tag_double (msg, "Task", 0x8102,
1.0);
+ e_ews_request_add_extended_property_distinguished_tag_double (request, "Task",
0x8102, 1.0);
/* PidLidTaskComplete */
- e_ews_message_add_extended_property_distinguished_tag_boolean (msg, "Task", 0x811c,
TRUE);
+ e_ews_request_add_extended_property_distinguished_tag_boolean (request, "Task",
0x811c, TRUE);
}
if (followup && dueby_tt != (time_t) 0 && completed_tt == (time_t) 0) {
/* PidLidTaskStatus */
- e_ews_message_add_extended_property_distinguished_tag_int (msg, "Task", 0x8101, 0);
+ e_ews_request_add_extended_property_distinguished_tag_int (request, "Task", 0x8101,
0);
/* PidLidPercentComplete */
- e_ews_message_add_extended_property_distinguished_tag_double (msg, "Task", 0x8102,
0.0);
+ e_ews_request_add_extended_property_distinguished_tag_double (request, "Task",
0x8102, 0.0);
/* PidLidTaskDueDate */
- e_ews_message_add_extended_property_distinguished_tag_time (msg, "Task", 0x8105,
dueby_tt);
+ e_ews_request_add_extended_property_distinguished_tag_time (request, "Task", 0x8105,
dueby_tt);
/* PidLidTaskComplete */
- e_ews_message_add_extended_property_distinguished_tag_boolean (msg, "Task", 0x811c,
FALSE);
+ e_ews_request_add_extended_property_distinguished_tag_boolean (request, "Task",
0x811c, FALSE);
}
}
@@ -272,13 +271,13 @@ create_mime_message_cb (ESoapMessage *msg,
settings = e_ews_connection_ref_settings (create_data->cnc);
if (settings) {
- e_soap_message_start_element (msg, "Sender", NULL, NULL);
+ e_soap_request_start_element (request, "Sender", NULL, NULL);
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "EmailAddress", NULL,
camel_ews_settings_get_email (settings), NULL, NULL);
- e_soap_message_end_element (msg); /* Mailbox */
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "EmailAddress", NULL,
camel_ews_settings_get_email (settings), NULL, NULL);
+ e_soap_request_end_element (request); /* Mailbox */
- e_soap_message_end_element (msg); /* Sender */
+ e_soap_request_end_element (request); /* Sender */
}
g_clear_object (&settings);
}
@@ -297,9 +296,9 @@ create_mime_message_cb (ESoapMessage *msg,
filter_recipients (create_data->message, create_data->recipients, recip_to, recip_cc,
recip_bcc);
- write_recipients (msg, "ToRecipients", recip_to, is_resend);
- write_recipients (msg, "CcRecipients", recip_cc, is_resend);
- write_recipients (msg, "BccRecipients", recip_bcc, is_resend);
+ write_recipients (request, "ToRecipients", recip_to, is_resend);
+ write_recipients (request, "CcRecipients", recip_cc, is_resend);
+ write_recipients (request, "BccRecipients", recip_bcc, is_resend);
g_hash_table_destroy (recip_to);
g_hash_table_destroy (recip_cc);
@@ -310,19 +309,19 @@ create_mime_message_cb (ESoapMessage *msg,
const gchar *from_name = NULL, *from_email = NULL;
if (camel_internet_address_get (CAMEL_INTERNET_ADDRESS (create_data->from), 0, &from_name,
&from_email) && from_email) {
- e_soap_message_start_element (msg, "From", NULL, NULL);
+ e_soap_request_start_element (request, "From", NULL, NULL);
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
if (from_name && *from_name)
- e_ews_message_write_string_parameter_with_attribute (msg, "Name", NULL,
from_name, NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "EmailAddress", NULL,
from_email, NULL, NULL);
- e_soap_message_end_element (msg); /* Mailbox */
+ e_ews_request_write_string_parameter_with_attribute (request, "Name", NULL,
from_name, NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "EmailAddress", NULL,
from_email, NULL, NULL);
+ e_soap_request_end_element (request); /* Mailbox */
- e_soap_message_end_element (msg); /* From */
+ e_soap_request_end_element (request); /* From */
}
}
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"IsRead",
NULL,
@@ -330,7 +329,7 @@ create_mime_message_cb (ESoapMessage *msg,
NULL,
NULL);
- e_soap_message_end_element (msg); /* Message */
+ e_soap_request_end_element (request); /* Message */
g_free (create_data);
diff --git a/src/EWS/common/e-ews-connection-utils.c b/src/EWS/common/e-ews-connection-utils.c
index 89cb108e..85bcbb32 100644
--- a/src/EWS/common/e-ews-connection-utils.c
+++ b/src/EWS/common/e-ews-connection-utils.c
@@ -16,6 +16,28 @@
#include "e-soup-auth-negotiate.h"
#include "camel-ews-settings.h"
+void
+e_ews_connection_utils_set_user_agent_header (SoupMessage *message,
+ CamelEwsSettings *settings)
+{
+ g_return_if_fail (SOUP_IS_MESSAGE (message));
+ g_return_if_fail (CAMEL_IS_EWS_SETTINGS (settings));
+
+ if (camel_ews_settings_get_override_user_agent (settings)) {
+ gchar *user_agent;
+
+ user_agent = camel_ews_settings_dup_user_agent (settings);
+
+ if (user_agent && *user_agent) {
+ soup_message_headers_append (soup_message_get_request_headers (message),
"User-Agent", user_agent);
+ }
+
+ g_free (user_agent);
+ } else {
+ soup_message_headers_append (soup_message_get_request_headers (message), "User-Agent",
"Evolution/" VERSION);
+ }
+}
+
static gpointer
ews_unref_in_thread_func (gpointer data)
{
@@ -195,7 +217,7 @@ e_ews_connection_utils_check_x_ms_credential_headers (SoupMessage *message,
gboolean *out_expired,
gchar **out_service_url)
{
- SoupMessageHedaers *response_headers;
+ SoupMessageHeaders *response_headers;
gboolean any_found = FALSE;
const gchar *header;
@@ -418,11 +440,10 @@ ews_connection_utils_maybe_prepare_bearer_auth (EEwsConnection *cnc,
g_warn_if_fail (uri != NULL);
if (!uri) {
- soup_message_set_status_full (message, SOUP_STATUS_MALFORMED, "Cannot get host from
message");
return FALSE;
}
- soup_auth = g_object_new (E_TYPE_SOUP_AUTH_BEARER, SOUP_AUTH_HOST, g_uri_get_host (uri),
NULL);
+ soup_auth = g_object_new (E_TYPE_SOUP_AUTH_BEARER, NULL);
success = ews_connection_utils_setup_bearer_auth (cnc, session, message, FALSE,
E_SOUP_AUTH_BEARER (soup_auth), cancellable, &local_error);
if (success)
diff --git a/src/EWS/common/e-ews-connection-utils.h b/src/EWS/common/e-ews-connection-utils.h
index 95deb9f2..62335b87 100644
--- a/src/EWS/common/e-ews-connection-utils.h
+++ b/src/EWS/common/e-ews-connection-utils.h
@@ -15,6 +15,9 @@ G_BEGIN_DECLS
#define E_EWS_CONNECTION_UTILS_CHECK_ELEMENT(element_name, expected_name) \
(e_ews_connection_utils_check_element (G_STRFUNC, (element_name), (expected_name)))
+void e_ews_connection_utils_set_user_agent_header
+ (SoupMessage *message,
+ CamelEwsSettings *settings);
void e_ews_connection_utils_unref_in_thread (gpointer object);
gboolean e_ews_connection_utils_check_element (const gchar *function_name,
const gchar *element_name,
diff --git a/src/EWS/common/e-ews-connection.c b/src/EWS/common/e-ews-connection.c
index d2469b07..80e84a47 100644
--- a/src/EWS/common/e-ews-connection.c
+++ b/src/EWS/common/e-ews-connection.c
@@ -23,7 +23,7 @@
#include "e-ews-connection.h"
#include "e-ews-connection-utils.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
#include "e-ews-item-change.h"
#include "e-ews-debug.h"
#include "e-ews-notification.h"
@@ -143,7 +143,7 @@ struct _EwsAsyncData {
};
struct _EwsNode {
- ESoapMessage *msg;
+ ESoapRequest *request;
EEwsConnection *cnc;
GSimpleAsyncResult *simple;
@@ -785,7 +785,7 @@ ews_cancel_request (GCancellable *cancellable,
EwsNode *node = user_data;
EEwsConnection *cnc = node->cnc;
GSimpleAsyncResult *simple = node->simple;
- ESoapMessage *msg = node->msg;
+ ESoapRequest *request = node->msg;
GSList *found;
QUEUE_LOCK (cnc);
@@ -799,15 +799,15 @@ ews_cancel_request (GCancellable *cancellable,
G_IO_ERROR_CANCELLED,
_("Operation Cancelled"));
if (found) {
- ews_connection_schedule_cancel_message (cnc, SOUP_MESSAGE (msg));
+ ews_connection_schedule_cancel_message (cnc, SOUP_MESSAGE (request));
} else {
- ews_response_cb (cnc->priv->soup_session, SOUP_MESSAGE (msg), node);
+ ews_response_cb (cnc->priv->soup_session, SOUP_MESSAGE (request), node);
}
}
void
e_ews_connection_queue_request (EEwsConnection *cnc,
- ESoapMessage *msg,
+ ESoapRequest *request,
EEwsResponseCallback cb,
gint pri,
GCancellable *cancellable,
@@ -918,7 +918,7 @@ ews_response_cb (SoupSession *session,
const gchar *persistent_auth;
gint wait_ms = 0;
- persistent_auth = soup_message_headers_get_one (soup_message_get_response_headers (msg),
"Persistent-Auth");
+ persistent_auth = soup_message_headers_get_one (soup_message_get_response_headers (request),
"Persistent-Auth");
if (persistent_auth && g_ascii_strcasecmp (persistent_auth, "false") == 0) {
SoupSessionFeature *feature;
@@ -940,11 +940,11 @@ ews_response_cb (SoupSession *session,
enode->simple, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED,
"%s", msg->reason_phrase);
goto exit;
- } else if (soup_message_get_status (msg) == SOUP_STATUS_UNAUTHORIZED) {
- if (soup_message_get_response_headers (msg)) {
+ } else if (soup_message_get_status (request) == SOUP_STATUS_UNAUTHORIZED) {
+ if (soup_message_get_response_headers (request)) {
const gchar *diagnostics;
- diagnostics = soup_message_headers_get_list (soup_message_get_response_headers (msg),
"X-MS-DIAGNOSTICS");
+ diagnostics = soup_message_headers_get_list (soup_message_get_response_headers
(request), "X-MS-DIAGNOSTICS");
if (diagnostics && strstr (diagnostics, "invalid_grant")) {
g_simple_async_result_set_error (
enode->simple,
@@ -981,7 +981,7 @@ ews_response_cb (SoupSession *session,
goto exit;
}
- response = e_soap_message_parse_response ((ESoapMessage *) msg);
+ response = e_soap_request_parse_response ((ESoapMessage *) msg);
if (response == NULL) {
g_simple_async_result_set_error (
@@ -1025,7 +1025,7 @@ ews_response_cb (SoupSession *session,
if (cancellable)
g_object_ref (cancellable);
- g_object_ref (msg);
+ g_object_ref (request);
flag = e_flag_new ();
while (wait_ms > 0 && !g_cancellable_is_cancelled (cancellable)) {
@@ -1067,12 +1067,12 @@ ews_response_cb (SoupSession *session,
if (g_cancellable_is_cancelled (cancellable)) {
g_clear_object (&cancellable);
- g_object_unref (msg);
+ g_object_unref (request);
} else {
EwsNode *new_node;
new_node = ews_node_new ();
- new_node->msg = E_SOAP_MESSAGE (msg); /* takes ownership */
+ new_node->msg = E_SOAP_REQUEST (request); /* takes ownership */
new_node->pri = enode->pri;
new_node->cb = enode->cb;
new_node->cnc = enode->cnc;
@@ -3129,7 +3129,7 @@ autodiscover_response_cb (SoupSession *session,
GSimpleAsyncResult *simple = data;
struct _autodiscover_data *ad;
EwsUrls exch_urls, expr_urls;
- guint status = soup_message_get_status (msg);
+ guint status = soup_message_get_status (request);
xmlDoc *doc;
xmlNode *node;
gchar *str;
@@ -3156,7 +3156,7 @@ autodiscover_response_cb (SoupSession *session,
gboolean expired = FALSE;
gchar *service_url = NULL;
- if (e_ews_connection_utils_check_x_ms_credential_headers (msg, NULL, &expired, &service_url)
&& expired) {
+ if (e_ews_connection_utils_check_x_ms_credential_headers (request, NULL, &expired,
&service_url) && expired) {
e_ews_connection_utils_expired_password_to_error (service_url, &error);
} else {
g_set_error (
@@ -3415,7 +3415,7 @@ post_restarted (SoupMessage *msg,
/* In violation of RFC2616, libsoup will change a POST request to
* a GET on receiving a 302 redirect. */
printf ("Working around libsoup bug with redirect\n");
- g_object_set (msg, SOUP_MESSAGE_METHOD, "POST", NULL);
+ g_object_set (request, SOUP_MESSAGE_METHOD, "POST", NULL);
soup_message_set_request (
msg, "text/xml; charset=utf-8", SOUP_MEMORY_COPY,
@@ -3453,12 +3453,10 @@ e_ews_get_msg_for_url (EEwsConnection *cnc,
}
if (cnc->priv->source)
- e_soup_ssl_trust_connect (msg, cnc->priv->source);
-
- e_ews_message_attach_chunk_allocator (msg);
+ e_soup_ssl_trust_connect (request, cnc->priv->source);
settings = e_ews_connection_ref_settings (cnc);
- e_ews_message_set_user_agent_header (msg, settings);
+ e_ews_connection_utils_set_user_agent_header (request, settings);
g_clear_object (&settings);
if (buf != NULL) {
@@ -3884,7 +3882,7 @@ struct _oal_req_data {
/* for dowloading oal file */
gchar *cache_filename;
GError *error;
- EwsProgressFn progress_fn;
+ ESoapResponseProgressFn progress_fn;
gpointer progress_data;
gsize response_size;
gsize received_size;
@@ -4385,7 +4383,7 @@ ews_soup_got_headers (SoupMessage *msg,
struct _oal_req_data *data = (struct _oal_req_data *) user_data;
const gchar *size;
- size = soup_message_headers_get_one (soup_message_get_response_headers (msg), "Content-Length");
+ size = soup_message_headers_get_one (soup_message_get_response_headers (request), "Content-Length");
if (size)
data->response_size = strtol (size, NULL, 10);
@@ -4437,7 +4435,7 @@ ews_soup_got_chunk (SoupMessage *msg,
gboolean
e_ews_connection_download_oal_file_sync (EEwsConnection *cnc,
const gchar *cache_filename,
- EwsProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error)
@@ -4468,7 +4466,7 @@ e_ews_connection_download_oal_file_sync (EEwsConnection *cnc,
void
e_ews_connection_download_oal_file (EEwsConnection *cnc,
const gchar *cache_filename,
- EwsProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -4566,7 +4564,7 @@ e_ews_connection_set_mailbox (EEwsConnection *cnc,
}
static void
-ews_append_additional_props_to_msg (ESoapMessage *msg,
+ews_append_additional_props_to_msg (ESoapRequest *request,
const EEwsAdditionalProps *add_props)
{
GSList *l;
@@ -4574,14 +4572,14 @@ ews_append_additional_props_to_msg (ESoapMessage *msg,
if (!add_props)
return;
- e_soap_message_start_element (msg, "AdditionalProperties", NULL, NULL);
+ e_soap_request_start_element (request, "AdditionalProperties", NULL, NULL);
if (add_props->field_uri) {
gchar **prop = g_strsplit (add_props->field_uri, " ", 0);
gint i = 0;
while (prop[i]) {
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL,
"FieldURI", prop[i]);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL,
"FieldURI", prop[i]);
i++;
}
@@ -4592,27 +4590,27 @@ ews_append_additional_props_to_msg (ESoapMessage *msg,
for (l = add_props->extended_furis; l != NULL; l = g_slist_next (l)) {
EEwsExtendedFieldURI *ex_furi = l->data;
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedFieldURI", NULL, NULL);
if (ex_furi->distinguished_prop_set_id)
- e_soap_message_add_attribute (msg, "DistinguishedPropertySetId",
ex_furi->distinguished_prop_set_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "DistinguishedPropertySetId",
ex_furi->distinguished_prop_set_id, NULL, NULL);
if (ex_furi->prop_tag)
- e_soap_message_add_attribute (msg, "PropertyTag", ex_furi->prop_tag, NULL,
NULL);
+ e_soap_request_add_attribute (request, "PropertyTag", ex_furi->prop_tag,
NULL, NULL);
if (ex_furi->prop_set_id)
- e_soap_message_add_attribute (msg, "PropertySetId", ex_furi->prop_set_id,
NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertySetId", ex_furi->prop_set_id,
NULL, NULL);
if (ex_furi->prop_name)
- e_soap_message_add_attribute (msg, "PropertyName", ex_furi->prop_name, NULL,
NULL);
+ e_soap_request_add_attribute (request, "PropertyName", ex_furi->prop_name,
NULL, NULL);
if (ex_furi->prop_id)
- e_soap_message_add_attribute (msg, "PropertyId", ex_furi->prop_id, NULL,
NULL);
+ e_soap_request_add_attribute (request, "PropertyId", ex_furi->prop_id, NULL,
NULL);
if (ex_furi->prop_type)
- e_soap_message_add_attribute (msg, "PropertyType", ex_furi->prop_type, NULL,
NULL);
+ e_soap_request_add_attribute (request, "PropertyType", ex_furi->prop_type,
NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
}
@@ -4620,59 +4618,59 @@ ews_append_additional_props_to_msg (ESoapMessage *msg,
for (l = add_props->indexed_furis; l != NULL; l = g_slist_next (l)) {
EEwsIndexedFieldURI *in_furi = l->data;
- e_soap_message_start_element (msg, "IndexedFieldURI", NULL, NULL);
+ e_soap_request_start_element (request, "IndexedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", in_furi->field_uri, NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldIndex", in_furi->field_index, NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldURI", in_furi->field_uri, NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldIndex", in_furi->field_index, NULL,
NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
static void
-ews_write_sort_order_to_msg (ESoapMessage *msg,
+ews_write_sort_order_to_msg (ESoapRequest *request,
EwsSortOrder *sort_order)
{
if (!sort_order)
return;
- e_soap_message_start_element (msg, "SortOrder", NULL, NULL);
- e_soap_message_start_element (msg, "FieldOrder", NULL, NULL);
- e_soap_message_add_attribute (msg, "Order", sort_order->order, NULL, NULL);
+ e_soap_request_start_element (request, "SortOrder", NULL, NULL);
+ e_soap_request_start_element (request, "FieldOrder", NULL, NULL);
+ e_soap_request_add_attribute (request, "Order", sort_order->order, NULL, NULL);
if (sort_order->uri_type == NORMAL_FIELD_URI)
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
(gchar *) sort_order->field_uri);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL,
"FieldURI", (gchar *) sort_order->field_uri);
else if (sort_order->uri_type == INDEXED_FIELD_URI) {
EEwsIndexedFieldURI *in_furi = sort_order->field_uri;
- e_soap_message_start_element (msg, "IndexedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", in_furi->field_uri, NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldIndex", in_furi->field_index, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "IndexedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldURI", in_furi->field_uri, NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldIndex", in_furi->field_index, NULL, NULL);
+ e_soap_request_end_element (request);
} else if (sort_order->uri_type == EXTENDED_FIELD_URI) {
EEwsExtendedFieldURI *ex_furi = sort_order->field_uri;
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedFieldURI", NULL, NULL);
if (ex_furi->distinguished_prop_set_id)
- e_soap_message_add_attribute (msg, "DistinguishedPropertySetId",
ex_furi->distinguished_prop_set_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "DistinguishedPropertySetId",
ex_furi->distinguished_prop_set_id, NULL, NULL);
if (ex_furi->prop_set_id)
- e_soap_message_add_attribute (msg, "PropertySetId", ex_furi->prop_set_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertySetId", ex_furi->prop_set_id, NULL,
NULL);
if (ex_furi->prop_name)
- e_soap_message_add_attribute (msg, "PropertyName", ex_furi->prop_name, NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertyName", ex_furi->prop_name, NULL,
NULL);
if (ex_furi->prop_id)
- e_soap_message_add_attribute (msg, "PropertyId", ex_furi->prop_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertyId", ex_furi->prop_id, NULL, NULL);
if (ex_furi->prop_type)
- e_soap_message_add_attribute (msg, "PropertyType", ex_furi->prop_type, NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertyType", ex_furi->prop_type, NULL,
NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
}
- e_soap_message_end_element (msg);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
+ e_soap_request_end_element (request);
}
/**
@@ -4700,42 +4698,40 @@ e_ews_connection_sync_folder_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "SyncFolderItems",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
- e_soap_message_start_element (msg, "ItemShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, default_props);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "SyncFolderItems",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
+ e_soap_request_start_element (request, "ItemShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, default_props);
- ews_append_additional_props_to_msg (msg, add_props);
+ ews_append_additional_props_to_msg (request, add_props);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "SyncFolderId", "messages", NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FolderId", NULL, NULL, "Id", fid);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "SyncFolderId", "messages", NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id", fid);
+ e_soap_request_end_element (request);
if (last_sync_state)
- e_ews_message_write_string_parameter (msg, "SyncState", "messages", last_sync_state);
+ e_ews_request_write_string_parameter (request, "SyncState", "messages", last_sync_state);
/* Max changes requested */
- e_ews_message_write_int_parameter (msg, "MaxChangesReturned", "messages", max_entries);
+ e_ews_request_write_int_parameter (request, "MaxChangesReturned", "messages", max_entries);
/* Complete the footer and print the request */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -4746,7 +4742,7 @@ e_ews_connection_sync_folder_items (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, sync_folder_items_response_cb,
+ cnc, request, sync_folder_items_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -4827,7 +4823,7 @@ e_ews_connection_sync_folder_items_sync (EEwsConnection *cnc,
}
static void
-ews_append_folder_ids_to_msg (ESoapMessage *msg,
+ews_append_folder_ids_to_msg (ESoapRequest *request,
const gchar *email,
GSList *folder_ids)
{
@@ -4836,28 +4832,28 @@ ews_append_folder_ids_to_msg (ESoapMessage *msg,
for (l = folder_ids; l != NULL; l = g_slist_next (l)) {
const EwsFolderId *fid = l->data;
- e_ews_folder_id_append_to_msg (msg, email, fid);
+ e_ews_folder_id_append_to_msg (request, email, fid);
}
}
static void
-ews_connection_write_only_ids_restriction (ESoapMessage *msg,
+ews_connection_write_only_ids_restriction (ESoapRequest *request,
GPtrArray *only_ids)
{
guint ii;
- g_return_if_fail (E_IS_SOAP_MESSAGE (msg));
+ g_return_if_fail (E_IS_SOAP_REQUEST (request));
g_return_if_fail (only_ids && only_ids->len);
for (ii = 0; ii < only_ids->len; ii++) {
const gchar *itemid = g_ptr_array_index (only_ids, ii);
- e_soap_message_start_element (msg, "IsEqualTo", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"item:ItemId");
- e_soap_message_start_element (msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "Constant", NULL, NULL, "Value",
itemid);
- e_soap_message_end_element (msg); /* FieldURIOrConstant */
- e_soap_message_end_element (msg); /* IsEqualTo */
+ e_soap_request_start_element (request, "IsEqualTo", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL,
"FieldURI", "item:ItemId");
+ e_soap_request_start_element (request, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "Constant", NULL, NULL,
"Value", itemid);
+ e_soap_request_end_element (request); /* FieldURIOrConstant */
+ e_soap_request_end_element (request); /* IsEqualTo */
}
}
@@ -4892,67 +4888,65 @@ e_ews_connection_find_folder_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "FindItem",
- "Traversal",
- "Shallow",
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
- e_soap_message_start_element (msg, "ItemShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, default_props);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "FindItem",
+ "Traversal",
+ "Shallow",
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
+ e_soap_request_start_element (request, "ItemShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, default_props);
- ews_append_additional_props_to_msg (msg, add_props);
+ ews_append_additional_props_to_msg (request, add_props);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
/*write restriction message based on query*/
if (convert_query_cb) {
- e_soap_message_start_element (msg, "Restriction", "messages", NULL);
+ e_soap_request_start_element (request, "Restriction", "messages", NULL);
if (only_ids && only_ids->len) {
- e_soap_message_start_element (msg, "And", "messages", NULL);
- e_soap_message_start_element (msg, "Or", "messages", NULL);
- ews_connection_write_only_ids_restriction (msg, only_ids);
- e_soap_message_end_element (msg); /* Or */
+ e_soap_request_start_element (request, "And", "messages", NULL);
+ e_soap_request_start_element (request, "Or", "messages", NULL);
+ ews_connection_write_only_ids_restriction (request, only_ids);
+ e_soap_request_end_element (request); /* Or */
}
- convert_query_cb (msg, query, type);
+ convert_query_cb (request, query, type);
if (only_ids && only_ids->len)
- e_soap_message_end_element (msg); /* And */
+ e_soap_request_end_element (request); /* And */
- e_soap_message_end_element (msg); /* Restriction */
+ e_soap_request_end_element (request); /* Restriction */
} else if (only_ids && only_ids->len) {
- e_soap_message_start_element (msg, "Restriction", "messages", NULL);
- ews_connection_write_only_ids_restriction (msg, only_ids);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Restriction", "messages", NULL);
+ ews_connection_write_only_ids_restriction (request, only_ids);
+ e_soap_request_end_element (request);
}
if (sort_order)
- ews_write_sort_order_to_msg (msg, sort_order);
+ ews_write_sort_order_to_msg (request, sort_order);
- e_soap_message_start_element (msg, "ParentFolderIds", "messages", NULL);
+ e_soap_request_start_element (request, "ParentFolderIds", "messages", NULL);
if (fid->is_distinguished_id)
- e_ews_message_write_string_parameter_with_attribute (msg, "DistinguishedFolderId", NULL,
NULL, "Id", fid->id);
+ e_ews_request_write_string_parameter_with_attribute (request, "DistinguishedFolderId", NULL,
NULL, "Id", fid->id);
else
- e_ews_message_write_string_parameter_with_attribute (msg, "FolderId", NULL, NULL, "Id",
fid->id);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id",
fid->id);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
/* Complete the footer and print the request */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -4963,7 +4957,7 @@ e_ews_connection_find_folder_items (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, find_folder_items_response_cb,
+ cnc, request, find_folder_items_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -5045,37 +5039,35 @@ e_ews_connection_sync_folder_hierarchy (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "SyncFolderHierarchy",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, "AllProperties");
- e_soap_message_start_element (msg, "AdditionalProperties", NULL, NULL);
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyTag", "4340", NULL, NULL); /* PidTagAttributeHidden */
- e_soap_message_add_attribute (msg, "PropertyType", "Boolean", NULL, NULL);
- e_soap_message_end_element (msg); /* ExtendedFieldURI */
- e_soap_message_end_element (msg); /* AdditionalProperties */
- e_soap_message_end_element (msg); /* FolderShape */
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "SyncFolderHierarchy",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, "AllProperties");
+ e_soap_request_start_element (request, "AdditionalProperties", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (request, "PropertyTag", "4340", NULL, NULL); /* PidTagAttributeHidden */
+ e_soap_request_add_attribute (request, "PropertyType", "Boolean", NULL, NULL);
+ e_soap_request_end_element (request); /* ExtendedFieldURI */
+ e_soap_request_end_element (request); /* AdditionalProperties */
+ e_soap_request_end_element (request); /* FolderShape */
if (sync_state)
- e_ews_message_write_string_parameter (msg, "SyncState", "messages", sync_state);
+ e_ews_request_write_string_parameter (request, "SyncState", "messages", sync_state);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -5087,7 +5079,7 @@ e_ews_connection_sync_folder_hierarchy (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, sync_hierarchy_response_cb,
+ cnc, request, sync_hierarchy_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -5233,70 +5225,68 @@ e_ews_connection_get_items (EEwsConnection *cnc,
gboolean include_mime,
const gchar *mime_directory,
EEwsBodyType body_type,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *l;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetItem",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetItem",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
if (progress_fn && progress_data)
- e_soap_message_set_progress_fn (msg, progress_fn, progress_data);
+ e_soap_request_set_progress_fn (request, progress_fn, progress_data);
- e_soap_message_start_element (msg, "ItemShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, default_props);
+ e_soap_request_start_element (request, "ItemShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, default_props);
if (include_mime)
- e_ews_message_write_string_parameter (msg, "IncludeMimeContent", NULL, "true");
+ e_ews_request_write_string_parameter (request, "IncludeMimeContent", NULL, "true");
else
- e_ews_message_write_string_parameter (msg, "IncludeMimeContent", NULL, "false");
+ e_ews_request_write_string_parameter (request, "IncludeMimeContent", NULL, "false");
if (mime_directory)
- e_soap_message_store_node_data (msg, "MimeContent", mime_directory, TRUE);
+ e_soap_request_store_node_data (request, "MimeContent", mime_directory, TRUE);
switch (body_type) {
case E_EWS_BODY_TYPE_BEST:
- e_ews_message_write_string_parameter (msg, "BodyType", NULL, "Best");
+ e_ews_request_write_string_parameter (request, "BodyType", NULL, "Best");
break;
case E_EWS_BODY_TYPE_HTML:
- e_ews_message_write_string_parameter (msg, "BodyType", NULL, "HTML");
+ e_ews_request_write_string_parameter (request, "BodyType", NULL, "HTML");
break;
case E_EWS_BODY_TYPE_TEXT:
- e_ews_message_write_string_parameter (msg, "BodyType", NULL, "Text");
+ e_ews_request_write_string_parameter (request, "BodyType", NULL, "Text");
break;
case E_EWS_BODY_TYPE_ANY:
break;
}
- ews_append_additional_props_to_msg (msg, add_props);
+ ews_append_additional_props_to_msg (request, add_props);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "ItemIds", "messages", NULL);
+ e_soap_request_start_element (request, "ItemIds", "messages", NULL);
for (l = ids; l != NULL; l = g_slist_next (l))
- e_ews_message_write_string_parameter_with_attribute (msg, "ItemId", NULL, NULL, "Id",
l->data);
+ e_ews_request_write_string_parameter_with_attribute (request, "ItemId", NULL, NULL, "Id",
l->data);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -5307,7 +5297,7 @@ e_ews_connection_get_items (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_items_response_cb,
+ cnc, request, get_items_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -5354,7 +5344,7 @@ e_ews_connection_get_items_sync (EEwsConnection *cnc,
const gchar *mime_directory,
EEwsBodyType body_type,
GSList **items,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error)
@@ -5470,43 +5460,39 @@ e_ews_connection_delete_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "DeleteItem",
- "DeleteType",
- ews_delete_type_to_str (delete_type),
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "DeleteItem",
+ "DeleteType",
+ ews_delete_type_to_str (delete_type),
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
if (send_cancels)
- e_soap_message_add_attribute (
- msg, "SendMeetingCancellations",
+ e_soap_request_add_attribute (request, "SendMeetingCancellations",
ews_send_cancels_to_str (send_cancels), NULL, NULL);
if (affected_tasks)
- e_soap_message_add_attribute (
- msg, "AffectedTaskOccurrences",
+ e_soap_request_add_attribute (request, "AffectedTaskOccurrences",
ews_affected_tasks_to_str (affected_tasks), NULL, NULL);
- e_soap_message_start_element (msg, "ItemIds", "messages", NULL);
+ e_soap_request_start_element (request, "ItemIds", "messages", NULL);
for (iter = ids; iter != NULL; iter = g_slist_next (iter))
- e_ews_message_write_string_parameter_with_attribute (msg, "ItemId", NULL, NULL, "Id",
iter->data);
+ e_ews_request_write_string_parameter_with_attribute (request, "ItemId", NULL, NULL, "Id",
iter->data);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -5517,7 +5503,7 @@ e_ews_connection_delete_items (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, delete_item_response_cb,
+ cnc, request, delete_item_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -5535,56 +5521,52 @@ e_ews_connection_delete_item (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gchar buffer[32];
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "DeleteItem",
- "DeleteType",
- ews_delete_type_to_str (delete_type),
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "DeleteItem",
+ "DeleteType",
+ ews_delete_type_to_str (delete_type),
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
if (send_cancels)
- e_soap_message_add_attribute (
- msg, "SendMeetingCancellations",
+ e_soap_request_add_attribute (request, "SendMeetingCancellations",
ews_send_cancels_to_str (send_cancels), NULL, NULL);
if (affected_tasks != EWS_NONE_OCCURRENCES)
- e_soap_message_add_attribute (
- msg, "AffectedTaskOccurrences",
+ e_soap_request_add_attribute (request, "AffectedTaskOccurrences",
ews_affected_tasks_to_str (affected_tasks), NULL, NULL);
- e_soap_message_start_element (msg, "ItemIds", "messages", NULL);
+ e_soap_request_start_element (request, "ItemIds", "messages", NULL);
if (index) {
- e_soap_message_start_element (msg, "OccurrenceItemId", NULL, NULL);
- e_soap_message_add_attribute (msg, "RecurringMasterId", item_id->id, NULL, NULL);
+ e_soap_request_start_element (request, "OccurrenceItemId", NULL, NULL);
+ e_soap_request_add_attribute (request, "RecurringMasterId", item_id->id, NULL, NULL);
if (item_id->change_key)
- e_soap_message_add_attribute (msg, "ChangeKey", item_id->change_key, NULL, NULL);
+ e_soap_request_add_attribute (request, "ChangeKey", item_id->change_key, NULL, NULL);
snprintf (buffer, 32, "%u", index);
- e_soap_message_add_attribute (msg, "InstanceIndex", buffer, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_add_attribute (request, "InstanceIndex", buffer, NULL, NULL);
+ e_soap_request_end_element (request);
} else {
- e_soap_message_start_element (msg, "ItemId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", item_id->id, NULL, NULL);
+ e_soap_request_start_element (request, "ItemId", NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", item_id->id, NULL, NULL);
if (item_id->change_key)
- e_soap_message_add_attribute (msg, "ChangeKey", item_id->change_key, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_add_attribute (request, "ChangeKey", item_id->change_key, NULL, NULL);
+ e_soap_request_end_element (request);
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -5595,7 +5577,7 @@ e_ews_connection_delete_item (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, delete_item_response_cb,
+ cnc, request, delete_item_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -5781,7 +5763,7 @@ xpath_eval (xmlXPathContextPtr ctx,
}
static gboolean
-element_has_child (ESoapMessage *message,
+element_has_child (ESoapRequest *request,
const gchar *path)
{
xmlDocPtr doc;
@@ -5791,7 +5773,7 @@ element_has_child (ESoapMessage *message,
xmlNodePtr node;
gboolean ret = FALSE;
- doc = e_soap_message_get_xml_doc (message);
+ doc = e_soap_request_get_xml_doc (request);
xpctx = xmlXPathNewContext (doc);
xmlXPathRegisterNs (
@@ -5843,7 +5825,7 @@ e_ews_connection_update_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gboolean success;
@@ -5851,46 +5833,36 @@ e_ews_connection_update_items (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "UpdateItem",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "UpdateItem",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
if (conflict_res)
- e_soap_message_add_attribute (
- msg, "ConflictResolution",
- conflict_res, NULL, NULL);
+ e_soap_request_add_attribute (request, "ConflictResolution", conflict_res, NULL, NULL);
if (msg_disposition)
- e_soap_message_add_attribute (
- msg, "MessageDisposition",
- msg_disposition, NULL, NULL);
+ e_soap_request_add_attribute (request, "MessageDisposition", msg_disposition, NULL, NULL);
if (send_invites)
- e_soap_message_add_attribute (
- msg, "SendMeetingInvitationsOrCancellations",
- send_invites, NULL, NULL);
+ e_soap_request_add_attribute (request, "SendMeetingInvitationsOrCancellations", send_invites,
NULL, NULL);
if (folder_id) {
- e_soap_message_start_element (msg, "SavedItemFolderId", "messages", NULL);
- e_ews_message_write_string_parameter_with_attribute (
- msg, "FolderId",
- NULL, NULL, "Id", folder_id);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "SavedItemFolderId", "messages", NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id",
folder_id);
+ e_soap_request_end_element (request);
}
- e_soap_message_start_element (msg, "ItemChanges", "messages", NULL);
+ e_soap_request_start_element (request, "ItemChanges", "messages", NULL);
- success = create_cb (msg, create_user_data, &local_error);
+ success = create_cb (request, create_user_data, &local_error);
- e_soap_message_end_element (msg); /* ItemChanges */
+ e_soap_request_end_element (request); /* ItemChanges */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -5904,20 +5876,20 @@ e_ews_connection_update_items (EEwsConnection *cnc,
if (local_error)
g_simple_async_result_take_error (simple, local_error);
g_simple_async_result_complete_in_idle (simple);
- g_clear_object (&msg);
+ g_clear_object (&request);
/*
* We need to check for both namespaces, because, the message is being wrote without use the types
* namespace. Maybe it is wrong, but the server doesn't complain about that. But this is the reason
* for the first check. The second one, is related to "how it should be" accord with EWS
specifications.
*/
- } else if (!element_has_child (msg,
"/s:Envelope/s:Body/m:UpdateItem/m:ItemChanges/ItemChange/Updates") &&
- !element_has_child (msg,
"/s:Envelope/s:Body/m:UpdateItem/m:ItemChanges/t:ItemChange/t:Updates")) {
+ } else if (!element_has_child (request,
"/s:Envelope/s:Body/m:UpdateItem/m:ItemChanges/ItemChange/Updates") &&
+ !element_has_child (request,
"/s:Envelope/s:Body/m:UpdateItem/m:ItemChanges/t:ItemChange/t:Updates")) {
g_simple_async_result_complete_in_idle (simple);
- g_clear_object (&msg);
+ g_clear_object (&request);
} else {
e_ews_connection_queue_request (
- cnc, msg, get_items_response_cb,
+ cnc, request, get_items_response_cb,
pri, cancellable, simple);
}
@@ -6018,7 +5990,7 @@ e_ews_connection_create_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gboolean success;
@@ -6026,40 +5998,34 @@ e_ews_connection_create_items (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "CreateItem",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "CreateItem",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
if (msg_disposition)
- e_soap_message_add_attribute (
- msg, "MessageDisposition",
- msg_disposition, NULL, NULL);
+ e_soap_request_add_attribute (request, "MessageDisposition", msg_disposition, NULL, NULL);
if (send_invites)
- e_soap_message_add_attribute (
- msg, "SendMeetingInvitations",
- send_invites, NULL, NULL);
+ e_soap_request_add_attribute (request, "SendMeetingInvitations", send_invites, NULL, NULL);
if (fid) {
- e_soap_message_start_element (msg, "SavedItemFolderId", "messages", NULL);
- e_ews_folder_id_append_to_msg (msg, cnc->priv->email, fid);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "SavedItemFolderId", "messages", NULL);
+ e_ews_folder_id_append_to_msg (request, cnc->priv->email, fid);
+ e_soap_request_end_element (request);
}
- e_soap_message_start_element (msg, "Items", "messages", NULL);
+ e_soap_request_start_element (request, "Items", "messages", NULL);
- success = create_cb (msg, create_user_data, &local_error);
+ success = create_cb (request, create_user_data, &local_error);
- e_soap_message_end_element (msg); /* Items */
+ e_soap_request_end_element (request); /* Items */
- e_ews_message_write_footer (msg); /* CreateItem */
+ e_ews_request_write_footer (request); /* CreateItem */
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6071,13 +6037,13 @@ e_ews_connection_create_items (EEwsConnection *cnc,
if (success) {
e_ews_connection_queue_request (
- cnc, msg, get_items_response_cb,
+ cnc, request, get_items_response_cb,
pri, cancellable, simple);
} else {
if (local_error)
g_simple_async_result_take_error (simple, local_error);
g_simple_async_result_complete_in_idle (simple);
- g_clear_object (&msg);
+ g_clear_object (&request);
}
g_object_unref (simple);
@@ -6191,44 +6157,42 @@ e_ews_connection_resolve_names (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "ResolveNames",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "ResolveNames",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_add_attribute (msg, "SearchScope", get_search_scope_str (scope), NULL, NULL);
+ e_soap_request_add_attribute (request, "SearchScope", get_search_scope_str (scope), NULL, NULL);
if (fetch_contact_data) {
- e_soap_message_add_attribute (msg, "ReturnFullContactData", "true", NULL, NULL);
+ e_soap_request_add_attribute (request, "ReturnFullContactData", "true", NULL, NULL);
if (e_ews_connection_satisfies_server_version (cnc, E_EWS_EXCHANGE_2010_SP2))
- e_soap_message_add_attribute (msg, "ContactDataShape", "AllProperties", NULL, NULL);
+ e_soap_request_add_attribute (request, "ContactDataShape", "AllProperties", NULL,
NULL);
} else {
- e_soap_message_add_attribute (msg, "ReturnFullContactData", "false", NULL, NULL);
+ e_soap_request_add_attribute (request, "ReturnFullContactData", "false", NULL, NULL);
}
if (parent_folder_ids) {
- e_soap_message_start_element (msg, "ParentFolderIds", "messages", NULL);
- ews_append_folder_ids_to_msg (msg, cnc->priv->email, parent_folder_ids);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "ParentFolderIds", "messages", NULL);
+ ews_append_folder_ids_to_msg (request, cnc->priv->email, parent_folder_ids);
+ e_soap_request_end_element (request);
}
- e_ews_message_write_string_parameter (msg, "UnresolvedEntry", "messages", resolve_name);
+ e_ews_request_write_string_parameter (request, "UnresolvedEntry", "messages", resolve_name);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6239,7 +6203,7 @@ e_ews_connection_resolve_names (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, resolve_names_response_cb,
+ cnc, request, resolve_names_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -6492,40 +6456,38 @@ e_ews_connection_expand_dl (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "ExpandDL",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "ExpandDL",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "Mailbox", "messages", NULL);
+ e_soap_request_start_element (request, "Mailbox", "messages", NULL);
if (mb->item_id) {
- e_soap_message_start_element (msg, "ItemId", NULL, NULL);
+ e_soap_request_start_element (request, "ItemId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", mb->item_id->id, NULL, NULL);
- e_soap_message_add_attribute (msg, "ChangeKey", mb->item_id->change_key, NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", mb->item_id->id, NULL, NULL);
+ e_soap_request_add_attribute (request, "ChangeKey", mb->item_id->change_key, NULL, NULL);
- e_soap_message_end_element (msg); /* Mailbox */
+ e_soap_request_end_element (request); /* Mailbox */
} else if (mb->email)
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, mb->email);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, mb->email);
- e_soap_message_end_element (msg); /* Mailbox */
+ e_soap_request_end_element (request); /* Mailbox */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6536,7 +6498,7 @@ e_ews_connection_expand_dl (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, expand_dl_response_cb,
+ cnc, request, expand_dl_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -6646,7 +6608,7 @@ e_ews_connection_update_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gboolean success;
@@ -6654,25 +6616,23 @@ e_ews_connection_update_folder (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "UpdateFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "UpdateFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "FolderChanges", "messages", NULL);
+ e_soap_request_start_element (request, "FolderChanges", "messages", NULL);
- success = create_cb (msg, create_user_data, &local_error);
+ success = create_cb (request, create_user_data, &local_error);
- e_soap_message_end_element (msg); /* FolderChanges */
+ e_soap_request_end_element (request); /* FolderChanges */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6684,13 +6644,13 @@ e_ews_connection_update_folder (EEwsConnection *cnc,
if (success) {
e_ews_connection_queue_request (
- cnc, msg, update_folder_response_cb,
+ cnc, request, update_folder_response_cb,
pri, cancellable, simple);
} else {
if (local_error)
g_simple_async_result_take_error (simple, local_error);
g_simple_async_result_complete_in_idle (simple);
- g_clear_object (&msg);
+ g_clear_object (&request);
}
g_object_unref (simple);
@@ -6788,43 +6748,35 @@ e_ews_connection_move_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "MoveFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "MoveFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "ToFolderId", "messages", NULL);
+ e_soap_request_start_element (request, "ToFolderId", "messages", NULL);
if (to_folder)
- e_ews_message_write_string_parameter_with_attribute (
- msg, "FolderId", NULL,
- NULL, "Id", to_folder);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id",
to_folder);
else
- e_ews_message_write_string_parameter_with_attribute (
- msg, "DistinguishedFolderId", NULL,
- NULL, "Id", "msgfolderroot");
+ e_ews_request_write_string_parameter_with_attribute (request, "DistinguishedFolderId", NULL,
NULL, "Id", "msgfolderroot");
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
- e_ews_message_write_string_parameter_with_attribute (
- msg, "FolderId", NULL,
- NULL, "Id", folder);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id", folder);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6835,7 +6787,7 @@ e_ews_connection_move_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, move_folder_response_cb,
+ cnc, request, move_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -6901,37 +6853,35 @@ e_ews_connection_get_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- TRUE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ TRUE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, folder_shape);
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, folder_shape);
- ews_append_additional_props_to_msg (msg, add_props);
- e_soap_message_end_element (msg);
+ ews_append_additional_props_to_msg (request, add_props);
+ e_soap_request_end_element (request);
if (folder_ids) {
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
- ews_append_folder_ids_to_msg (msg, cnc->priv->email, folder_ids);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
+ ews_append_folder_ids_to_msg (request, cnc->priv->email, folder_ids);
+ e_soap_request_end_element (request);
}
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -6943,7 +6893,7 @@ e_ews_connection_get_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_folder_response_cb,
+ cnc, request, get_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -7022,7 +6972,7 @@ e_ews_connection_create_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const gchar *folder_element;
@@ -7030,37 +6980,33 @@ e_ews_connection_create_folder (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "CreateFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "CreateFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "ParentFolderId", "messages", NULL);
+ e_soap_request_start_element (request, "ParentFolderId", "messages", NULL);
/* If NULL passed for parent_folder_id, use "msgfolderroot" */
if (is_distinguished_id || !parent_folder_id) {
- e_soap_message_start_element (msg, "DistinguishedFolderId", NULL, NULL);
- e_soap_message_add_attribute (
- msg, "Id", parent_folder_id ? parent_folder_id : "msgfolderroot", NULL, NULL);
+ e_soap_request_start_element (request, "DistinguishedFolderId", NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", parent_folder_id ? parent_folder_id :
"msgfolderroot", NULL, NULL);
if (is_distinguished_id && cnc->priv->email) {
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter(
- msg, "EmailAddress", NULL, cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL,
cnc->priv->email);
+ e_soap_request_end_element (request);
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
} else {
- e_ews_message_write_string_parameter_with_attribute (msg, "FolderId", NULL, NULL, "Id",
parent_folder_id);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id",
parent_folder_id);
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
switch (folder_type) {
default:
@@ -7092,15 +7038,15 @@ e_ews_connection_create_folder (EEwsConnection *cnc,
break;
}
- e_soap_message_start_element (msg, "Folders", "messages", NULL);
- e_soap_message_start_element (msg, folder_element, NULL, NULL);
- e_ews_message_write_string_parameter (msg, "FolderClass", NULL, folder_class);
- e_ews_message_write_string_parameter (msg, "DisplayName", NULL, folder_name);
+ e_soap_request_start_element (request, "Folders", "messages", NULL);
+ e_soap_request_start_element (request, folder_element, NULL, NULL);
+ e_ews_request_write_string_parameter (request, "FolderClass", NULL, folder_class);
+ e_ews_request_write_string_parameter (request, "DisplayName", NULL, folder_name);
- e_soap_message_end_element (msg);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -7113,7 +7059,7 @@ e_ews_connection_create_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, create_folder_response_cb,
+ cnc, request, create_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -7191,7 +7137,7 @@ e_ews_connection_move_items (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
@@ -7199,42 +7145,38 @@ e_ews_connection_move_items (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
if (docopy)
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "CopyItem",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "CopyItem",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
else
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "MoveItem",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
-
- e_soap_message_start_element (msg, "ToFolderId", "messages", NULL);
- e_soap_message_start_element (msg, "FolderId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", folder_id, NULL, NULL);
- e_soap_message_end_element (msg); /* FolderId */
- e_soap_message_end_element (msg); /* ToFolderId */
-
- e_soap_message_start_element (msg, "ItemIds", "messages", NULL);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "MoveItem",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
+
+ e_soap_request_start_element (request, "ToFolderId", "messages", NULL);
+ e_soap_request_start_element (request, "FolderId", NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", folder_id, NULL, NULL);
+ e_soap_request_end_element (request); /* FolderId */
+ e_soap_request_end_element (request); /* ToFolderId */
+
+ e_soap_request_start_element (request, "ItemIds", "messages", NULL);
for (iter = ids; iter != NULL; iter = g_slist_next (iter))
- e_ews_message_write_string_parameter_with_attribute (msg, "ItemId", NULL, NULL, "Id",
iter->data);
- e_soap_message_end_element (msg); /* ItemIds */
+ e_ews_request_write_string_parameter_with_attribute (request, "ItemId", NULL, NULL, "Id",
iter->data);
+ e_soap_request_end_element (request); /* ItemIds */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -7245,7 +7187,7 @@ e_ews_connection_move_items (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_items_response_cb,
+ cnc, request, get_items_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -7447,46 +7389,42 @@ e_ews_connection_delete_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "DeleteFolder",
- "DeleteType",
- delete_type,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "DeleteFolder",
+ "DeleteType",
+ delete_type,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
- e_soap_message_start_element (
- msg,
+ e_soap_request_start_element (request,
is_distinguished_id ? "DistinguishedFolderId" : "FolderId",
NULL,
NULL);
- e_soap_message_add_attribute (msg, "Id", folder_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", folder_id, NULL, NULL);
/* This element is required for delegate access */
if (is_distinguished_id && cnc->priv->email) {
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter(
- msg, "EmailAddress", NULL, cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, cnc->priv->email);
+ e_soap_request_end_element (request);
}
- e_soap_message_end_element (msg); /* </DistinguishedFolderId> || </FolderId> */
+ e_soap_request_end_element (request); /* </DistinguishedFolderId> || </FolderId> */
- e_soap_message_end_element (msg); /* </FolderIds> */
+ e_soap_request_end_element (request); /* </FolderIds> */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -7497,7 +7435,7 @@ e_ews_connection_delete_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, delete_folder_response_cb,
+ cnc, request, delete_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -7611,48 +7549,44 @@ e_ews_connection_empty_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "EmptyFolder",
- "DeleteType",
- delete_type,
- cnc->priv->version,
- E_EWS_EXCHANGE_2010,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "EmptyFolder",
+ "DeleteType",
+ delete_type,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2010,
+ FALSE);
- e_soap_message_add_attribute (msg, "DeleteSubFolders", delete_subfolders ? "true" : "false", NULL,
NULL);
+ e_soap_request_add_attribute (request, "DeleteSubFolders", delete_subfolders ? "true" : "false",
NULL, NULL);
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
- e_soap_message_start_element (
- msg,
+ e_soap_request_start_element (request,
is_distinguished_id ? "DistinguishedFolderId" : "FolderId",
NULL,
NULL);
- e_soap_message_add_attribute (msg, "Id", folder_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", folder_id, NULL, NULL);
/* This element is required for delegate access */
if (is_distinguished_id && cnc->priv->email) {
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter(
- msg, "EmailAddress", NULL, cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, cnc->priv->email);
+ e_soap_request_end_element (request);
}
- e_soap_message_end_element (msg); /* </DistinguishedFolderId> || </FolderId> */
+ e_soap_request_end_element (request); /* </DistinguishedFolderId> || </FolderId> */
- e_soap_message_end_element (msg); /* </FolderIds> */
+ e_soap_request_end_element (request); /* </FolderIds> */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -7663,7 +7597,7 @@ e_ews_connection_empty_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, empty_folder_response_cb,
+ cnc, request, empty_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -7790,7 +7724,7 @@ create_attachments_response_cb (ESoapResponse *response,
}
static gboolean
-e_ews_connection_attach_file (ESoapMessage *msg,
+e_ews_connection_attach_file (ESoapRequest *request,
EEwsAttachmentInfo *info,
gboolean contact_photo,
GError **error)
@@ -7842,16 +7776,16 @@ e_ews_connection_attach_file (ESoapMessage *msg,
return FALSE;
}
- e_soap_message_start_element (msg, "FileAttachment", NULL, NULL);
+ e_soap_request_start_element (request, "FileAttachment", NULL, NULL);
prefer_filename = e_ews_attachment_info_get_prefer_filename (info);
- e_ews_message_write_string_parameter (msg, "Name", NULL, prefer_filename ? prefer_filename :
filename);
+ e_ews_request_write_string_parameter (request, "Name", NULL, prefer_filename ? prefer_filename :
filename);
if (contact_photo)
- e_ews_message_write_string_parameter (msg, "IsContactPhoto", NULL, "true");
- e_soap_message_start_element (msg, "Content", NULL, NULL);
- e_soap_message_write_base64 (msg, content, length);
- e_soap_message_end_element (msg); /* "Content" */
- e_soap_message_end_element (msg); /* "FileAttachment" */
+ e_ews_request_write_string_parameter (request, "IsContactPhoto", NULL, "true");
+ e_soap_request_start_element (request, "Content", NULL, NULL);
+ e_soap_request_write_base64 (request, content, length);
+ e_soap_request_end_element (request); /* "Content" */
+ e_soap_request_end_element (request); /* "FileAttachment" */
g_free (filename);
g_free (buffer);
@@ -7869,7 +7803,7 @@ e_ews_connection_create_attachments (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *l;
@@ -7886,29 +7820,27 @@ e_ews_connection_create_attachments (EEwsConnection *cnc,
g_simple_async_result_set_op_res_gpointer (
simple, async_data, (GDestroyNotify) async_data_free);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "CreateAttachment",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "CreateAttachment",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "ParentItemId", "messages", NULL);
- e_soap_message_add_attribute (msg, "Id", parent->id, NULL, NULL);
+ e_soap_request_start_element (request, "ParentItemId", "messages", NULL);
+ e_soap_request_add_attribute (request, "Id", parent->id, NULL, NULL);
if (parent->change_key)
- e_soap_message_add_attribute (msg, "ChangeKey", parent->change_key, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_add_attribute (request, "ChangeKey", parent->change_key, NULL, NULL);
+ e_soap_request_end_element (request);
/* start interation over all items to get the attachemnts */
- e_soap_message_start_element (msg, "Attachments", "messages", NULL);
+ e_soap_request_start_element (request, "Attachments", "messages", NULL);
for (l = files; l != NULL; l = g_slist_next (l))
- if (!e_ews_connection_attach_file (msg, l->data, is_contact_photo, &local_error)) {
+ if (!e_ews_connection_attach_file (request, l->data, is_contact_photo, &local_error)) {
if (local_error != NULL)
g_simple_async_result_take_error (simple, local_error);
g_simple_async_result_complete_in_idle (simple);
@@ -7917,12 +7849,12 @@ e_ews_connection_create_attachments (EEwsConnection *cnc,
return;
}
- e_soap_message_end_element (msg); /* "Attachments" */
+ e_soap_request_end_element (request); /* "Attachments" */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
e_ews_connection_queue_request (
- cnc, msg, create_attachments_response_cb,
+ cnc, request, create_attachments_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -8063,35 +7995,33 @@ e_ews_connection_delete_attachments (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *l;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "DeleteAttachment",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "DeleteAttachment",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
/* start interation over all items to get the attachemnts */
- e_soap_message_start_element (msg, "AttachmentIds", "messages", NULL);
+ e_soap_request_start_element (request, "AttachmentIds", "messages", NULL);
for (l = attachments_ids; l != NULL; l = l->next) {
- e_ews_message_write_string_parameter_with_attribute (msg, "AttachmentId", NULL, NULL, "Id",
l->data);
+ e_ews_request_write_string_parameter_with_attribute (request, "AttachmentId", NULL, NULL,
"Id", l->data);
}
- e_soap_message_end_element (msg); /* "AttachmentIds" */
+ e_soap_request_end_element (request); /* "AttachmentIds" */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -8102,7 +8032,7 @@ e_ews_connection_delete_attachments (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, delete_attachments_response_cb,
+ cnc, request, delete_attachments_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -8248,52 +8178,50 @@ e_ews_connection_get_attachments (EEwsConnection *cnc,
const GSList *ids,
const gchar *cache,
gboolean include_mime,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *l;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetAttachment",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetAttachment",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
/* not sure why I need it, need to check */
if (progress_fn && progress_data)
- e_soap_message_set_progress_fn (msg, progress_fn, progress_data);
+ e_soap_request_set_progress_fn (request, progress_fn, progress_data);
if (cache)
- e_soap_message_store_node_data (msg, "MimeContent Content", cache, TRUE);
+ e_soap_request_store_node_data (request, "MimeContent Content", cache, TRUE);
/* wrtie empty attachments shape, need to discover maybe usefull in some cases*/
- e_soap_message_start_element (msg, "AttachmentShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "IncludeMimeContent", NULL, "true");
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "AttachmentShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "IncludeMimeContent", NULL, "true");
+ e_soap_request_end_element (request);
/* start interation over all items to get the attachemnts */
- e_soap_message_start_element (msg, "AttachmentIds", "messages", NULL);
+ e_soap_request_start_element (request, "AttachmentIds", "messages", NULL);
for (l = ids; l != NULL; l = g_slist_next (l))
- e_ews_message_write_string_parameter_with_attribute (msg, "AttachmentId", NULL, NULL, "Id",
l->data);
+ e_ews_request_write_string_parameter_with_attribute (request, "AttachmentId", NULL, NULL,
"Id", l->data);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -8306,7 +8234,7 @@ e_ews_connection_get_attachments (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_attachments_response_cb,
+ cnc, request, get_attachments_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -8349,7 +8277,7 @@ e_ews_connection_get_attachments_sync (EEwsConnection *cnc,
const gchar *cache,
gboolean include_mime,
GSList **items,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error)
@@ -8555,7 +8483,7 @@ e_ews_connection_get_free_busy (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gboolean success;
@@ -8563,21 +8491,19 @@ e_ews_connection_get_free_busy (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetUserAvailabilityRequest",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetUserAvailabilityRequest",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- success = free_busy_cb (msg, free_busy_user_data, &local_error);
+ success = free_busy_cb (request, free_busy_user_data, &local_error);
- e_ews_message_write_footer (msg); /*GetUserAvailabilityRequest */
+ e_ews_request_write_footer (request); /*GetUserAvailabilityRequest */
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -8589,13 +8515,13 @@ e_ews_connection_get_free_busy (EEwsConnection *cnc,
if (success) {
e_ews_connection_queue_request (
- cnc, msg, get_free_busy_response_cb,
+ cnc, request, get_free_busy_response_cb,
pri, cancellable, simple);
} else {
if (local_error)
g_simple_async_result_take_error (simple, local_error);
g_simple_async_result_complete_in_idle (simple);
- g_clear_object (&msg);
+ g_clear_object (&request);
}
g_object_unref (simple);
@@ -8841,31 +8767,29 @@ e_ews_connection_get_delegate (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetDelegate",
- "IncludePermissions",
- include_permissions ? "true" : "false",
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetDelegate",
+ "IncludePermissions",
+ include_permissions ? "true" : "false",
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "Mailbox", "messages", NULL);
+ e_soap_request_start_element (request, "Mailbox", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -8876,7 +8800,7 @@ e_ews_connection_get_delegate (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_delegate_response_cb,
+ cnc, request, get_delegate_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -8988,7 +8912,7 @@ update_delegate_response_cb (ESoapResponse *response,
}
static void
-set_delegate_permission (ESoapMessage *msg,
+set_delegate_permission (ESoapRequest *request,
const gchar *elem_name,
EwsPermissionLevel perm_level)
{
@@ -9006,7 +8930,7 @@ set_delegate_permission (ESoapMessage *msg,
if (!level_name)
return;
- e_ews_message_write_string_parameter (msg, elem_name, NULL, level_name);
+ e_ews_request_write_string_parameter (request, elem_name, NULL, level_name);
}
void
@@ -9018,7 +8942,7 @@ e_ews_connection_add_delegate (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
@@ -9026,57 +8950,51 @@ e_ews_connection_add_delegate (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
g_return_if_fail (delegates != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "AddDelegate",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "AddDelegate",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "Mailbox", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "DelegateUsers", "messages", NULL);
+ e_soap_request_start_element (request, "DelegateUsers", "messages", NULL);
for (iter = delegates; iter; iter = iter->next) {
const EwsDelegateInfo *di = iter->data;
if (!di)
continue;
- e_soap_message_start_element (msg, "DelegateUser", NULL, NULL);
+ e_soap_request_start_element (request, "DelegateUser", NULL, NULL);
- e_soap_message_start_element (msg, "UserId", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "PrimarySmtpAddress", NULL,
di->user_id->primary_smtp);
- e_soap_message_end_element (msg); /* UserId */
+ e_soap_request_start_element (request, "UserId", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "PrimarySmtpAddress", NULL,
di->user_id->primary_smtp);
+ e_soap_request_end_element (request); /* UserId */
- e_soap_message_start_element (msg, "DelegatePermissions", NULL, NULL);
- set_delegate_permission (msg, "CalendarFolderPermissionLevel", di->calendar);
- set_delegate_permission (msg, "TasksFolderPermissionLevel", di->tasks);
- set_delegate_permission (msg, "InboxFolderPermissionLevel", di->inbox);
- set_delegate_permission (msg, "ContactsFolderPermissionLevel", di->contacts);
- set_delegate_permission (msg, "NotesFolderPermissionLevel", di->notes);
- set_delegate_permission (msg, "JournalFolderPermissionLevel", di->journal);
- e_soap_message_end_element (msg); /* DelegatePermissions */
+ e_soap_request_start_element (request, "DelegatePermissions", NULL, NULL);
+ set_delegate_permission (request, "CalendarFolderPermissionLevel", di->calendar);
+ set_delegate_permission (request, "TasksFolderPermissionLevel", di->tasks);
+ set_delegate_permission (request, "InboxFolderPermissionLevel", di->inbox);
+ set_delegate_permission (request, "ContactsFolderPermissionLevel", di->contacts);
+ set_delegate_permission (request, "NotesFolderPermissionLevel", di->notes);
+ set_delegate_permission (request, "JournalFolderPermissionLevel", di->journal);
+ e_soap_request_end_element (request); /* DelegatePermissions */
- e_ews_message_write_string_parameter (
- msg, "ReceiveCopiesOfMeetingMessages", NULL,
- di->meetingcopies ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "ViewPrivateItems", NULL,
- di->view_priv_items ? "true" : "false");
+ e_ews_request_write_string_parameter (request, "ReceiveCopiesOfMeetingMessages", NULL,
di->meetingcopies ? "true" : "false");
+ e_ews_request_write_string_parameter (request, "ViewPrivateItems", NULL, di->view_priv_items
? "true" : "false");
- e_soap_message_end_element (msg); /* DelegateUser */
+ e_soap_request_end_element (request); /* DelegateUser */
}
- e_soap_message_end_element (msg); /* DelegateUsers */
+ e_soap_request_end_element (request); /* DelegateUsers */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9087,7 +9005,7 @@ e_ews_connection_add_delegate (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, update_delegate_response_cb,
+ cnc, request, update_delegate_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9150,7 +9068,7 @@ e_ews_connection_remove_delegate (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
@@ -9158,37 +9076,35 @@ e_ews_connection_remove_delegate (EEwsConnection *cnc,
g_return_if_fail (cnc != NULL);
g_return_if_fail (delegate_ids != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "RemoveDelegate",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "RemoveDelegate",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "Mailbox", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "UserIds", "messages", NULL);
+ e_soap_request_start_element (request, "UserIds", "messages", NULL);
for (iter = delegate_ids; iter; iter = iter->next) {
const EwsUserId *user_id = iter->data;
if (!user_id)
continue;
- e_soap_message_start_element (msg, "UserId", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "PrimarySmtpAddress", NULL, user_id->primary_smtp);
- e_soap_message_end_element (msg); /* UserId */
+ e_soap_request_start_element (request, "UserId", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "PrimarySmtpAddress", NULL,
user_id->primary_smtp);
+ e_soap_request_end_element (request); /* UserId */
}
- e_soap_message_end_element (msg); /* UserIds */
+ e_soap_request_end_element (request); /* UserIds */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9199,7 +9115,7 @@ e_ews_connection_remove_delegate (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, update_delegate_response_cb,
+ cnc, request, update_delegate_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9263,72 +9179,65 @@ e_ews_connection_update_delegate (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "UpdateDelegate",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "UpdateDelegate",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "Mailbox", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
+ e_soap_request_end_element (request);
if (delegates) {
- e_soap_message_start_element (msg, "DelegateUsers", "messages", NULL);
+ e_soap_request_start_element (request, "DelegateUsers", "messages", NULL);
for (iter = delegates; iter; iter = iter->next) {
const EwsDelegateInfo *di = iter->data;
if (!di)
continue;
- e_soap_message_start_element (msg, "DelegateUser", NULL, NULL);
-
- e_soap_message_start_element (msg, "UserId", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "PrimarySmtpAddress", NULL,
di->user_id->primary_smtp);
- e_soap_message_end_element (msg); /* UserId */
-
- e_soap_message_start_element (msg, "DelegatePermissions", NULL, NULL);
- set_delegate_permission (msg, "CalendarFolderPermissionLevel", di->calendar);
- set_delegate_permission (msg, "TasksFolderPermissionLevel", di->tasks);
- set_delegate_permission (msg, "InboxFolderPermissionLevel", di->inbox);
- set_delegate_permission (msg, "ContactsFolderPermissionLevel", di->contacts);
- set_delegate_permission (msg, "NotesFolderPermissionLevel", di->notes);
- set_delegate_permission (msg, "JournalFolderPermissionLevel", di->journal);
- e_soap_message_end_element (msg); /* DelegatePermissions */
-
- e_ews_message_write_string_parameter (
- msg, "ReceiveCopiesOfMeetingMessages", NULL,
- di->meetingcopies ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "ViewPrivateItems", NULL,
- di->view_priv_items ? "true" : "false");
-
- e_soap_message_end_element (msg); /* DelegateUser */
+ e_soap_request_start_element (request, "DelegateUser", NULL, NULL);
+
+ e_soap_request_start_element (request, "UserId", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "PrimarySmtpAddress", NULL,
di->user_id->primary_smtp);
+ e_soap_request_end_element (request); /* UserId */
+
+ e_soap_request_start_element (request, "DelegatePermissions", NULL, NULL);
+ set_delegate_permission (request, "CalendarFolderPermissionLevel", di->calendar);
+ set_delegate_permission (request, "TasksFolderPermissionLevel", di->tasks);
+ set_delegate_permission (request, "InboxFolderPermissionLevel", di->inbox);
+ set_delegate_permission (request, "ContactsFolderPermissionLevel", di->contacts);
+ set_delegate_permission (request, "NotesFolderPermissionLevel", di->notes);
+ set_delegate_permission (request, "JournalFolderPermissionLevel", di->journal);
+ e_soap_request_end_element (request); /* DelegatePermissions */
+
+ e_ews_request_write_string_parameter (request, "ReceiveCopiesOfMeetingMessages",
NULL, di->meetingcopies ? "true" : "false");
+ e_ews_request_write_string_parameter (request, "ViewPrivateItems", NULL,
di->view_priv_items ? "true" : "false");
+
+ e_soap_request_end_element (request); /* DelegateUser */
}
- e_soap_message_end_element (msg); /* DelegateUsers */
+ e_soap_request_end_element (request); /* DelegateUsers */
}
- e_ews_message_write_string_parameter (
- msg, "DeliverMeetingRequests", "messages",
+ e_ews_request_write_string_parameter (request, "DeliverMeetingRequests", "messages",
deliver_to == EwsDelegateDeliver_DelegatesOnly ? "DelegatesOnly" :
deliver_to == EwsDelegateDeliver_DelegatesAndMe ? "DelegatesAndMe" :
"DelegatesAndSendInformationToMe");
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9339,7 +9248,7 @@ e_ews_connection_update_delegate (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, update_delegate_response_cb,
+ cnc, request, update_delegate_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9458,37 +9367,35 @@ e_ews_connection_get_folder_permissions (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
g_return_if_fail (folder_id != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, "IdOnly");
- e_soap_message_start_element (msg, "AdditionalProperties", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:PermissionSet");
- e_soap_message_end_element (msg); /* AdditionalProperties */
- e_soap_message_end_element (msg); /* FolderShape */
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, "IdOnly");
+ e_soap_request_start_element (request, "AdditionalProperties", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:PermissionSet");
+ e_soap_request_end_element (request); /* AdditionalProperties */
+ e_soap_request_end_element (request); /* FolderShape */
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
- e_ews_folder_id_append_to_msg (msg, cnc->priv->email, folder_id);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
+ e_ews_folder_id_append_to_msg (request, cnc->priv->email, folder_id);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9499,7 +9406,7 @@ e_ews_connection_get_folder_permissions (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_folder_permissions_response_cb,
+ cnc, request, get_folder_permissions_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9576,7 +9483,7 @@ e_ews_connection_set_folder_permissions (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
const GSList *iter;
@@ -9585,48 +9492,46 @@ e_ews_connection_set_folder_permissions (EEwsConnection *cnc,
g_return_if_fail (folder_id != NULL);
g_return_if_fail (permissions != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "UpdateFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "UpdateFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "FolderChanges", "messages", NULL);
- e_ews_message_start_folder_change (msg, cnc->priv->email, folder_id);
+ e_soap_request_start_element (request, "FolderChanges", "messages", NULL);
+ e_ews_request_start_folder_change (request, cnc->priv->email, folder_id);
- e_soap_message_start_element (msg, "SetFolderField", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:PermissionSet");
+ e_soap_request_start_element (request, "SetFolderField", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:PermissionSet");
switch (folder_type) {
default:
case E_EWS_FOLDER_TYPE_MAILBOX:
- e_soap_message_start_element (msg, "Folder", NULL, NULL);
+ e_soap_request_start_element (request, "Folder", NULL, NULL);
break;
case E_EWS_FOLDER_TYPE_CALENDAR:
- e_soap_message_start_element (msg, "CalendarFolder", NULL, NULL);
+ e_soap_request_start_element (request, "CalendarFolder", NULL, NULL);
break;
case E_EWS_FOLDER_TYPE_CONTACTS:
- e_soap_message_start_element (msg, "ContactsFolder", NULL, NULL);
+ e_soap_request_start_element (request, "ContactsFolder", NULL, NULL);
break;
case E_EWS_FOLDER_TYPE_SEARCH:
- e_soap_message_start_element (msg, "SearchFolder", NULL, NULL);
+ e_soap_request_start_element (request, "SearchFolder", NULL, NULL);
break;
case E_EWS_FOLDER_TYPE_TASKS:
- e_soap_message_start_element (msg, "TasksFolder", NULL, NULL);
+ e_soap_request_start_element (request, "TasksFolder", NULL, NULL);
break;
}
- e_soap_message_start_element (msg, "PermissionSet", NULL, NULL);
+ e_soap_request_start_element (request, "PermissionSet", NULL, NULL);
if (folder_type == E_EWS_FOLDER_TYPE_CALENDAR)
- e_soap_message_start_element (msg, "CalendarPermissions", NULL, NULL);
+ e_soap_request_start_element (request, "CalendarPermissions", NULL, NULL);
else
- e_soap_message_start_element (msg, "Permissions", NULL, NULL);
+ e_soap_request_start_element (request, "Permissions", NULL, NULL);
for (iter = permissions; iter; iter = iter->next) {
EEwsPermission *perm = iter->data;
@@ -9636,85 +9541,75 @@ e_ews_connection_set_folder_permissions (EEwsConnection *cnc,
continue;
if (folder_type == E_EWS_FOLDER_TYPE_CALENDAR)
- e_soap_message_start_element (msg, "CalendarPermission", NULL, NULL);
+ e_soap_request_start_element (request, "CalendarPermission", NULL, NULL);
else
- e_soap_message_start_element (msg, "Permission", NULL, NULL);
+ e_soap_request_start_element (request, "Permission", NULL, NULL);
- e_soap_message_start_element (msg, "UserId", NULL, NULL);
+ e_soap_request_start_element (request, "UserId", NULL, NULL);
switch (perm->user_type) {
case E_EWS_PERMISSION_USER_TYPE_NONE:
g_return_if_reached ();
break;
case E_EWS_PERMISSION_USER_TYPE_ANONYMOUS:
- e_ews_message_write_string_parameter (msg, "DistinguishedUser", NULL, "Anonymous");
+ e_ews_request_write_string_parameter (request, "DistinguishedUser", NULL,
"Anonymous");
break;
case E_EWS_PERMISSION_USER_TYPE_DEFAULT:
- e_ews_message_write_string_parameter (msg, "DistinguishedUser", NULL, "Default");
+ e_ews_request_write_string_parameter (request, "DistinguishedUser", NULL, "Default");
break;
case E_EWS_PERMISSION_USER_TYPE_REGULAR:
- e_ews_message_write_string_parameter (msg, "PrimarySmtpAddress", NULL,
perm->primary_smtp);
+ e_ews_request_write_string_parameter (request, "PrimarySmtpAddress", NULL,
perm->primary_smtp);
break;
}
- e_soap_message_end_element (msg); /* UserId */
+ e_soap_request_end_element (request); /* UserId */
e_ews_permission_rights_to_level_name (perm->rights);
perm_level_name = e_ews_permission_rights_to_level_name (perm->rights);
if (g_strcmp0 (perm_level_name, "Custom") == 0) {
- e_ews_message_write_string_parameter (
- msg, "CanCreateItems", NULL,
+ e_ews_request_write_string_parameter (request, "CanCreateItems", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_CREATE) != 0 ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "CanCreateSubFolders", NULL,
+ e_ews_request_write_string_parameter (request, "CanCreateSubFolders", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_CREATE_SUBFOLDER) != 0 ? "true" :
"false");
- e_ews_message_write_string_parameter (
- msg, "IsFolderOwner", NULL,
+ e_ews_request_write_string_parameter (request, "IsFolderOwner", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_FOLDER_OWNER) != 0 ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "IsFolderVisible", NULL,
+ e_ews_request_write_string_parameter (request, "IsFolderVisible", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_FOLDER_VISIBLE) != 0 ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "IsFolderContact", NULL,
+ e_ews_request_write_string_parameter (request, "IsFolderContact", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_FOLDER_CONTACT) != 0 ? "true" : "false");
- e_ews_message_write_string_parameter (
- msg, "EditItems", NULL,
+ e_ews_request_write_string_parameter (request, "EditItems", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_EDIT_ANY) != 0 ? "All" :
(perm->rights & E_EWS_PERMISSION_BIT_EDIT_OWNED) != 0 ? "Owned" : "None");
- e_ews_message_write_string_parameter (
- msg, "DeleteItems", NULL,
+ e_ews_request_write_string_parameter (request, "DeleteItems", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_DELETE_ANY) != 0 ? "All" :
(perm->rights & E_EWS_PERMISSION_BIT_DELETE_OWNED) != 0 ? "Owned" : "None");
if (folder_type == E_EWS_FOLDER_TYPE_CALENDAR)
- e_ews_message_write_string_parameter (
- msg, "ReadItems", NULL,
+ e_ews_request_write_string_parameter (request, "ReadItems", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_READ_ANY) != 0 ? "FullDetails" :
(perm->rights & E_EWS_PERMISSION_BIT_FREE_BUSY_DETAILED) != 0 ?
"TimeAndSubjectAndLocation" :
(perm->rights & E_EWS_PERMISSION_BIT_FREE_BUSY_SIMPLE) != 0 ?
"TimeOnly" : "None");
else
- e_ews_message_write_string_parameter (
- msg, "ReadItems", NULL,
+ e_ews_request_write_string_parameter (request, "ReadItems", NULL,
(perm->rights & E_EWS_PERMISSION_BIT_READ_ANY) != 0 ? "FullDetails" :
"None");
}
- e_ews_message_write_string_parameter (
- msg,
+ e_ews_request_write_string_parameter (request,
folder_type == E_EWS_FOLDER_TYPE_CALENDAR ? "CalendarPermissionLevel" :
"PermissionLevel", NULL,
perm_level_name);
- e_soap_message_end_element (msg); /* Permission/CalendarPermission */
+ e_soap_request_end_element (request); /* Permission/CalendarPermission */
}
- e_soap_message_end_element (msg); /* Permissions */
- e_soap_message_end_element (msg); /* PermissionSet */
- e_soap_message_end_element (msg); /* Folder/CalendarFolder/... */
- e_soap_message_end_element (msg); /* SetFolderField */
+ e_soap_request_end_element (request); /* Permissions */
+ e_soap_request_end_element (request); /* PermissionSet */
+ e_soap_request_end_element (request); /* Folder/CalendarFolder/... */
+ e_soap_request_end_element (request); /* SetFolderField */
- e_ews_message_end_item_change (msg);
+ e_ews_request_end_item_change (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9725,7 +9620,7 @@ e_ews_connection_set_folder_permissions (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, update_folder_response_cb,
+ cnc, request, update_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9828,23 +9723,21 @@ e_ews_connection_get_password_expiration (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetPasswordExpirationDate",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2010_SP2,
- FALSE,
- TRUE);
- e_ews_message_write_string_parameter (msg, "MailboxSmtpAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
- e_ews_message_write_footer (msg);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetPasswordExpirationDate",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2010_SP2,
+ FALSE);
+ e_ews_request_write_string_parameter (request, "MailboxSmtpAddress", NULL, mail_id ? mail_id :
cnc->priv->email);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -9855,7 +9748,7 @@ e_ews_connection_get_password_expiration (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_password_expiration_response_cb,
+ cnc, request, get_password_expiration_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -9990,38 +9883,36 @@ e_ews_connection_get_folder_info (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
g_return_if_fail (folder_id != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, "Default");
- e_soap_message_start_element (msg, "AdditionalProperties", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:FolderClass");
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:ParentFolderId");
- e_soap_message_end_element (msg); /* AdditionalProperties */
- e_soap_message_end_element (msg); /* FolderShape */
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, "Default");
+ e_soap_request_start_element (request, "AdditionalProperties", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:FolderClass");
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:ParentFolderId");
+ e_soap_request_end_element (request); /* AdditionalProperties */
+ e_soap_request_end_element (request); /* FolderShape */
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
- e_ews_folder_id_append_to_msg (msg, mail_id, folder_id);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
+ e_ews_folder_id_append_to_msg (request, mail_id, folder_id);
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -10032,7 +9923,7 @@ e_ews_connection_get_folder_info (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, get_folder_info_response_cb,
+ cnc, request, get_folder_info_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -10187,42 +10078,40 @@ e_ews_connection_find_folder (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "FindFolder",
- "Traversal",
- "Shallow",
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, "Default");
- e_soap_message_start_element (msg, "AdditionalProperties", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:FolderClass");
- e_ews_message_write_string_parameter_with_attribute (msg, "FieldURI", NULL, NULL, "FieldURI",
"folder:ChildFolderCount");
- e_soap_message_end_element (msg); /* AdditionalProperties */
- e_soap_message_end_element (msg);
-
- e_soap_message_start_element (msg, "ParentFolderIds", "messages", NULL);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "FindFolder",
+ "Traversal",
+ "Shallow",
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ FALSE);
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, "Default");
+ e_soap_request_start_element (request, "AdditionalProperties", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:FolderClass");
+ e_ews_request_write_string_parameter_with_attribute (request, "FieldURI", NULL, NULL, "FieldURI",
"folder:ChildFolderCount");
+ e_soap_request_end_element (request); /* AdditionalProperties */
+ e_soap_request_end_element (request);
+
+ e_soap_request_start_element (request, "ParentFolderIds", "messages", NULL);
if (fid->is_distinguished_id)
- e_ews_message_write_string_parameter_with_attribute (msg, "DistinguishedFolderId", NULL,
NULL, "Id", fid->id);
+ e_ews_request_write_string_parameter_with_attribute (request, "DistinguishedFolderId", NULL,
NULL, "Id", fid->id);
else
- e_ews_message_write_string_parameter_with_attribute (msg, "FolderId", NULL, NULL, "Id",
fid->id);
+ e_ews_request_write_string_parameter_with_attribute (request, "FolderId", NULL, NULL, "Id",
fid->id);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (request);
/* Complete the footer and print the request */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -10233,7 +10122,7 @@ e_ews_connection_find_folder (EEwsConnection *cnc,
simple, async_data, (GDestroyNotify) async_data_free);
e_ews_connection_queue_request (
- cnc, msg, find_folder_response_cb,
+ cnc, request, find_folder_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -10376,34 +10265,32 @@ e_ews_connection_query_auth_methods (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
g_return_if_fail (cnc != NULL);
/* use some simple operation to get WWW-Authenticate headers from the server */
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
- cnc->priv->uri,
- cnc->priv->impersonate_user,
- "GetFolder",
- NULL,
- NULL,
- cnc->priv->version,
- E_EWS_EXCHANGE_2007_SP1,
- TRUE,
- TRUE);
+ request = e_ews_request_new_with_header (
+ cnc->priv->uri,
+ cnc->priv->impersonate_user,
+ "GetFolder",
+ NULL,
+ NULL,
+ cnc->priv->version,
+ E_EWS_EXCHANGE_2007_SP1,
+ TRUE);
- e_soap_message_start_element (msg, "FolderShape", "messages", NULL);
- e_ews_message_write_string_parameter (msg, "BaseShape", NULL, "IdOnly");
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderShape", "messages", NULL);
+ e_ews_request_write_string_parameter (request, "BaseShape", NULL, "IdOnly");
+ e_soap_request_end_element (request);
- e_soap_message_start_element (msg, "FolderIds", "messages", NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "DistinguishedFolderId", NULL, NULL, "Id",
"inbox");
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "FolderIds", "messages", NULL);
+ e_ews_request_write_string_parameter_with_attribute (request, "DistinguishedFolderId", NULL, NULL,
"Id", "inbox");
+ e_soap_request_end_element (request);
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
simple = g_simple_async_result_new (
G_OBJECT (cnc), callback, user_data,
@@ -10413,11 +10300,11 @@ e_ews_connection_query_auth_methods (EEwsConnection *cnc,
g_simple_async_result_set_op_res_gpointer (
simple, async_data, (GDestroyNotify) async_data_free);
- soup_message_add_header_handler (SOUP_MESSAGE (msg), "got-headers", "WWW-Authenticate",
+ soup_message_add_header_handler (SOUP_MESSAGE (request), "got-headers", "WWW-Authenticate",
G_CALLBACK (ews_connection_gather_auth_methods_cb), simple);
e_ews_connection_queue_request (
- cnc, msg, query_auth_methods_response_cb,
+ cnc, request, query_auth_methods_response_cb,
pri, cancellable, simple);
g_object_unref (simple);
@@ -11247,7 +11134,7 @@ e_ews_connection_get_server_time_zones (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
GSList *l;
@@ -11270,8 +11157,7 @@ e_ews_connection_get_server_time_zones (EEwsConnection *cnc,
return;
}
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
+ request = e_ews_request_new_with_header (
cnc->priv->uri,
cnc->priv->impersonate_user,
"GetServerTimeZones",
@@ -11279,17 +11165,16 @@ e_ews_connection_get_server_time_zones (EEwsConnection *cnc,
"true",
cnc->priv->version,
E_EWS_EXCHANGE_2010,
- FALSE,
- TRUE);
+ FALSE);
- e_soap_message_start_element (msg, "Ids", "messages", NULL);
+ e_soap_request_start_element (request, "Ids", "messages", NULL);
for (l = msdn_locations; l != NULL; l = l->next)
- e_ews_message_write_string_parameter_with_attribute (msg, "Id", NULL, l->data, NULL, NULL);
- e_soap_message_end_element (msg); /* Ids */
+ e_ews_request_write_string_parameter_with_attribute (request, "Id", NULL, l->data, NULL,
NULL);
+ e_soap_request_end_element (request); /* Ids */
- e_ews_message_write_footer (msg); /* Complete the footer and print the request */
+ e_ews_request_write_footer (request); /* Complete the footer and print the request */
- e_ews_connection_queue_request (cnc, msg, get_server_time_zones_response_cb, pri, cancellable,
simple);
+ e_ews_connection_queue_request (cnc, request, get_server_time_zones_response_cb, pri, cancellable,
simple);
g_object_unref (simple);
}
@@ -11394,7 +11279,7 @@ e_ews_connection_get_user_photo (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
gchar *tmp;
@@ -11416,8 +11301,7 @@ e_ews_connection_get_user_photo (EEwsConnection *cnc,
return;
}
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
+ request = e_ews_request_new_with_header (
cnc->priv->uri,
cnc->priv->impersonate_user,
"GetUserPhoto",
@@ -11425,22 +11309,21 @@ e_ews_connection_get_user_photo (EEwsConnection *cnc,
NULL,
cnc->priv->version,
E_EWS_EXCHANGE_2013,
- FALSE,
- TRUE);
+ FALSE);
- e_soap_message_start_element (msg, "Email", "messages", NULL);
- e_soap_message_write_string (msg, email);
- e_soap_message_end_element (msg); /* Email */
+ e_soap_request_start_element (request, "Email", "messages", NULL);
+ e_soap_request_write_string (request, email);
+ e_soap_request_end_element (request); /* Email */
- e_soap_message_start_element (msg, "SizeRequested", "messages", NULL);
+ e_soap_request_start_element (request, "SizeRequested", "messages", NULL);
tmp = g_strdup_printf ("HR%dx%d", (gint) size_requested, size_requested);
- e_soap_message_write_string (msg, tmp);
+ e_soap_request_write_string (request, tmp);
g_free (tmp);
- e_soap_message_end_element (msg); /* SizeRequested */
+ e_soap_request_end_element (request); /* SizeRequested */
- e_ews_message_write_footer (msg); /* Complete the footer and print the request */
+ e_ews_request_write_footer (request); /* Complete the footer and print the request */
- e_ews_connection_queue_request (cnc, msg, get_user_photo_response_cb, pri, cancellable, simple);
+ e_ews_connection_queue_request (cnc, request, get_user_photo_response_cb, pri, cancellable, simple);
g_object_unref (simple);
}
@@ -11594,7 +11477,7 @@ e_ews_connection_get_user_configuration (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
EwsFolderId local_fid;
@@ -11618,8 +11501,7 @@ e_ews_connection_get_user_configuration (EEwsConnection *cnc,
local_fid = *fid;
local_fid.change_key = NULL;
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
+ request = e_ews_request_new_with_header (
cnc->priv->uri,
cnc->priv->impersonate_user,
"GetUserConfiguration",
@@ -11627,44 +11509,43 @@ e_ews_connection_get_user_configuration (EEwsConnection *cnc,
NULL,
cnc->priv->version,
E_EWS_EXCHANGE_2010,
- FALSE,
- TRUE);
+ FALSE);
- e_soap_message_start_element (msg, "UserConfigurationName", "messages", NULL);
- e_soap_message_add_attribute (msg, "Name", config_name, NULL, NULL);
+ e_soap_request_start_element (request, "UserConfigurationName", "messages", NULL);
+ e_soap_request_add_attribute (request, "Name", config_name, NULL, NULL);
- e_ews_folder_id_append_to_msg (msg, cnc->priv->email, &local_fid);
+ e_ews_folder_id_append_to_msg (request, cnc->priv->email, &local_fid);
- e_soap_message_end_element (msg); /* UserConfigurationName */
+ e_soap_request_end_element (request); /* UserConfigurationName */
- e_soap_message_start_element (msg, "UserConfigurationProperties", "messages", NULL);
+ e_soap_request_start_element (request, "UserConfigurationProperties", "messages", NULL);
switch (props) {
case E_EWS_USER_CONFIGURATION_PROPERTIES_ID:
- e_soap_message_write_string (msg, "Id");
+ e_soap_request_write_string (request, "Id");
break;
case E_EWS_USER_CONFIGURATION_PROPERTIES_DICTIONARY:
- e_soap_message_write_string (msg, "Dictionary");
+ e_soap_request_write_string (request, "Dictionary");
break;
case E_EWS_USER_CONFIGURATION_PROPERTIES_XMLDATA:
- e_soap_message_write_string (msg, "XmlData");
+ e_soap_request_write_string (request, "XmlData");
break;
case E_EWS_USER_CONFIGURATION_PROPERTIES_BINARYDATA:
- e_soap_message_write_string (msg, "BinaryData");
+ e_soap_request_write_string (request, "BinaryData");
break;
/* case E_EWS_USER_CONFIGURATION_PROPERTIES_ALL:
- e_soap_message_write_string (msg, "All");
+ e_soap_request_write_string (request, "All");
break; */
default:
- e_soap_message_write_string (msg, "Unknown");
+ e_soap_request_write_string (request, "Unknown");
break;
}
- e_soap_message_end_element (msg); /* UserConfigurationProperties */
+ e_soap_request_end_element (request); /* UserConfigurationProperties */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
- e_ews_connection_queue_request (cnc, msg, get_user_configuration_response_cb, pri, cancellable,
simple);
+ e_ews_connection_queue_request (cnc, request, get_user_configuration_response_cb, pri, cancellable,
simple);
g_object_unref (simple);
}
@@ -11783,7 +11664,7 @@ e_ews_connection_convert_id (EEwsConnection *cnc,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *msg;
+ ESoapRequest *request;
GSimpleAsyncResult *simple;
EwsAsyncData *async_data;
@@ -11806,8 +11687,7 @@ e_ews_connection_convert_id (EEwsConnection *cnc,
return;
}
- msg = e_ews_message_new_with_header (
- cnc->priv->settings,
+ request = e_ews_request_new_with_header (
cnc->priv->uri,
cnc->priv->impersonate_user,
"ConvertId",
@@ -11815,22 +11695,21 @@ e_ews_connection_convert_id (EEwsConnection *cnc,
to_format,
cnc->priv->version,
E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ FALSE);
- e_soap_message_start_element (msg, "SourceIds", "messages", NULL);
- e_soap_message_start_element (msg, "AlternateId", NULL, NULL);
+ e_soap_request_start_element (request, "SourceIds", "messages", NULL);
+ e_soap_request_start_element (request, "AlternateId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", folder_id, NULL, NULL);
- e_soap_message_add_attribute (msg, "Format", from_format, NULL, NULL);
- e_soap_message_add_attribute (msg, "Mailbox", email, NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", folder_id, NULL, NULL);
+ e_soap_request_add_attribute (request, "Format", from_format, NULL, NULL);
+ e_soap_request_add_attribute (request, "Mailbox", email, NULL, NULL);
- e_soap_message_end_element (msg); /* AlternateId */
- e_soap_message_end_element (msg); /* SourceIds */
+ e_soap_request_end_element (request); /* AlternateId */
+ e_soap_request_end_element (request); /* SourceIds */
- e_ews_message_write_footer (msg);
+ e_ews_request_write_footer (request);
- e_ews_connection_queue_request (cnc, msg, convert_id_response_cb, pri, cancellable, simple);
+ e_ews_connection_queue_request (cnc, request, convert_id_response_cb, pri, cancellable, simple);
g_object_unref (simple);
}
diff --git a/src/EWS/common/e-ews-connection.h b/src/EWS/common/e-ews-connection.h
index 3e2b2785..5199be3c 100644
--- a/src/EWS/common/e-ews-connection.h
+++ b/src/EWS/common/e-ews-connection.h
@@ -15,7 +15,8 @@
#include <libedataserver/libedataserver.h>
#include <libebackend/libebackend.h>
-#include "e-soap-message.h"
+#include "e-soap-request.h"
+#include "e-soap-response.h"
#include "ews-errors.h"
#include "e-ews-folder.h"
#include "e-ews-item.h"
@@ -65,11 +66,9 @@ enum {
EWS_PRIORITY_HIGH
};
-typedef gboolean(*EEwsRequestCreationCallback) (ESoapMessage *msg,
+typedef gboolean(*EEwsRequestCreationCallback) (ESoapRequest *request,
gpointer user_data,
GError **error);
-typedef void (*EwsProgressFn) (gpointer object,
- gint percent);
typedef void (*EEwsResponseCallback) (ESoapResponse *response,
GSimpleAsyncResult *simple);
@@ -464,7 +463,7 @@ EEwsConnection *e_ews_connection_find (const gchar *uri,
const gchar *username);
GSList * e_ews_connection_list_existing (void); /* EEwsConnection * */
void e_ews_connection_queue_request (EEwsConnection *cnc,
- ESoapMessage *msg,
+ ESoapRequest *request,
EEwsResponseCallback cb,
gint pri,
GCancellable *cancellable,
@@ -534,7 +533,7 @@ gboolean e_ews_connection_sync_folder_items_sync
GCancellable *cancellable,
GError **error);
-typedef void (*EwsConvertQueryCallback) (ESoapMessage *msg,
+typedef void (*EwsConvertQueryCallback) (ESoapRequest *request,
const gchar *query,
EEwsFolderType type);
@@ -595,7 +594,7 @@ void e_ews_connection_get_items (EEwsConnection *cnc,
gboolean include_mime,
const gchar *mime_directory,
EEwsBodyType body_type,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -614,7 +613,7 @@ gboolean e_ews_connection_get_items_sync (EEwsConnection *cnc,
const gchar *mime_directory,
EEwsBodyType body_type,
GSList **items,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error);
@@ -1028,7 +1027,7 @@ void e_ews_connection_get_attachments
const GSList *ids,
const gchar *cache,
gboolean include_mime,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -1046,7 +1045,7 @@ gboolean e_ews_connection_get_attachments_sync
const gchar *cache,
gboolean include_mime,
GSList **items,
- ESoapProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error);
@@ -1111,14 +1110,14 @@ gboolean e_ews_connection_get_free_busy_sync
gboolean e_ews_connection_download_oal_file_sync
(EEwsConnection *cnc,
const gchar *cache_filename,
- EwsProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GError **error);
void e_ews_connection_download_oal_file
(EEwsConnection *cnc,
const gchar *cache_filename,
- EwsProgressFn progress_fn,
+ ESoapResponseProgressFn progress_fn,
gpointer progress_data,
GCancellable *cancellable,
GAsyncReadyCallback cb,
diff --git a/src/EWS/common/e-ews-debug.c b/src/EWS/common/e-ews-debug.c
index be5957ba..296e032c 100644
--- a/src/EWS/common/e-ews-debug.c
+++ b/src/EWS/common/e-ews-debug.c
@@ -7,7 +7,7 @@
#include "evolution-ews-config.h"
#include "e-ews-debug.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
gint
e_ews_debug_get_log_level (void)
diff --git a/src/EWS/common/e-ews-folder.c b/src/EWS/common/e-ews-folder.c
index 0f90346e..33c3f6bc 100644
--- a/src/EWS/common/e-ews-folder.c
+++ b/src/EWS/common/e-ews-folder.c
@@ -10,7 +10,7 @@
#include <glib/gi18n-lib.h>
#include "e-ews-folder.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
#include "e-ews-enumtypes.h"
#include "ews-errors.h"
#include "e-source-ews-folder.h"
@@ -363,7 +363,7 @@ e_ews_folder_id_is_equal (const EwsFolderId *a,
}
void
-e_ews_folder_id_append_to_msg (ESoapMessage *msg,
+e_ews_folder_id_append_to_msg (ESoapRequest *request,
const gchar *email,
const EwsFolderId *fid)
{
@@ -371,21 +371,21 @@ e_ews_folder_id_append_to_msg (ESoapMessage *msg,
g_return_if_fail (fid != NULL);
if (fid->is_distinguished_id)
- e_soap_message_start_element (msg, "DistinguishedFolderId", NULL, NULL);
+ e_soap_request_start_element (request, "DistinguishedFolderId", NULL, NULL);
else
- e_soap_message_start_element (msg, "FolderId", NULL, NULL);
+ e_soap_request_start_element (request, "FolderId", NULL, NULL);
- e_soap_message_add_attribute (msg, "Id", fid->id, NULL, NULL);
+ e_soap_request_add_attribute (request, "Id", fid->id, NULL, NULL);
if (fid->change_key)
- e_soap_message_add_attribute (msg, "ChangeKey", fid->change_key, NULL, NULL);
+ e_soap_request_add_attribute (request, "ChangeKey", fid->change_key, NULL, NULL);
if (fid->is_distinguished_id && email) {
- e_soap_message_start_element (msg, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter (msg, "EmailAddress", NULL, email);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (request, "EmailAddress", NULL, email);
+ e_soap_request_end_element (msg);
}
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (msg);
}
const gchar *
diff --git a/src/EWS/common/e-ews-folder.h b/src/EWS/common/e-ews-folder.h
index dc1bf551..d89267f8 100644
--- a/src/EWS/common/e-ews-folder.h
+++ b/src/EWS/common/e-ews-folder.h
@@ -10,7 +10,7 @@
#include <libedataserver/libedataserver.h>
#include "e-ews-enums.h"
-#include "e-soap-message.h"
+#include "e-soap-request.h"
G_BEGIN_DECLS
@@ -76,7 +76,7 @@ void e_ews_folder_id_free (EwsFolderId *fid);
gboolean e_ews_folder_id_is_equal (const EwsFolderId *a,
const EwsFolderId *b,
gboolean check_change_key);
-void e_ews_folder_id_append_to_msg (ESoapMessage *msg,
+void e_ews_folder_id_append_to_msg (ESoapRequest *request,
const gchar *email,
const EwsFolderId *fid);
gchar * e_ews_folder_utils_escape_name (const gchar *folder_name);
diff --git a/src/EWS/common/e-ews-item-change.c b/src/EWS/common/e-ews-item-change.c
index 1e647f5c..6cee0d31 100644
--- a/src/EWS/common/e-ews-item-change.c
+++ b/src/EWS/common/e-ews-item-change.c
@@ -7,26 +7,26 @@
#include "evolution-ews-config.h"
-#include "e-soap-message.h"
+#include "e-soap-request.h"
#include "e-soap-response.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
#include "e-ews-item-change.h"
void
-e_ews_message_start_folder_change (ESoapMessage *msg,
+e_ews_request_start_folder_change (ESoapRequest *request,
const gchar *email,
const EwsFolderId *folder_id)
{
g_return_if_fail (msg != NULL);
g_return_if_fail (folder_id != NULL);
- e_soap_message_start_element (msg, "FolderChange", NULL, NULL);
- e_ews_folder_id_append_to_msg (msg, email, folder_id);
- e_soap_message_start_element (msg, "Updates", NULL, NULL);
+ e_soap_request_start_element (request, "FolderChange", NULL, NULL);
+ e_ews_folder_id_append_to_msg (request, email, folder_id);
+ e_soap_request_start_element (request, "Updates", NULL, NULL);
}
void
-e_ews_message_start_item_change (ESoapMessage *msg,
+e_ews_request_start_item_change (ESoapRequest *request,
EEwsItemChangeType type,
const gchar *itemid,
const gchar *changekey,
@@ -36,68 +36,68 @@ e_ews_message_start_item_change (ESoapMessage *msg,
switch (type) {
case E_EWS_ITEMCHANGE_TYPE_FOLDER:
- e_soap_message_start_element (msg, "FolderChange", NULL, NULL);
- e_soap_message_start_element (
+ e_soap_request_start_element (request, "FolderChange", NULL, NULL);
+ e_soap_request_start_element (
msg, "FolderId",
NULL, NULL);
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "Id",
itemid, NULL, NULL);
break;
case E_EWS_ITEMCHANGE_TYPE_ITEM:
- e_soap_message_start_element (msg, "ItemChange", NULL, NULL);
- e_soap_message_start_element (
+ e_soap_request_start_element (request, "ItemChange", NULL, NULL);
+ e_soap_request_start_element (
msg, "ItemId",
NULL, NULL);
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "Id",
itemid, NULL, NULL);
break;
case E_EWS_ITEMCHANGE_TYPE_OCCURRENCEITEM:
- e_soap_message_start_element (msg, "ItemChange", NULL, NULL);
- e_soap_message_start_element (
+ e_soap_request_start_element (request, "ItemChange", NULL, NULL);
+ e_soap_request_start_element (
msg, "OccurrenceItemId",
NULL, NULL);
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "RecurringMasterId",
itemid, NULL, NULL);
instance = g_strdup_printf ("%d", instance_index);
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "InstanceIndex", instance,
NULL, NULL);
g_free (instance);
break;
case E_EWS_ITEMCHANGE_TYPE_RECURRINGMASTER:
- e_soap_message_start_element (msg, "ItemChange", NULL, NULL);
- e_soap_message_start_element (
+ e_soap_request_start_element (request, "ItemChange", NULL, NULL);
+ e_soap_request_start_element (
msg, "RecurringMasterItemId",
NULL, NULL);
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "OccurrenceId",
itemid, NULL, NULL);
break;
}
if (changekey)
- e_soap_message_add_attribute (
+ e_soap_request_add_attribute (
msg, "ChangeKey",
changekey, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_end_element (msg);
- e_soap_message_start_element (msg, "Updates", NULL, NULL);
+ e_soap_request_start_element (request, "Updates", NULL, NULL);
}
void
-e_ews_message_end_item_change (ESoapMessage *msg)
+e_ews_request_end_item_change (ESoapRequest *request)
{
- e_soap_message_end_element (msg); /* Updates */
- e_soap_message_end_element (msg); /* ItemChange */
+ e_soap_request_end_element (msg); /* Updates */
+ e_soap_request_end_element (msg); /* ItemChange */
}
void
-e_ews_message_start_set_item_field (ESoapMessage *msg,
+e_ews_request_start_set_item_field (ESoapRequest *request,
const gchar *name,
const gchar *fielduri_prefix,
const gchar *field_kind)
@@ -105,16 +105,16 @@ e_ews_message_start_set_item_field (ESoapMessage *msg,
gchar * fielduri = NULL;
fielduri = g_strconcat (fielduri_prefix, ":", name, NULL);
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (
msg, "FieldURI", NULL, NULL, "FieldURI", fielduri);
- e_soap_message_start_element (msg, field_kind, NULL, NULL);
+ e_soap_request_start_element (request, field_kind, NULL, NULL);
g_free (fielduri);
}
void
-e_ews_message_start_set_indexed_item_field (ESoapMessage *msg,
+e_ews_request_start_set_indexed_item_field (ESoapRequest *request,
const gchar *name,
const gchar *fielduri_prefix,
const gchar *field_kind,
@@ -125,39 +125,39 @@ e_ews_message_start_set_indexed_item_field (ESoapMessage *msg,
fielduri = g_strconcat (fielduri_prefix, ":", name, NULL);
if (delete_field)
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
else
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
- e_soap_message_start_element (msg, "IndexedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", fielduri, NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldIndex", field_index, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (request, "IndexedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldURI", fielduri, NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldIndex", field_index, NULL, NULL);
+ e_soap_request_end_element (msg);
if (!delete_field)
- e_soap_message_start_element (msg, field_kind, NULL, NULL);
+ e_soap_request_start_element (request, field_kind, NULL, NULL);
g_free (fielduri);
}
void
-e_ews_message_end_set_indexed_item_field (ESoapMessage *msg,
+e_ews_request_end_set_indexed_item_field (ESoapRequest *request,
gboolean delete_field)
{
if (!delete_field)
- e_soap_message_end_element (msg); /* CalendarItem */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* CalendarItem */
+ e_soap_request_end_element (msg); /* SetItemField */
}
void
-e_ews_message_end_set_item_field (ESoapMessage *msg)
+e_ews_request_end_set_item_field (ESoapRequest *request)
{
- e_soap_message_end_element (msg); /* CalendarItem */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* CalendarItem */
+ e_soap_request_end_element (msg); /* SetItemField */
}
void
-e_ews_message_add_delete_item_field (ESoapMessage *msg,
+e_ews_request_add_delete_item_field (ESoapRequest *request,
const gchar *name,
const gchar *fielduri_prefix)
{
@@ -165,16 +165,16 @@ e_ews_message_add_delete_item_field (ESoapMessage *msg,
fielduri = g_strconcat (fielduri_prefix, ":", name, NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (
msg, "FieldURI", NULL, NULL, "FieldURI", fielduri);
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_end_element (msg); /* DeleteItemField */
g_free (fielduri);
}
void
-e_ews_message_add_delete_item_field_indexed (ESoapMessage *msg,
+e_ews_request_add_delete_item_field_indexed (ESoapRequest *request,
const gchar *name,
const gchar *fielduri_prefix,
const gchar *field_index)
@@ -183,18 +183,18 @@ e_ews_message_add_delete_item_field_indexed (ESoapMessage *msg,
fielduri = g_strconcat (fielduri_prefix, ":", name, NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_soap_message_start_element (msg, "IndexedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldURI", fielduri, NULL, NULL);
- e_soap_message_add_attribute (msg, "FieldIndex", field_index, NULL, NULL);
- e_soap_message_end_element (msg); /* IndexedFieldURI */
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_soap_request_start_element (request, "IndexedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldURI", fielduri, NULL, NULL);
+ e_soap_request_add_attribute (request, "FieldIndex", field_index, NULL, NULL);
+ e_soap_request_end_element (msg); /* IndexedFieldURI */
+ e_soap_request_end_element (msg); /* DeleteItemField */
g_free (fielduri);
}
const gchar *
-e_ews_message_data_type_get_xml_name (EEwsMessageDataType data_type)
+e_ews_request_data_type_get_xml_name (EEwsMessageDataType data_type)
{
switch (data_type) {
case E_EWS_MESSAGE_DATA_TYPE_BOOLEAN:
@@ -215,36 +215,36 @@ e_ews_message_data_type_get_xml_name (EEwsMessageDataType data_type)
}
void
-e_ews_message_add_delete_item_field_extended_tag (ESoapMessage *msg,
+e_ews_request_add_delete_item_field_extended_tag (ESoapRequest *request,
guint32 prop_id,
EEwsMessageDataType data_type)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_ews_message_write_extended_tag (msg, prop_id, prop_type);
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_ews_request_write_extended_tag (request, prop_id, prop_type);
+ e_soap_request_end_element (msg); /* DeleteItemField */
}
void
-e_ews_message_add_delete_item_field_extended_distinguished_tag (ESoapMessage *msg,
+e_ews_request_add_delete_item_field_extended_distinguished_tag (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
EEwsMessageDataType data_type)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_ews_message_write_extended_distinguished_tag (msg, set_id, prop_id, prop_type);
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_ews_request_write_extended_distinguished_tag (request, set_id, prop_id, prop_type);
+ e_soap_request_end_element (msg); /* DeleteItemField */
}
static void
-ews_message_write_data_value (ESoapMessage *msg,
+ews_request_write_data_value (ESoapRequest *request,
EEwsMessageDataType data_type,
gconstpointer value)
{
@@ -252,19 +252,19 @@ ews_message_write_data_value (ESoapMessage *msg,
switch (data_type) {
case E_EWS_MESSAGE_DATA_TYPE_BOOLEAN:
- e_ews_message_write_string_parameter (msg, "Value", NULL, (*((const gboolean *) value)) ?
"true" : "false");
+ e_ews_request_write_string_parameter (request, "Value", NULL, (*((const gboolean *) value)) ?
"true" : "false");
return;
case E_EWS_MESSAGE_DATA_TYPE_INT:
- e_ews_message_write_int_parameter (msg, "Value", NULL, *((const gint *) value));
+ e_ews_request_write_int_parameter (request, "Value", NULL, *((const gint *) value));
return;
case E_EWS_MESSAGE_DATA_TYPE_DOUBLE:
- e_ews_message_write_double_parameter (msg, "Value", NULL, *((const gdouble *) value));
+ e_ews_request_write_double_parameter (request, "Value", NULL, *((const gdouble *) value));
return;
case E_EWS_MESSAGE_DATA_TYPE_STRING:
- e_ews_message_write_string_parameter (msg, "Value", NULL, (const gchar *) value);
+ e_ews_request_write_string_parameter (request, "Value", NULL, (const gchar *) value);
return;
case E_EWS_MESSAGE_DATA_TYPE_TIME:
- e_ews_message_write_time_parameter (msg, "Value", NULL, *((const time_t *) value));
+ e_ews_request_write_time_parameter (request, "Value", NULL, *((const time_t *) value));
return;
}
@@ -272,66 +272,66 @@ ews_message_write_data_value (ESoapMessage *msg,
}
static void
-ews_message_add_extended_property_tag (ESoapMessage *msg,
+ews_request_add_extended_property_tag (ESoapRequest *request,
guint32 prop_id,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "ExtendedProperty", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedProperty", NULL, NULL);
- e_ews_message_write_extended_tag (msg, prop_id, prop_type);
- ews_message_write_data_value (msg, data_type, value);
+ e_ews_request_write_extended_tag (request, prop_id, prop_type);
+ ews_request_write_data_value (request, data_type, value);
- e_soap_message_end_element (msg); /* ExtendedProperty */
+ e_soap_request_end_element (msg); /* ExtendedProperty */
}
static void
-ews_message_add_extended_property_distinguished_tag (ESoapMessage *msg,
+ews_request_add_extended_property_distinguished_tag (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "ExtendedProperty", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedProperty", NULL, NULL);
- e_ews_message_write_extended_distinguished_tag (msg, set_id, prop_id, prop_type);
- ews_message_write_data_value (msg, data_type, value);
+ e_ews_request_write_extended_distinguished_tag (request, set_id, prop_id, prop_type);
+ ews_request_write_data_value (request, data_type, value);
- e_soap_message_end_element (msg); /* ExtendedProperty */
+ e_soap_request_end_element (msg); /* ExtendedProperty */
}
static void
-ews_message_add_set_item_field_extended_tag (ESoapMessage *msg,
+ews_request_add_set_item_field_extended_tag (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
- e_ews_message_write_extended_tag (msg, prop_id, prop_type);
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
+ e_ews_request_write_extended_tag (request, prop_id, prop_type);
- e_soap_message_start_element (msg, elem_name, elem_prefix, NULL);
- ews_message_add_extended_property_tag (msg, prop_id, data_type, value);
- e_soap_message_end_element (msg); /* elem_name */
+ e_soap_request_start_element (request, elem_name, elem_prefix, NULL);
+ ews_request_add_extended_property_tag (request, prop_id, data_type, value);
+ e_soap_request_end_element (msg); /* elem_name */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* SetItemField */
}
static void
-ews_message_add_set_item_field_extended_distinguished_tag (ESoapMessage *msg,
+ews_request_add_set_item_field_extended_distinguished_tag (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
@@ -339,321 +339,321 @@ ews_message_add_set_item_field_extended_distinguished_tag (ESoapMessage *msg,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
- e_ews_message_write_extended_distinguished_tag (msg, set_id, prop_id, prop_type);
+ e_ews_request_write_extended_distinguished_tag (request, set_id, prop_id, prop_type);
- e_soap_message_start_element (msg, elem_name, elem_prefix, NULL);
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id, data_type, value);
- e_soap_message_end_element (msg); /* elem_name */
+ e_soap_request_start_element (request, elem_name, elem_prefix, NULL);
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id, data_type, value);
+ e_soap_request_end_element (msg); /* elem_name */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* SetItemField */
}
void
-e_ews_message_add_set_item_field_extended_tag_boolean (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_tag_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gboolean value)
{
- ews_message_add_set_item_field_extended_tag (msg, elem_prefix, elem_name, prop_id,
+ ews_request_add_set_item_field_extended_tag (request, elem_prefix, elem_name, prop_id,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_set_item_field_extended_tag_int (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_tag_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gint value)
{
- ews_message_add_set_item_field_extended_tag (msg, elem_prefix, elem_name, prop_id,
+ ews_request_add_set_item_field_extended_tag (request, elem_prefix, elem_name, prop_id,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_set_item_field_extended_tag_double (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_tag_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gdouble value)
{
- ews_message_add_set_item_field_extended_tag (msg, elem_prefix, elem_name, prop_id,
+ ews_request_add_set_item_field_extended_tag (request, elem_prefix, elem_name, prop_id,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_set_item_field_extended_tag_string (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_tag_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
const gchar *value)
{
- ews_message_add_set_item_field_extended_tag (msg, elem_prefix, elem_name, prop_id,
+ ews_request_add_set_item_field_extended_tag (request, elem_prefix, elem_name, prop_id,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_set_item_field_extended_tag_time (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_tag_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
time_t value)
{
- ews_message_add_set_item_field_extended_tag (msg, elem_prefix, elem_name, prop_id,
+ ews_request_add_set_item_field_extended_tag (request, elem_prefix, elem_name, prop_id,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_tag_boolean (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_tag_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gboolean value)
{
- ews_message_add_set_item_field_extended_distinguished_tag (msg, elem_prefix, elem_name, set_id,
prop_id,
+ ews_request_add_set_item_field_extended_distinguished_tag (request, elem_prefix, elem_name, set_id,
prop_id,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_tag_int (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_tag_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gint value)
{
- ews_message_add_set_item_field_extended_distinguished_tag (msg, elem_prefix, elem_name, set_id,
prop_id,
+ ews_request_add_set_item_field_extended_distinguished_tag (request, elem_prefix, elem_name, set_id,
prop_id,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_tag_double (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_tag_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gdouble value)
{
- ews_message_add_set_item_field_extended_distinguished_tag (msg, elem_prefix, elem_name, set_id,
prop_id,
+ ews_request_add_set_item_field_extended_distinguished_tag (request, elem_prefix, elem_name, set_id,
prop_id,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_tag_string (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_tag_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
const gchar *value)
{
- ews_message_add_set_item_field_extended_distinguished_tag (msg, elem_prefix, elem_name, set_id,
prop_id,
+ ews_request_add_set_item_field_extended_distinguished_tag (request, elem_prefix, elem_name, set_id,
prop_id,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_tag_time (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_tag_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
time_t value)
{
- ews_message_add_set_item_field_extended_distinguished_tag (msg, elem_prefix, elem_name, set_id,
prop_id,
+ ews_request_add_set_item_field_extended_distinguished_tag (request, elem_prefix, elem_name, set_id,
prop_id,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_extended_property_tag_boolean (ESoapMessage *msg,
+e_ews_request_add_extended_property_tag_boolean (ESoapRequest *request,
guint32 prop_id,
gboolean value)
{
- ews_message_add_extended_property_tag (msg, prop_id,
+ ews_request_add_extended_property_tag (request, prop_id,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_extended_property_tag_int (ESoapMessage *msg,
+e_ews_request_add_extended_property_tag_int (ESoapRequest *request,
guint32 prop_id,
gint value)
{
- ews_message_add_extended_property_tag (msg, prop_id,
+ ews_request_add_extended_property_tag (request, prop_id,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_extended_property_tag_double (ESoapMessage *msg,
+e_ews_request_add_extended_property_tag_double (ESoapRequest *request,
guint32 prop_id,
gdouble value)
{
- ews_message_add_extended_property_tag (msg, prop_id,
+ ews_request_add_extended_property_tag (request, prop_id,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_extended_property_tag_string (ESoapMessage *msg,
+e_ews_request_add_extended_property_tag_string (ESoapRequest *request,
guint32 prop_id,
const gchar *value)
{
- ews_message_add_extended_property_tag (msg, prop_id,
+ ews_request_add_extended_property_tag (request, prop_id,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_extended_property_tag_time (ESoapMessage *msg,
+e_ews_request_add_extended_property_tag_time (ESoapRequest *request,
guint32 prop_id,
time_t value)
{
- ews_message_add_extended_property_tag (msg, prop_id,
+ ews_request_add_extended_property_tag (request, prop_id,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_extended_property_distinguished_tag_boolean (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_tag_boolean (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gboolean value)
{
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id,
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_extended_property_distinguished_tag_int (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_tag_int (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gint value)
{
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id,
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_extended_property_distinguished_tag_double (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_tag_double (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gdouble value)
{
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id,
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_extended_property_distinguished_tag_string (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_tag_string (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
const gchar *value)
{
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id,
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_extended_property_distinguished_tag_time (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_tag_time (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
time_t value)
{
- ews_message_add_extended_property_distinguished_tag (msg, set_id, prop_id,
+ ews_request_add_extended_property_distinguished_tag (request, set_id, prop_id,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_delete_item_field_extended_name (ESoapMessage *msg,
+e_ews_request_add_delete_item_field_extended_name (ESoapRequest *request,
const gchar *name,
EEwsMessageDataType data_type)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_ews_message_write_extended_name (msg, name, prop_type);
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_ews_request_write_extended_name (request, name, prop_type);
+ e_soap_request_end_element (msg); /* DeleteItemField */
}
void
-e_ews_message_add_delete_item_field_extended_distinguished_name (ESoapMessage *msg,
+e_ews_request_add_delete_item_field_extended_distinguished_name (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
EEwsMessageDataType data_type)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "DeleteItemField", NULL, NULL);
- e_ews_message_write_extended_distinguished_name (msg, set_id, name, prop_type);
- e_soap_message_end_element (msg); /* DeleteItemField */
+ e_soap_request_start_element (request, "DeleteItemField", NULL, NULL);
+ e_ews_request_write_extended_distinguished_name (request, set_id, name, prop_type);
+ e_soap_request_end_element (msg); /* DeleteItemField */
}
static void
-ews_message_add_extended_property_name (ESoapMessage *msg,
+ews_request_add_extended_property_name (ESoapRequest *request,
const gchar *name,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "ExtendedProperty", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedProperty", NULL, NULL);
- e_ews_message_write_extended_name (msg, name, prop_type);
- ews_message_write_data_value (msg, data_type, value);
+ e_ews_request_write_extended_name (request, name, prop_type);
+ ews_request_write_data_value (request, data_type, value);
- e_soap_message_end_element (msg); /* ExtendedProperty */
+ e_soap_request_end_element (msg); /* ExtendedProperty */
}
static void
-ews_message_add_extended_property_distinguished_name (ESoapMessage *msg,
+ews_request_add_extended_property_distinguished_name (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "ExtendedProperty", NULL, NULL);
+ e_soap_request_start_element (request, "ExtendedProperty", NULL, NULL);
- e_ews_message_write_extended_distinguished_name (msg, set_id, name, prop_type);
- ews_message_write_data_value (msg, data_type, value);
+ e_ews_request_write_extended_distinguished_name (request, set_id, name, prop_type);
+ ews_request_write_data_value (request, data_type, value);
- e_soap_message_end_element (msg); /* ExtendedProperty */
+ e_soap_request_end_element (msg); /* ExtendedProperty */
}
static void
-ews_message_add_set_item_field_extended_name (ESoapMessage *msg,
+ews_request_add_set_item_field_extended_name (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
- e_ews_message_write_extended_name (msg, name, prop_type);
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
+ e_ews_request_write_extended_name (request, name, prop_type);
- e_soap_message_start_element (msg, elem_name, elem_prefix, NULL);
- ews_message_add_extended_property_name (msg, name, data_type, value);
- e_soap_message_end_element (msg); /* elem_name */
+ e_soap_request_start_element (request, elem_name, elem_prefix, NULL);
+ ews_request_add_extended_property_name (request, name, data_type, value);
+ e_soap_request_end_element (msg); /* elem_name */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* SetItemField */
}
static void
-ews_message_add_set_item_field_extended_distinguished_name (ESoapMessage *msg,
+ews_request_add_set_item_field_extended_distinguished_name (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
@@ -661,227 +661,227 @@ ews_message_add_set_item_field_extended_distinguished_name (ESoapMessage *msg,
EEwsMessageDataType data_type,
gconstpointer value)
{
- const gchar *prop_type = e_ews_message_data_type_get_xml_name (data_type);
+ const gchar *prop_type = e_ews_request_data_type_get_xml_name (data_type);
g_return_if_fail (prop_type != NULL);
- e_soap_message_start_element (msg, "SetItemField", NULL, NULL);
+ e_soap_request_start_element (request, "SetItemField", NULL, NULL);
- e_ews_message_write_extended_distinguished_name (msg, set_id, name, prop_type);
+ e_ews_request_write_extended_distinguished_name (request, set_id, name, prop_type);
- e_soap_message_start_element (msg, elem_name, elem_prefix, NULL);
- ews_message_add_extended_property_distinguished_name (msg, set_id, name, data_type, value);
- e_soap_message_end_element (msg); /* elem_name */
+ e_soap_request_start_element (request, elem_name, elem_prefix, NULL);
+ ews_request_add_extended_property_distinguished_name (request, set_id, name, data_type, value);
+ e_soap_request_end_element (msg); /* elem_name */
- e_soap_message_end_element (msg); /* SetItemField */
+ e_soap_request_end_element (msg); /* SetItemField */
}
void
-e_ews_message_add_set_item_field_extended_name_boolean (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_name_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gboolean value)
{
- ews_message_add_set_item_field_extended_name (msg, elem_prefix, elem_name, name,
+ ews_request_add_set_item_field_extended_name (request, elem_prefix, elem_name, name,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_set_item_field_extended_name_int (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_name_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gint value)
{
- ews_message_add_set_item_field_extended_name (msg, elem_prefix, elem_name, name,
+ ews_request_add_set_item_field_extended_name (request, elem_prefix, elem_name, name,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_set_item_field_extended_name_double (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_name_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gdouble value)
{
- ews_message_add_set_item_field_extended_name (msg, elem_prefix, elem_name, name,
+ ews_request_add_set_item_field_extended_name (request, elem_prefix, elem_name, name,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_set_item_field_extended_name_string (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_name_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
const gchar *value)
{
- ews_message_add_set_item_field_extended_name (msg, elem_prefix, elem_name, name,
+ ews_request_add_set_item_field_extended_name (request, elem_prefix, elem_name, name,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_set_item_field_extended_name_time (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_name_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
time_t value)
{
- ews_message_add_set_item_field_extended_name (msg, elem_prefix, elem_name, name,
+ ews_request_add_set_item_field_extended_name (request, elem_prefix, elem_name, name,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_name_boolean (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_name_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gboolean value)
{
- ews_message_add_set_item_field_extended_distinguished_name (msg, elem_prefix, elem_name, set_id, name,
+ ews_request_add_set_item_field_extended_distinguished_name (request, elem_prefix, elem_name, set_id,
name,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_name_int (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_name_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gint value)
{
- ews_message_add_set_item_field_extended_distinguished_name (msg, elem_prefix, elem_name, set_id, name,
+ ews_request_add_set_item_field_extended_distinguished_name (request, elem_prefix, elem_name, set_id,
name,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_name_double (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_name_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gdouble value)
{
- ews_message_add_set_item_field_extended_distinguished_name (msg, elem_prefix, elem_name, set_id, name,
+ ews_request_add_set_item_field_extended_distinguished_name (request, elem_prefix, elem_name, set_id,
name,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_name_string (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_name_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
const gchar *value)
{
- ews_message_add_set_item_field_extended_distinguished_name (msg, elem_prefix, elem_name, set_id, name,
+ ews_request_add_set_item_field_extended_distinguished_name (request, elem_prefix, elem_name, set_id,
name,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_set_item_field_extended_distinguished_name_time (ESoapMessage *msg,
+e_ews_request_add_set_item_field_extended_distinguished_name_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
time_t value)
{
- ews_message_add_set_item_field_extended_distinguished_name (msg, elem_prefix, elem_name, set_id, name,
+ ews_request_add_set_item_field_extended_distinguished_name (request, elem_prefix, elem_name, set_id,
name,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_extended_property_name_boolean (ESoapMessage *msg,
+e_ews_request_add_extended_property_name_boolean (ESoapRequest *request,
const gchar *name,
gboolean value)
{
- ews_message_add_extended_property_name (msg, name,
+ ews_request_add_extended_property_name (request, name,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_extended_property_name_int (ESoapMessage *msg,
+e_ews_request_add_extended_property_name_int (ESoapRequest *request,
const gchar *name,
gint value)
{
- ews_message_add_extended_property_name (msg, name,
+ ews_request_add_extended_property_name (request, name,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_extended_property_name_double (ESoapMessage *msg,
+e_ews_request_add_extended_property_name_double (ESoapRequest *request,
const gchar *name,
gdouble value)
{
- ews_message_add_extended_property_name (msg, name,
+ ews_request_add_extended_property_name (request, name,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_extended_property_name_string (ESoapMessage *msg,
+e_ews_request_add_extended_property_name_string (ESoapRequest *request,
const gchar *name,
const gchar *value)
{
- ews_message_add_extended_property_name (msg, name,
+ ews_request_add_extended_property_name (request, name,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_extended_property_name_time (ESoapMessage *msg,
+e_ews_request_add_extended_property_name_time (ESoapRequest *request,
const gchar *name,
time_t value)
{
- ews_message_add_extended_property_name (msg, name,
+ ews_request_add_extended_property_name (request, name,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
void
-e_ews_message_add_extended_property_distinguished_name_boolean (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_name_boolean (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gboolean value)
{
- ews_message_add_extended_property_distinguished_name (msg, set_id, name,
+ ews_request_add_extended_property_distinguished_name (request, set_id, name,
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN, &value);
}
void
-e_ews_message_add_extended_property_distinguished_name_int (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_name_int (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gint value)
{
- ews_message_add_extended_property_distinguished_name (msg, set_id, name,
+ ews_request_add_extended_property_distinguished_name (request, set_id, name,
E_EWS_MESSAGE_DATA_TYPE_INT, &value);
}
void
-e_ews_message_add_extended_property_distinguished_name_double (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_name_double (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gdouble value)
{
- ews_message_add_extended_property_distinguished_name (msg, set_id, name,
+ ews_request_add_extended_property_distinguished_name (request, set_id, name,
E_EWS_MESSAGE_DATA_TYPE_DOUBLE, &value);
}
void
-e_ews_message_add_extended_property_distinguished_name_string (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_name_string (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
const gchar *value)
{
- ews_message_add_extended_property_distinguished_name (msg, set_id, name,
+ ews_request_add_extended_property_distinguished_name (request, set_id, name,
E_EWS_MESSAGE_DATA_TYPE_STRING, value);
}
void
-e_ews_message_add_extended_property_distinguished_name_time (ESoapMessage *msg,
+e_ews_request_add_extended_property_distinguished_name_time (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
time_t value)
{
- ews_message_add_extended_property_distinguished_name (msg, set_id, name,
+ ews_request_add_extended_property_distinguished_name (request, set_id, name,
E_EWS_MESSAGE_DATA_TYPE_TIME, &value);
}
diff --git a/src/EWS/common/e-ews-item-change.h b/src/EWS/common/e-ews-item-change.h
index 52aaa09c..d81fd29f 100644
--- a/src/EWS/common/e-ews-item-change.h
+++ b/src/EWS/common/e-ews-item-change.h
@@ -9,7 +9,7 @@
#define E_EWS_ITEM_CHANGE_H
#include "e-ews-folder.h"
-#include "e-soap-message.h"
+#include "e-soap-request.h"
#include "e-soap-response.h"
G_BEGIN_DECLS
@@ -21,23 +21,35 @@ typedef enum {
E_EWS_ITEMCHANGE_TYPE_RECURRINGMASTER,
} EEwsItemChangeType;
-void e_ews_message_start_folder_change (ESoapMessage *msg, const gchar *email, const EwsFolderId *folder_id);
-void e_ews_message_start_item_change (ESoapMessage *msg, EEwsItemChangeType type,
- const gchar *itemid, const gchar *changekey,
- gint instance_index);
-void e_ews_message_end_item_change (ESoapMessage *msg);
-
-void e_ews_message_start_set_item_field (ESoapMessage *msg, const gchar *name, const gchar *
fielduri_prefix, const gchar *field_kind);
-
-void e_ews_message_start_set_indexed_item_field (ESoapMessage *msg, const gchar *name, const gchar *
fielduri_prefix, const gchar *field_kind, const gchar *field_index, gboolean delete_field);
-
-void e_ews_message_end_set_indexed_item_field (ESoapMessage *msg, gboolean delete_field);
-
-void e_ews_message_end_set_item_field (ESoapMessage *msg);
-
-void e_ews_message_add_delete_item_field (ESoapMessage *msg, const gchar *name, const gchar
*fielduri_prefix);
-
-void e_ews_message_add_delete_item_field_indexed (ESoapMessage *msg, const gchar *name, const gchar
*fielduri_prefix, const gchar *field_index);
+void e_ews_request_start_folder_change (ESoapRequest *request,
+ const gchar *email,
+ const EwsFolderId *folder_id);
+void e_ews_request_start_item_change (ESoapRequest *request,
+ EEwsItemChangeType type,
+ const gchar *itemid,
+ const gchar *changekey,
+ gint instance_index);
+void e_ews_request_end_item_change (ESoapRequest *request);
+void e_ews_request_start_set_item_field (ESoapRequest *request,
+ const gchar *name,
+ const gchar *fielduri_prefix,
+ const gchar *field_kind);
+void e_ews_request_start_set_indexed_item_field (ESoapRequest *request,
+ const gchar *name,
+ const gchar *fielduri_prefix,
+ const gchar *field_kind,
+ const gchar *field_index,
+ gboolean delete_field);
+void e_ews_request_end_set_indexed_item_field (ESoapRequest *request,
+ gboolean delete_field);
+void e_ews_request_end_set_item_field (ESoapRequest *request);
+void e_ews_request_add_delete_item_field (ESoapRequest *request,
+ const gchar *name,
+ const gchar *fielduri_prefix);
+void e_ews_request_add_delete_item_field_indexed (ESoapRequest *request,
+ const gchar *name,
+ const gchar *fielduri_prefix,
+ const gchar *field_index);
typedef enum {
E_EWS_MESSAGE_DATA_TYPE_BOOLEAN,
@@ -48,231 +60,230 @@ typedef enum {
} EEwsMessageDataType;
const gchar *
- e_ews_message_data_type_get_xml_name (EEwsMessageDataType data_type);
+ e_ews_request_data_type_get_xml_name (EEwsMessageDataType data_type);
-void e_ews_message_add_delete_item_field_extended_tag (ESoapMessage *msg,
+void e_ews_request_add_delete_item_field_extended_tag (ESoapRequest *request,
guint32 prop_id,
EEwsMessageDataType data_type);
-void e_ews_message_add_delete_item_field_extended_distinguished_tag
- (ESoapMessage *msg,
+void e_ews_request_add_delete_item_field_extended_distinguished_tag
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
EEwsMessageDataType data_type);
-void e_ews_message_add_set_item_field_extended_tag_boolean (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_tag_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gboolean value);
-void e_ews_message_add_set_item_field_extended_tag_int (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_tag_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gint value);
-void e_ews_message_add_set_item_field_extended_tag_double (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_tag_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
gdouble value);
-void e_ews_message_add_set_item_field_extended_tag_string (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_tag_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
const gchar *value);
-void e_ews_message_add_set_item_field_extended_tag_time (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_tag_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
guint32 prop_id,
time_t value);
-void e_ews_message_add_set_item_field_extended_distinguished_tag_boolean
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_tag_boolean
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gboolean value);
-void e_ews_message_add_set_item_field_extended_distinguished_tag_int
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_tag_int
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gint value);
-void e_ews_message_add_set_item_field_extended_distinguished_tag_double
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_tag_double
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
gdouble value);
-void e_ews_message_add_set_item_field_extended_distinguished_tag_string
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_tag_string
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
const gchar *value);
-void e_ews_message_add_set_item_field_extended_distinguished_tag_time
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_tag_time
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
guint32 prop_id,
time_t value);
-void e_ews_message_add_extended_property_tag_boolean (ESoapMessage *msg,
+void e_ews_request_add_extended_property_tag_boolean (ESoapRequest *request,
guint32 prop_id,
gboolean value);
-void e_ews_message_add_extended_property_tag_int (ESoapMessage *msg,
+void e_ews_request_add_extended_property_tag_int (ESoapRequest *request,
guint32 prop_id,
gint value);
-void e_ews_message_add_extended_property_tag_double (ESoapMessage *msg,
+void e_ews_request_add_extended_property_tag_double (ESoapRequest *request,
guint32 prop_id,
gdouble value);
-void e_ews_message_add_extended_property_tag_string (ESoapMessage *msg,
+void e_ews_request_add_extended_property_tag_string (ESoapRequest *request,
guint32 prop_id,
const gchar *value);
-void e_ews_message_add_extended_property_tag_time (ESoapMessage *msg,
+void e_ews_request_add_extended_property_tag_time (ESoapRequest *request,
guint32 prop_id,
time_t value);
-void e_ews_message_add_extended_property_distinguished_tag_boolean
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_tag_boolean
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gboolean value);
-void e_ews_message_add_extended_property_distinguished_tag_int
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_tag_int
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gint value);
-void e_ews_message_add_extended_property_distinguished_tag_double
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_tag_double
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
gdouble value);
-void e_ews_message_add_extended_property_distinguished_tag_string
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_tag_string
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
const gchar *value);
-void e_ews_message_add_extended_property_distinguished_tag_time
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_tag_time
+ (ESoapRequest *request,
const gchar *set_id,
guint32 prop_id,
time_t value);
-void e_ews_message_add_delete_item_field_extended_name (ESoapMessage *msg,
+void e_ews_request_add_delete_item_field_extended_name (ESoapRequest *request,
const gchar *name,
EEwsMessageDataType data_type);
-void e_ews_message_add_delete_item_field_extended_distinguished_name
- (ESoapMessage *msg,
+void e_ews_request_add_delete_item_field_extended_distinguished_name
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
EEwsMessageDataType data_type);
-void e_ews_message_add_set_item_field_extended_name_boolean (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_name_boolean (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gboolean value);
-void e_ews_message_add_set_item_field_extended_name_int (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_name_int (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gint value);
-void e_ews_message_add_set_item_field_extended_name_double (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_name_double (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
gdouble value);
-void e_ews_message_add_set_item_field_extended_name_string (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_name_string (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
const gchar *value);
-void e_ews_message_add_set_item_field_extended_name_time (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_name_time (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *name,
time_t value);
-void e_ews_message_add_set_item_field_extended_distinguished_name_boolean
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_name_boolean
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gboolean value);
-void e_ews_message_add_set_item_field_extended_distinguished_name_int
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_name_int
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gint value);
-void e_ews_message_add_set_item_field_extended_distinguished_name_double
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_name_double
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
gdouble value);
-void e_ews_message_add_set_item_field_extended_distinguished_name_string
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_name_string
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
const gchar *value);
-void e_ews_message_add_set_item_field_extended_distinguished_name_time
- (ESoapMessage *msg,
+void e_ews_request_add_set_item_field_extended_distinguished_name_time
+ (ESoapRequest *request,
const gchar *elem_prefix,
const gchar *elem_name,
const gchar *set_id,
const gchar *name,
time_t value);
-void e_ews_message_add_extended_property_name_boolean (ESoapMessage *msg,
+void e_ews_request_add_extended_property_name_boolean (ESoapRequest *request,
const gchar *name,
gboolean value);
-void e_ews_message_add_extended_property_name_int (ESoapMessage *msg,
+void e_ews_request_add_extended_property_name_int (ESoapRequest *request,
const gchar *name,
gint value);
-void e_ews_message_add_extended_property_name_double (ESoapMessage *msg,
+void e_ews_request_add_extended_property_name_double (ESoapRequest *request,
const gchar *name,
gdouble value);
-void e_ews_message_add_extended_property_name_string (ESoapMessage *msg,
+void e_ews_request_add_extended_property_name_string (ESoapRequest *request,
const gchar *name,
const gchar *value);
-void e_ews_message_add_extended_property_name_time (ESoapMessage *msg,
+void e_ews_request_add_extended_property_name_time (ESoapRequest *request,
const gchar *name,
time_t value);
-void e_ews_message_add_extended_property_distinguished_name_boolean
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_name_boolean
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gboolean value);
-void e_ews_message_add_extended_property_distinguished_name_int
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_name_int
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gint value);
-void e_ews_message_add_extended_property_distinguished_name_double
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_name_double
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
gdouble value);
-void e_ews_message_add_extended_property_distinguished_name_string
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_name_string
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
const gchar *value);
-void e_ews_message_add_extended_property_distinguished_name_time
- (ESoapMessage *msg,
+void e_ews_request_add_extended_property_distinguished_name_time
+ (ESoapRequest *request,
const gchar *set_id,
const gchar *name,
time_t value);
-
G_END_DECLS
#endif
diff --git a/src/EWS/common/e-ews-item.h b/src/EWS/common/e-ews-item.h
index 77fbd3f1..0fa1ba58 100644
--- a/src/EWS/common/e-ews-item.h
+++ b/src/EWS/common/e-ews-item.h
@@ -7,9 +7,9 @@
#ifndef E_EWS_ITEM_H
#define E_EWS_ITEM_H
-#include "e-soap-message.h"
+#include "e-soap-request.h"
#include "e-soap-response.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
G_BEGIN_DECLS
diff --git a/src/EWS/common/e-ews-notification.c b/src/EWS/common/e-ews-notification.c
index efffbb74..143e8f51 100644
--- a/src/EWS/common/e-ews-notification.c
+++ b/src/EWS/common/e-ews-notification.c
@@ -265,7 +265,7 @@ e_ews_notification_subscribe_folder_sync (EEwsNotification *notification,
GCancellable *cancellable)
{
EEwsConnection *cnc;
- ESoapMessage *msg;
+ ESoapRequest *request;
ESoapResponse *response;
ESoapParameter *param, *subparam;
CamelEwsSettings *settings;
@@ -288,7 +288,7 @@ e_ews_notification_subscribe_folder_sync (EEwsNotification *notification,
settings = e_ews_connection_ref_settings (cnc);
- msg = e_ews_message_new_with_header (
+ msg = e_ews_request_new_with_header (
settings,
e_ews_connection_get_uri (cnc),
e_ews_connection_get_impersonate_user (cnc),
@@ -308,11 +308,11 @@ e_ews_notification_subscribe_folder_sync (EEwsNotification *notification,
return FALSE;
}
- e_soap_message_start_element (msg, "StreamingSubscriptionRequest", "messages", NULL);
+ e_soap_request_start_element (msg, "StreamingSubscriptionRequest", "messages", NULL);
- e_soap_message_start_element (msg, "FolderIds", NULL, NULL);
+ e_soap_request_start_element (msg, "FolderIds", NULL, NULL);
for (l = folders; l; l = l->next) {
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"FolderId",
NULL,
@@ -320,14 +320,14 @@ e_ews_notification_subscribe_folder_sync (EEwsNotification *notification,
"Id",
l->data);
}
- e_soap_message_end_element (msg); /* FolderIds */
+ e_soap_request_end_element (msg); /* FolderIds */
- e_soap_message_start_element (msg, "EventTypes", NULL, NULL);
+ e_soap_request_start_element (msg, "EventTypes", NULL, NULL);
for (event_type = 0; default_events_names[event_type] != NULL; event_type++) {
if (g_strcmp0 (default_events_names[event_type], "StatusEvent") == 0)
continue;
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg,
"EventType",
NULL,
@@ -335,10 +335,10 @@ e_ews_notification_subscribe_folder_sync (EEwsNotification *notification,
NULL,
NULL);
}
- e_soap_message_end_element (msg); /* EventTypes */
+ e_soap_request_end_element (msg); /* EventTypes */
- e_soap_message_end_element (msg); /* StreamingSubscriptionRequest */
- e_ews_message_write_footer (msg); /* Complete the footer and print the request */
+ e_soap_request_end_element (msg); /* StreamingSubscriptionRequest */
+ e_ews_request_write_footer (msg); /* Complete the footer and print the request */
if (g_cancellable_is_cancelled (cancellable)) {
g_object_unref (msg);
@@ -419,7 +419,7 @@ e_ews_notification_unsubscribe_folder_sync (EEwsNotification *notification,
const gchar *subscription_id)
{
EEwsConnection *cnc;
- ESoapMessage *msg;
+ ESoapRequest *request;
ESoapResponse *response;
ESoapParameter *param;
CamelEwsSettings *settings;
@@ -437,7 +437,7 @@ e_ews_notification_unsubscribe_folder_sync (EEwsNotification *notification,
settings = e_ews_connection_ref_settings (cnc);
- msg = e_ews_message_new_with_header (
+ msg = e_ews_request_new_with_header (
settings,
e_ews_connection_get_uri (cnc),
e_ews_connection_get_impersonate_user (cnc),
@@ -457,10 +457,10 @@ e_ews_notification_unsubscribe_folder_sync (EEwsNotification *notification,
return FALSE;
}
- e_ews_message_write_string_parameter_with_attribute (
+ e_ews_request_write_string_parameter_with_attribute (
msg, "SubscriptionId", "messages", subscription_id, NULL, NULL);
- e_ews_message_write_footer (msg); /* Complete the footer and print the request */
+ e_ews_request_write_footer (msg); /* Complete the footer and print the request */
if (!e_ews_connection_utils_prepare_message (cnc, notification->priv->soup_session, SOUP_MESSAGE
(msg), notification->priv->cancellable)) {
g_object_unref (msg);
@@ -799,7 +799,7 @@ e_ews_notification_get_events_sync (EEwsNotification *notification,
GCancellable *cancellable)
{
EEwsConnection *cnc;
- ESoapMessage *msg;
+ ESoapRequest *request;
CamelEwsSettings *settings;
gboolean ret;
gulong handler_id, cancel_handler_id;
@@ -822,7 +822,7 @@ e_ews_notification_get_events_sync (EEwsNotification *notification,
settings = e_ews_connection_ref_settings (cnc);
- msg = e_ews_message_new_with_header (
+ msg = e_ews_request_new_with_header (
settings,
e_ews_connection_get_uri (cnc),
e_ews_connection_get_impersonate_user (cnc),
@@ -842,13 +842,13 @@ e_ews_notification_get_events_sync (EEwsNotification *notification,
return FALSE;
}
- e_soap_message_start_element (msg, "SubscriptionIds", "messages", NULL);
- e_ews_message_write_string_parameter_with_attribute (msg, "SubscriptionId", NULL, subscription_id,
NULL, NULL);
- e_soap_message_end_element (msg); /* SubscriptionIds */
+ e_soap_request_start_element (msg, "SubscriptionIds", "messages", NULL);
+ e_ews_request_write_string_parameter_with_attribute (msg, "SubscriptionId", NULL, subscription_id,
NULL, NULL);
+ e_soap_request_end_element (msg); /* SubscriptionIds */
- e_ews_message_write_string_parameter_with_attribute (msg, "ConnectionTimeout", "messages", "10",
NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (msg, "ConnectionTimeout", "messages", "10",
NULL, NULL);
- e_ews_message_write_footer (msg); /* Complete the footer and print the request */
+ e_ews_request_write_footer (msg); /* Complete the footer and print the request */
handler_id = g_signal_connect (
SOUP_MESSAGE (msg), "got-chunk",
diff --git a/src/EWS/common/e-ews-oof-settings.c b/src/EWS/common/e-ews-oof-settings.c
index 634a7d9c..a369d4ab 100644
--- a/src/EWS/common/e-ews-oof-settings.c
+++ b/src/EWS/common/e-ews-oof-settings.c
@@ -14,7 +14,7 @@
#include "ews-errors.h"
#include "e-ews-enumtypes.h"
-#include "e-ews-message.h"
+#include "e-ews-request.h"
/* Forward Declarations */
static void e_ews_oof_settings_initable_init
@@ -431,7 +431,7 @@ ews_oof_settings_initable_init_async (GAsyncInitable *initable,
GSimpleAsyncResult *simple;
EEwsOofSettings *settings;
EEwsConnection *connection;
- ESoapMessage *message;
+ ESoapRequest *request;
CamelEwsSettings *ews_settings;
const gchar *uri, *impersonate_user;
const gchar *mailbox;
@@ -446,8 +446,7 @@ ews_oof_settings_initable_init_async (GAsyncInitable *initable,
version = e_ews_connection_get_server_version (connection);
ews_settings = e_ews_connection_ref_settings (connection);
- message = e_ews_message_new_with_header (
- ews_settings,
+ request = e_ews_request_new_with_header (
uri,
impersonate_user,
"GetUserOofSettingsRequest",
@@ -455,17 +454,16 @@ ews_oof_settings_initable_init_async (GAsyncInitable *initable,
NULL,
version,
E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ FALSE);
g_clear_object (&ews_settings);
- e_soap_message_start_element (message, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter (
+ e_soap_request_start_element (message, "Mailbox", NULL, NULL);
+ e_ews_request_write_string_parameter (
message, "Address", NULL, mailbox);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
- e_ews_message_write_footer (message);
+ e_ews_request_write_footer (message);
simple = g_simple_async_result_new (
G_OBJECT (initable), callback, user_data,
@@ -932,7 +930,7 @@ e_ews_oof_settings_submit (EEwsOofSettings *settings,
GAsyncReadyCallback callback,
gpointer user_data)
{
- ESoapMessage *message;
+ ESoapRequest *request;
EEwsConnection *connection;
GSimpleAsyncResult *simple;
GDateTime *date_time;
@@ -966,8 +964,7 @@ e_ews_oof_settings_submit (EEwsOofSettings *settings,
end_time = ews_oof_settings_date_time_to_string (date_time);
g_date_time_unref (date_time);
- message = e_ews_message_new_with_header (
- ews_settings,
+ request = e_ews_request_new_with_header (
uri,
impersonate_user,
"SetUserOofSettingsRequest",
@@ -975,24 +972,23 @@ e_ews_oof_settings_submit (EEwsOofSettings *settings,
NULL,
version,
E_EWS_EXCHANGE_2007_SP1,
- FALSE,
- TRUE);
+ FALSE);
g_clear_object (&ews_settings);
/* <Mailbox> */
- e_soap_message_start_element (
+ e_soap_request_start_element (
message, "Mailbox", NULL, NULL);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "Address", NULL, mailbox);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
/* </Mailbox> */
/* <UserOofSettings> */
- e_soap_message_start_element (
+ e_soap_request_start_element (
message, "UserOofSettings", NULL, NULL);
switch (e_ews_oof_settings_get_state (settings)) {
@@ -1010,7 +1006,7 @@ e_ews_oof_settings_submit (EEwsOofSettings *settings,
break;
}
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "OofState", NULL, string);
switch (e_ews_oof_settings_get_external_audience (settings)) {
@@ -1028,46 +1024,46 @@ e_ews_oof_settings_submit (EEwsOofSettings *settings,
break;
}
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "ExternalAudience", NULL, string);
/* <Duration> */
- e_soap_message_start_element (
+ e_soap_request_start_element (
message, "Duration", NULL, NULL);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "StartTime", NULL, start_time);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "EndTime", NULL, end_time);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
/* </Duration> */
/* <InternalReply> */
- e_soap_message_start_element (
+ e_soap_request_start_element (
message, "InternalReply", NULL, NULL);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "Message", NULL, internal_reply);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
/* </InternalReply> */
/* <ExternalReply> */
- e_soap_message_start_element (
+ e_soap_request_start_element (
message, "ExternalReply", NULL, NULL);
- e_ews_message_write_string_parameter (
+ e_ews_request_write_string_parameter (
message, "Message", NULL, external_reply);
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
/* </ExternalReply> */
- e_soap_message_end_element (message);
+ e_soap_request_end_element (message);
/* </UserOofSettings> */
- e_ews_message_write_footer (message);
+ e_ews_request_write_footer (message);
simple = g_simple_async_result_new (
G_OBJECT (settings), callback,
diff --git a/src/EWS/common/e-ews-query-to-restriction.c b/src/EWS/common/e-ews-query-to-restriction.c
index cedbf9c1..2325b8ca 100644
--- a/src/EWS/common/e-ews-query-to-restriction.c
+++ b/src/EWS/common/e-ews-query-to-restriction.c
@@ -13,7 +13,7 @@
#include <camel/camel.h>
#include <libedata-cal/libedata-cal.h>
-#include "e-ews-message.h"
+#include "e-ews-request.h"
#include "e-ews-query-to-restriction.h"
@@ -125,7 +125,7 @@ struct EmailIndex {
};
typedef struct _EvalContext {
- ESoapMessage *msg; /* NULL when just checking whether any applied */
+ ESoapRequest *req; /* NULL when just checking whether any applied */
gboolean any_applicable;
} EvalContext;
@@ -138,17 +138,17 @@ ews_restriction_write_contains_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "Contains", NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "ContainmentMode", mode, NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "ContainmentComparison", compare, NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "Contains", NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "ContainmentMode", mode, NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "ContainmentComparison", compare, NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -161,20 +161,20 @@ ews_restriction_write_contains_message_indexed (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "Contains", NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "ContainmentMode", mode, NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "ContainmentComparison", compare, NULL, NULL);
- e_soap_message_start_element (ctx->msg, "IndexedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "FieldURI", uri, NULL, NULL);
- e_soap_message_add_attribute (ctx->msg, "FieldIndex", index, NULL, NULL);
- e_soap_message_end_element (ctx->msg);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "Contains", NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "ContainmentMode", mode, NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "ContainmentComparison", compare, NULL, NULL);
+ e_soap_request_start_element (ctx->req, "IndexedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "FieldURI", uri, NULL, NULL);
+ e_soap_request_add_attribute (ctx->req, "FieldIndex", index, NULL, NULL);
+ e_soap_request_end_element (ctx->req);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -183,14 +183,14 @@ ews_restriction_write_exists_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "Exists", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "Exists", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -200,17 +200,17 @@ ews_restriction_write_greater_than_or_equal_to_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "IsGreaterThanOrEqualTo", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_start_element (ctx->msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "IsGreaterThanOrEqualTo", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_start_element (ctx->req, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -220,17 +220,17 @@ ews_restriction_write_less_than_or_equal_to_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "IsLessThanOrEqualTo", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_start_element (ctx->msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "IsLessThanOrEqualTo", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_start_element (ctx->req, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -240,17 +240,17 @@ ews_restriction_write_greater_than_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "IsGreaterThan", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_start_element (ctx->msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "IsGreaterThan", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_start_element (ctx->req, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -260,17 +260,17 @@ ews_restriction_write_less_than_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "IsLessThan", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_start_element (ctx->msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "IsLessThan", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_start_element (ctx->req, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
+ e_soap_request_end_element (ctx->req);
}
static void
@@ -280,17 +280,17 @@ ews_restriction_write_is_equal_to_message (EvalContext *ctx,
{
g_return_if_fail (ctx != NULL);
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
return;
}
- e_soap_message_start_element (ctx->msg, "IsEqualTo", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "FieldURI", NULL, NULL, "FieldURI",
uri);
- e_soap_message_start_element (ctx->msg, "FieldURIOrConstant", NULL, NULL);
- e_ews_message_write_string_parameter_with_attribute (ctx->msg, "Constant", NULL, NULL, "Value", val);
- e_soap_message_end_element (ctx->msg);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_start_element (ctx->req, "IsEqualTo", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "FieldURI", NULL, NULL, "FieldURI",
uri);
+ e_soap_request_start_element (ctx->req, "FieldURIOrConstant", NULL, NULL);
+ e_ews_request_write_string_parameter_with_attribute (ctx->req, "Constant", NULL, NULL, "Value", val);
+ e_soap_request_end_element (ctx->req);
+ e_soap_request_end_element (ctx->req);
}
static ESExpResult *
@@ -324,27 +324,27 @@ e_ews_implement_contact_contains (ESExp *f,
const gchar *value;
value = argv[1]->value.string;
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
- e_soap_message_start_element (ctx->msg, "Or", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "Or", NULL, NULL);
while (n < G_N_ELEMENTS (contact_field)) {
if ((contact_field[n].flag == CONTACT_NAME) &&
(!contact_field[n].indexed)) {
ews_restriction_write_contains_message (ctx, mode,
"IgnoreCase", contact_field[n].field_uri, value);
}
n++;
}
- e_soap_message_end_element (ctx->msg); /* Or */
+ e_soap_request_end_element (ctx->req); /* Or */
}
} else if (!strcmp (field, "x-evolution-any-field")) {
gint n = 0;
const gchar *value;
value = argv[1]->value.string;
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
- e_soap_message_start_element (ctx->msg, "Or", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "Or", NULL, NULL);
while (n < G_N_ELEMENTS (contact_field)) {
if (!contact_field[n].indexed) {
ews_restriction_write_contains_message (ctx,
"Substring", "IgnoreCase", contact_field[n].field_uri, value);
@@ -357,22 +357,22 @@ e_ews_implement_contact_contains (ESExp *f,
}
n++;
}
- e_soap_message_end_element (ctx->msg); /* Or */
+ e_soap_request_end_element (ctx->req); /* Or */
}
} else if (!strcmp (field, "email")) {
const gchar *value;
gint n = 0;
value = argv[1]->value.string;
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
- e_soap_message_start_element (ctx->msg, "Or", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "Or", NULL, NULL);
while (n < G_N_ELEMENTS (email_index)) {
ews_restriction_write_contains_message_indexed (ctx, mode,
"IgnoreCase", "contacts:EmailAddress", email_index[n].field_index, value);
n++;
}
- e_soap_message_end_element (ctx->msg); /* Or */
+ e_soap_request_end_element (ctx->req); /* Or */
}
} else if (!strcmp (field, "category_list")) {
const gchar *value;
@@ -397,7 +397,7 @@ e_ews_func_and_or_not (ESExp *f,
{
ESExpResult *r, *r1;
EvalContext *ctx = data;
- ESoapMessage *used_msg;
+ ESoapRequest *used_req;
gboolean was_any_applicable;
gint ii, n_applicable = 0;
const gchar *elem_name = NULL;
@@ -408,8 +408,8 @@ e_ews_func_and_or_not (ESExp *f,
goto result;
was_any_applicable = ctx->any_applicable;
- used_msg = ctx->msg;
- ctx->msg = NULL;
+ used_req = ctx->req;
+ ctx->req = NULL;
for (ii = 0; ii < argc; ii++) {
ctx->any_applicable = FALSE;
@@ -421,9 +421,9 @@ e_ews_func_and_or_not (ESExp *f,
n_applicable++;
}
- ctx->msg = used_msg;
+ ctx->req = used_req;
- if (!ctx->msg || !n_applicable) {
+ if (!ctx->req || !n_applicable) {
ctx->any_applicable = n_applicable > 0 || was_any_applicable;
goto result;
}
@@ -440,7 +440,7 @@ e_ews_func_and_or_not (ESExp *f,
elem_name = "Not";
if (elem_name)
- e_soap_message_start_element (ctx->msg, elem_name, NULL, NULL);
+ e_soap_request_start_element (ctx->req, elem_name, NULL, NULL);
for (ii = 0; ii < argc; ii++) {
r1 = e_sexp_term_eval (f, argv[ii]);
@@ -448,7 +448,7 @@ e_ews_func_and_or_not (ESExp *f,
}
if (elem_name)
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_end_element (ctx->req);
result:
r = e_sexp_result_new (f, ESEXP_RES_UNDEFINED);
@@ -489,13 +489,13 @@ calendar_func_contains (ESExp *f,
const gchar *value;
value = argv[1]->value.string;
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
- e_soap_message_start_element (ctx->msg, "Or", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "Or", NULL, NULL);
ews_restriction_write_contains_message (ctx, "Substring",
"IgnoreCase", "calendar:RequiredAttendees", value);
ews_restriction_write_contains_message (ctx, "Substring",
"IgnoreCase", "calendar:OptionalAttendees", value);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_end_element (ctx->req);
}
} else if (!g_strcmp0 (field, "organizer")) {
const gchar *value;
@@ -517,10 +517,10 @@ calendar_func_contains (ESExp *f,
gint n = 0;
value = argv[1]->value.string;
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
- e_soap_message_start_element (ctx->msg, "Or", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "Or", NULL, NULL);
while (n < G_N_ELEMENTS (calendar_field)) {
if (calendar_field[n].any_field) {
ews_restriction_write_contains_message (ctx,
"Substring", "IgnoreCase", calendar_field[n].field_uri, value);
@@ -534,7 +534,7 @@ calendar_func_contains (ESExp *f,
}
n++;
}
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_end_element (ctx->req);
}
}
}
@@ -635,7 +635,7 @@ calendar_func_occur_in_time_range (ESExp *f,
return NULL;
}
- if (!ctx->msg) {
+ if (!ctx->req) {
ctx->any_applicable = TRUE;
} else {
gchar *start, *end;
@@ -643,10 +643,10 @@ calendar_func_occur_in_time_range (ESExp *f,
start = e_ews_make_timestamp (argv[0]->value.time);
end = e_ews_make_timestamp (argv[1]->value.time);
- e_soap_message_start_element (ctx->msg, "And", NULL, NULL);
+ e_soap_request_start_element (ctx->req, "And", NULL, NULL);
ews_restriction_write_greater_than_or_equal_to_message (ctx, "calendar:Start", start);
ews_restriction_write_less_than_or_equal_to_message (ctx, "calendar:End", end);
- e_soap_message_end_element (ctx->msg);
+ e_soap_request_end_element (ctx->req);
g_free (start);
g_free (end);
@@ -1311,13 +1311,13 @@ e_ews_query_check_applicable (const gchar *query,
}
void
-e_ews_query_to_restriction (ESoapMessage *msg,
+e_ews_query_to_restriction (ESoapRequest *req,
const gchar *query,
EEwsFolderType type)
{
EvalContext ctx;
- ctx.msg = msg;
+ ctx.req = req;
ctx.any_applicable = FALSE;
e_ews_convert_sexp_to_restriction (&ctx, query, type);
diff --git a/src/EWS/common/e-ews-query-to-restriction.h b/src/EWS/common/e-ews-query-to-restriction.h
index 6cc00cec..1869bf7c 100644
--- a/src/EWS/common/e-ews-query-to-restriction.h
+++ b/src/EWS/common/e-ews-query-to-restriction.h
@@ -8,13 +8,13 @@
#ifndef E_EWS_QUERY_TO_RESTRICTION_H
#define E_EWS_QUERY_TO_RESTRICTION_H
-#include "common/e-soap-message.h"
+#include "common/e-soap-request.h"
#include "common/e-ews-folder.h"
gboolean e_ews_query_check_applicable (const gchar *query,
EEwsFolderType type);
-void e_ews_query_to_restriction (ESoapMessage *msg,
+void e_ews_query_to_restriction (ESoapRequest *req,
const gchar *query,
EEwsFolderType type);
diff --git a/src/EWS/common/e-ews-message.c b/src/EWS/common/e-ews-request.c
similarity index 50%
rename from src/EWS/common/e-ews-message.c
rename to src/EWS/common/e-ews-request.c
index 897d573b..ffa20d05 100644
--- a/src/EWS/common/e-ews-message.c
+++ b/src/EWS/common/e-ews-request.c
@@ -14,28 +14,8 @@
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxml/tree.h>
-#include "e-ews-message.h"
-static SoupBuffer *
-ews_soup_chunk_allocator (SoupMessage *message,
- gsize max_len,
- gpointer user_data)
-{
- gsize len = 32768;
- guchar *data;
-
- data = g_new0 (guchar, len);
-
- return soup_buffer_new_take (data, len);
-}
-
-void
-e_ews_message_attach_chunk_allocator (SoupMessage *message)
-{
- g_return_if_fail (SOUP_IS_MESSAGE (message));
-
- soup_message_set_chunk_allocator (message, ews_soup_chunk_allocator, NULL, NULL);
-}
+#include "e-ews-request.h"
static const gchar *
convert_server_version_to_string (EEwsServerVersion version)
@@ -68,30 +48,8 @@ convert_server_version_to_string (EEwsServerVersion version)
return "Exchange2007";
}
-void
-e_ews_message_set_user_agent_header (SoupMessage *message,
- CamelEwsSettings *settings)
-{
- g_return_if_fail (SOUP_IS_MESSAGE (message));
- g_return_if_fail (CAMEL_IS_EWS_SETTINGS (settings));
-
- if (camel_ews_settings_get_override_user_agent (settings)) {
- gchar *user_agent;
-
- user_agent = camel_ews_settings_dup_user_agent (settings);
-
- if (user_agent && *user_agent) {
- soup_message_headers_append (soup_message_get_request_headers (message),
"User-Agent", user_agent);
- }
-
- g_free (user_agent);
- } else {
- soup_message_headers_append (soup_message_get_request_headers (message), "User-Agent",
"Evolution/" VERSION);
- }
-}
-
-ESoapMessage *
-e_ews_message_new_with_header (CamelEwsSettings *settings,
+ESoapRequest *
+e_ews_request_new_with_header (CamelEwsSettings *settings,
const gchar *uri,
const gchar *impersonate_user,
const gchar *method_name,
@@ -102,28 +60,18 @@ e_ews_message_new_with_header (CamelEwsSettings *settings,
gboolean force_minimum_version,
gboolean standard_handlers)
{
- ESoapMessage *msg;
+ ESoapRequest *req;
const gchar *server_ver;
EEwsServerVersion version;
- msg = e_soap_message_new (
+ req = e_soap_request_new (
SOUP_METHOD_POST, uri, FALSE, NULL, NULL, NULL, standard_handlers);
- if (msg == NULL) {
+ if (req == NULL) {
g_warning ("%s: Could not build SOAP message for uri '%s'", G_STRFUNC, uri);
return NULL;
}
- e_ews_message_attach_chunk_allocator (SOUP_MESSAGE (msg));
-
- soup_message_headers_append (
- soup_message_get_request_headers (SOUP_MESSAGE (msg)),
- "Content-Type", "text/xml; charset=utf-8");
- e_ews_message_set_user_agent_header (SOUP_MESSAGE (msg), settings);
- soup_message_headers_append (
- soup_message_get_request_headers (SOUP_MESSAGE (msg)),
- "Connection", "Keep-Alive");
-
- e_soap_message_start_envelope (msg);
+ e_soap_request_start_envelope (req);
if (force_minimum_version)
version = minimum_version;
@@ -132,131 +80,131 @@ e_ews_message_new_with_header (CamelEwsSettings *settings,
server_ver = convert_server_version_to_string (version);
- e_soap_message_start_header (msg);
+ e_soap_request_start_header (req);
- e_soap_message_start_element (
- msg, "RequestServerVersion", "types",
+ e_soap_request_start_element (
+ req, "RequestServerVersion", "types",
"http://schemas.microsoft.com/exchange/services/2006/types");
- e_soap_message_add_attribute (msg, "Version", server_ver, NULL, NULL);
- e_soap_message_end_element (msg);
+ e_soap_request_add_attribute (req, "Version", server_ver, NULL, NULL);
+ e_soap_request_end_element (req);
if (impersonate_user && *impersonate_user) {
- e_soap_message_start_element (msg, "ExchangeImpersonation", "types",
+ e_soap_request_start_element (req, "ExchangeImpersonation", "types",
"http://schemas.microsoft.com/exchange/services/2006/types");
- e_soap_message_start_element (msg, "ConnectingSID", "types", NULL);
+ e_soap_request_start_element (req, "ConnectingSID", "types", NULL);
if (strchr (impersonate_user, '@') != 0)
- e_soap_message_start_element (msg, "PrimarySmtpAddress", "types", NULL);
+ e_soap_request_start_element (req, "PrimarySmtpAddress", "types", NULL);
else
- e_soap_message_start_element (msg, "PrincipalName", "types", NULL);
- e_soap_message_write_string (msg, impersonate_user);
- e_soap_message_end_element (msg); /* PrimarySmtpAddress or PrincipalName */
+ e_soap_request_start_element (req, "PrincipalName", "types", NULL);
+ e_soap_request_write_string (req, impersonate_user);
+ e_soap_request_end_element (req); /* PrimarySmtpAddress or PrincipalName */
- e_soap_message_end_element (msg); /* ConnectingSID */
+ e_soap_request_end_element (req); /* ConnectingSID */
- e_soap_message_end_element (msg); /* ExchangeImpersonation */
+ e_soap_request_end_element (req); /* ExchangeImpersonation */
}
- e_soap_message_end_header (msg);
+ e_soap_request_end_header (req);
- e_soap_message_start_body (msg);
- e_soap_message_add_namespace (
- msg, "messages",
+ e_soap_request_start_body (req);
+ e_soap_request_add_namespace (
+ req, "messages",
"http://schemas.microsoft.com/exchange/services/2006/messages");
- e_soap_message_start_element (msg, method_name, "messages", NULL);
- e_soap_message_set_default_namespace (
- msg,
+ e_soap_request_start_element (req, method_name, "messages", NULL);
+ e_soap_request_set_default_namespace (
+ req,
"http://schemas.microsoft.com/exchange/services/2006/types");
if (attribute_name != NULL)
- e_soap_message_add_attribute (
- msg, attribute_name, attribute_value, NULL, NULL);
+ e_soap_request_add_attribute (
+ req, attribute_name, attribute_value, NULL, NULL);
- return msg;
+ return req;
}
void
-e_ews_message_write_string_parameter (ESoapMessage *msg,
+e_ews_request_write_string_parameter (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_write_string (req, value);
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_string_parameter_with_attribute (ESoapMessage *msg,
+e_ews_request_write_string_parameter_with_attribute (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value,
const gchar *attribute_name,
const gchar *attribute_value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_add_attribute (
- msg, attribute_name, attribute_value, NULL, NULL);
- e_soap_message_write_string (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_add_attribute (
+ req, attribute_name, attribute_value, NULL, NULL);
+ e_soap_request_write_string (req, value);
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_base64_parameter (ESoapMessage *msg,
+e_ews_request_write_base64_parameter (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_write_base64 (msg, value, strlen (value));
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_write_base64 (req, value, strlen (value));
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_int_parameter (ESoapMessage *msg,
+e_ews_request_write_int_parameter (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
glong value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_write_int (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_write_int (req, value);
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_double_parameter (ESoapMessage *msg,
+e_ews_request_write_double_parameter (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
gdouble value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_write_double (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_write_double (req, value);
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_time_parameter (ESoapMessage *msg,
+e_ews_request_write_time_parameter (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
time_t value)
{
- e_soap_message_start_element (msg, name, prefix, NULL);
- e_soap_message_write_time (msg, value);
- e_soap_message_end_element (msg);
+ e_soap_request_start_element (req, name, prefix, NULL);
+ e_soap_request_write_time (req, value);
+ e_soap_request_end_element (req);
}
void
-e_ews_message_write_footer (ESoapMessage *msg)
+e_ews_request_write_footer (ESoapRequest *req)
{
- e_soap_message_end_element (msg);
- e_soap_message_end_body (msg);
- e_soap_message_end_envelope (msg);
+ e_soap_request_end_element (req);
+ e_soap_request_end_body (req);
+ e_soap_request_end_envelope (req);
- e_soap_message_persist (msg);
+ e_soap_request_persist (req);
}
void
-e_ews_message_write_extended_tag (ESoapMessage *msg,
+e_ews_request_write_extended_tag (ESoapRequest *req,
guint32 prop_id,
const gchar *prop_type)
{
@@ -264,16 +212,16 @@ e_ews_message_write_extended_tag (ESoapMessage *msg,
num = g_strdup_printf ("%d", prop_id);
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyTag", num, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyType", prop_type, NULL, NULL);
- e_soap_message_end_element (msg); /* ExtendedFieldURI */
+ e_soap_request_start_element (req, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyTag", num, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyType", prop_type, NULL, NULL);
+ e_soap_request_end_element (req); /* ExtendedFieldURI */
g_free (num);
}
void
-e_ews_message_write_extended_distinguished_tag (ESoapMessage *msg,
+e_ews_request_write_extended_distinguished_tag (ESoapRequest *req,
const gchar *set_id,
guint32 prop_id,
const gchar *prop_type)
@@ -282,37 +230,37 @@ e_ews_message_write_extended_distinguished_tag (ESoapMessage *msg,
num = g_strdup_printf ("%d", prop_id);
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "DistinguishedPropertySetId", set_id, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyId", num, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyType", prop_type, NULL, NULL);
- e_soap_message_end_element (msg); /* ExtendedFieldURI */
+ e_soap_request_start_element (req, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (req, "DistinguishedPropertySetId", set_id, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyId", num, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyType", prop_type, NULL, NULL);
+ e_soap_request_end_element (req); /* ExtendedFieldURI */
g_free (num);
}
void
-e_ews_message_write_extended_name (ESoapMessage *msg,
+e_ews_request_write_extended_name (ESoapRequest *req,
const gchar *name,
const gchar *prop_type)
{
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyName", name, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyType", prop_type, NULL, NULL);
- e_soap_message_end_element (msg); /* ExtendedFieldURI */
+ e_soap_request_start_element (req, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyName", name, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyType", prop_type, NULL, NULL);
+ e_soap_request_end_element (req); /* ExtendedFieldURI */
}
void
-e_ews_message_write_extended_distinguished_name (ESoapMessage *msg,
+e_ews_request_write_extended_distinguished_name (ESoapRequest *req,
const gchar *set_id,
const gchar *name,
const gchar *prop_type)
{
- e_soap_message_start_element (msg, "ExtendedFieldURI", NULL, NULL);
- e_soap_message_add_attribute (msg, "DistinguishedPropertySetId", set_id, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyName", name, NULL, NULL);
- e_soap_message_add_attribute (msg, "PropertyType", prop_type, NULL, NULL);
- e_soap_message_end_element (msg); /* ExtendedFieldURI */
+ e_soap_request_start_element (req, "ExtendedFieldURI", NULL, NULL);
+ e_soap_request_add_attribute (req, "DistinguishedPropertySetId", set_id, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyName", name, NULL, NULL);
+ e_soap_request_add_attribute (req, "PropertyType", prop_type, NULL, NULL);
+ e_soap_request_end_element (req); /* ExtendedFieldURI */
}
static xmlXPathObjectPtr
@@ -346,7 +294,7 @@ xpath_eval (xmlXPathContextPtr ctx,
}
void
-e_ews_message_replace_server_version (ESoapMessage *msg,
+e_ews_request_replace_server_version (ESoapRequest *req,
EEwsServerVersion version)
{
xmlDocPtr doc;
@@ -356,7 +304,7 @@ e_ews_message_replace_server_version (ESoapMessage *msg,
xmlNodePtr node;
const gchar *server_ver;
- doc = e_soap_message_get_xml_doc (msg);
+ doc = e_soap_request_get_xml_doc (req);
xpctx = xmlXPathNewContext (doc);
xmlXPathRegisterNs (
diff --git a/src/EWS/common/e-ews-message.h b/src/EWS/common/e-ews-request.h
similarity index 55%
rename from src/EWS/common/e-ews-message.h
rename to src/EWS/common/e-ews-request.h
index 21494486..13361161 100644
--- a/src/EWS/common/e-ews-message.h
+++ b/src/EWS/common/e-ews-request.h
@@ -6,11 +6,10 @@
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
-#ifndef E_EWS_MESSAGE_H
-#define E_EWS_MESSAGE_H
+#ifndef E_EWS_REQUEST_H
+#define E_EWS_REQUEST_H
-#include "e-soap-message.h"
-#include "camel-ews-settings.h"
+#include "e-soap-request.h"
G_BEGIN_DECLS
@@ -25,79 +24,73 @@ typedef enum {
E_EWS_EXCHANGE_FUTURE
} EEwsServerVersion;
-void e_ews_message_attach_chunk_allocator
- (SoupMessage *message);
-void e_ews_message_set_user_agent_header
- (SoupMessage *message,
- CamelEwsSettings *settings);
-ESoapMessage * e_ews_message_new_with_header (CamelEwsSettings *settings,
- const gchar *uri,
+ESoapRequest * e_ews_request_new_with_header (const gchar *uri,
const gchar *impersonate_user,
const gchar *method_name,
const gchar *attribute_name,
const gchar *attribute_value,
EEwsServerVersion server_version,
EEwsServerVersion minimum_version,
- gboolean force_minimum_version,
- gboolean standard_handlers);
-void e_ews_message_write_string_parameter
- (ESoapMessage *msg,
+ gboolean force_minimum_version);
+void e_ews_request_write_string_parameter
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value);
-void e_ews_message_write_string_parameter_with_attribute
- (ESoapMessage *msg,
+void e_ews_request_write_string_parameter_with_attribute
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value,
const gchar *attribute_name,
const gchar *attribute_value);
-void e_ews_message_write_base64_parameter
- (ESoapMessage *msg,
+void e_ews_request_write_base64_parameter
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
const gchar *value);
-void e_ews_message_write_int_parameter
- (ESoapMessage *msg,
+void e_ews_request_write_int_parameter
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
glong value);
-void e_ews_message_write_double_parameter
- (ESoapMessage *msg,
+void e_ews_request_write_double_parameter
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
gdouble value);
-void e_ews_message_write_time_parameter
- (ESoapMessage *msg,
+void e_ews_request_write_time_parameter
+ (ESoapRequest *req,
const gchar *name,
const gchar *prefix,
time_t value);
-void e_ews_message_write_footer (ESoapMessage *msg);
+void e_ews_request_write_footer (ESoapRequest *req);
-void e_ews_message_write_extended_tag
- (ESoapMessage *msg,
+void e_ews_request_write_extended_tag
+ (ESoapRequest *req,
guint32 prop_id,
const gchar *prop_type);
-void e_ews_message_write_extended_distinguished_tag
- (ESoapMessage *msg,
+void e_ews_request_write_extended_distinguished_tag
+ (ESoapRequest *req,
const gchar *set_id,
guint32 prop_id,
const gchar *prop_type);
-void e_ews_message_write_extended_name
- (ESoapMessage *msg,
+void e_ews_request_write_extended_name
+ (ESoapRequest *req,
const gchar *name,
const gchar *prop_type);
-void e_ews_message_write_extended_distinguished_name
- (ESoapMessage *msg,
+void e_ews_request_write_extended_distinguished_name
+ (ESoapRequest *req,
const gchar *set_id,
const gchar *name,
const gchar *prop_type);
-void e_ews_message_replace_server_version (ESoapMessage *msg,
- EEwsServerVersion version);
+void e_ews_request_replace_server_version
+ (ESoapRequest *req,
+ EEwsServerVersion version);
G_END_DECLS
diff --git a/src/EWS/common/e-soap-request.c b/src/EWS/common/e-soap-request.c
new file mode 100644
index 00000000..1d35ecb0
--- /dev/null
+++ b/src/EWS/common/e-soap-request.c
@@ -0,0 +1,890 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * SPDX-FileCopyrightText: (C) 1999-2008 Novell, Inc. (www.novell.com)
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#include "evolution-ews-config.h"
+
+#include <libedataserver/libedataserver.h>
+
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+#include <libsoup/soup.h>
+#ifdef G_OS_WIN32
+#include <io.h>
+#endif
+
+#include "e-soap-request.h"
+#include "e-ews-debug.h"
+
+struct _ESoapRequestPrivate {
+ gchar *method;
+ GUri *uri;
+
+ /* Serialization fields */
+ xmlParserCtxtPtr ctxt;
+ xmlDocPtr doc;
+ xmlNodePtr last_node;
+ xmlNsPtr soap_ns;
+ xmlNsPtr xsi_ns;
+ xmlChar *env_prefix;
+ xmlChar *env_uri;
+ gboolean body_started;
+ gchar *action;
+};
+
+G_DEFINE_TYPE_WITH_PRIVATE (ESoapRequest, e_soap_request, G_TYPE_OBJECT)
+
+static void
+soap_request_finalize (GObject *object)
+{
+ ESoapRequest *req = E_SOAP_REQUEST (object);
+
+ g_clear_pointer (&req->priv->method, g_free);
+ g_clear_pointer (&req->priv->uri, g_uri_unref);
+
+ g_clear_pointer (&req->priv->doc, xmlFreeDoc);
+ g_clear_pointer (&req->priv->action, g_free);
+ g_clear_pointer (&req->priv->env_uri, xmlFree);
+ g_clear_pointer (&req->priv->env_prefix, xmlFree);
+
+ /* Chain up to parent's method. */
+ G_OBJECT_CLASS (e_soap_request_parent_class)->finalize (object);
+}
+
+static void
+e_soap_request_class_init (ESoapRequestClass *class)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (class);
+ object_class->finalize = soap_request_finalize;
+}
+
+static void
+e_soap_request_init (ESoapRequest *req)
+{
+ req->priv = e_soap_request_get_instance_private (req);
+
+ /* initialize XML structures */
+ req->priv->doc = xmlNewDoc ((const xmlChar *) "1.0");
+ req->priv->doc->standalone = FALSE;
+ req->priv->doc->encoding = xmlCharStrdup ("UTF-8");
+}
+
+static xmlNsPtr
+fetch_ns (ESoapRequest *req,
+ const gchar *prefix,
+ const gchar *ns_uri)
+{
+ xmlNsPtr ns = NULL;
+
+ if (prefix && ns_uri)
+ ns = xmlNewNs (
+ req->priv->last_node,
+ (const xmlChar *) ns_uri,
+ (const xmlChar *) prefix);
+ else if (prefix && !ns_uri) {
+ ns = xmlSearchNs (
+ req->priv->doc, req->priv->last_node,
+ (const xmlChar *) prefix);
+ if (!ns)
+ ns = xmlNewNs (
+ req->priv->last_node,
+ (const xmlChar *) "",
+ (const xmlChar *) prefix);
+ }
+
+ return ns;
+}
+
+/**
+ * e_soap_request_new:
+ * @method: the HTTP method for the created request.
+ * @uri_string: the destination endpoint (as a string).
+ * @standalone: ??? FIXME
+ * @xml_encoding: ??? FIXME
+ * @env_prefix: ??? FIXME
+ * @env_uri: ??? FIXME
+ *
+ * Creates a new empty #ESoapRequest, which will connect to @uri_string.
+ *
+ * Returns: the new #ESoapRequest (or %NULL if @uri_string could not be
+ * parsed).
+ */
+ESoapRequest *
+e_soap_request_new (const gchar *method,
+ const gchar *uri_string,
+ gboolean standalone,
+ const gchar *xml_encoding,
+ const gchar *env_prefix,
+ const gchar *env_uri)
+{
+ ESoapRequest *req;
+ GUri *uri;
+
+ uri = g_uri_parse (uri_string, SOUP_HTTP_URI_FLAGS | G_URI_FLAGS_PARSE_RELAXED, NULL);
+ if (!uri)
+ return NULL;
+
+ req = e_soap_request_new_from_uri (
+ method, uri, standalone,
+ xml_encoding, env_prefix, env_uri);
+
+ g_uri_unref (uri);
+
+ return req;
+}
+
+/**
+ * e_soap_request_new_from_uri:
+ * @method: the HTTP method for the created request.
+ * @uri: the destination endpoint (as a #GUri).
+ * @standalone: ??? FIXME
+ * @xml_encoding: ??? FIXME
+ * @env_prefix: ??? FIXME
+ * @env_uri: ??? FIXME
+ *
+ * Creates a new empty #ESoapRequest, which will connect to @uri
+ *
+ * Returns: the new #ESoapRequest
+ */
+ESoapRequest *
+e_soap_request_new_from_uri (const gchar *method,
+ GUri *uri,
+ gboolean standalone,
+ const gchar *xml_encoding,
+ const gchar *env_prefix,
+ const gchar *env_uri)
+{
+ ESoapRequest *req;
+
+ req = g_object_new (E_TYPE_SOAP_REQUEST, NULL);
+
+ req->priv->method = g_strdup (method);
+ req->priv->uri = g_uri_ref (uri);
+ req->priv->doc->standalone = standalone;
+
+ if (xml_encoding) {
+ xmlFree ((xmlChar *) req->priv->doc->encoding);
+ req->priv->doc->encoding = xmlCharStrdup (xml_encoding);
+ }
+
+ if (env_prefix != NULL)
+ req->priv->env_prefix = xmlCharStrdup (env_prefix);
+ if (env_uri != NULL)
+ req->priv->env_uri = xmlCharStrdup (env_uri);
+
+ return req;
+}
+
+/**
+ * e_soap_request_start_envelope:
+ * @req: the %ESoapRequest.
+ *
+ * Starts the top level SOAP Envelope element.
+ */
+void
+e_soap_request_start_envelope (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->doc->xmlRootNode = xmlNewDocNode (
+ req->priv->doc, NULL,
+ (const xmlChar *) "Envelope",
+ (const xmlChar *) NULL);
+ req->priv->last_node = req->priv->doc->xmlRootNode;
+
+ req->priv->soap_ns = xmlNewNs (
+ req->priv->doc->xmlRootNode,
+ req->priv->env_uri ? req->priv->env_uri :
+ (const xmlChar *) "http://schemas.xmlsoap.org/soap/envelope/",
+ req->priv->env_prefix ? req->priv->env_prefix :
+ (const xmlChar *) "SOAP-ENV");
+
+ if (req->priv->env_uri != NULL) {
+ xmlFree (req->priv->env_uri);
+ req->priv->env_uri = NULL;
+ }
+
+ if (req->priv->env_prefix) {
+ xmlFree (req->priv->env_prefix);
+ req->priv->env_prefix = NULL;
+ }
+
+ xmlSetNs (
+ req->priv->doc->xmlRootNode,
+ req->priv->soap_ns);
+ xmlNewNs (
+ req->priv->doc->xmlRootNode,
+ (const xmlChar *) "http://schemas.xmlsoap.org/soap/encoding/",
+ (const xmlChar *) "SOAP-ENC");
+ xmlNewNs (
+ req->priv->doc->xmlRootNode,
+ (const xmlChar *) "http://www.w3.org/2001/XMLSchema",
+ (const xmlChar *) "xsd");
+ xmlNewNs (
+ req->priv->doc->xmlRootNode,
+ (const xmlChar *) "http://schemas.xmlsoap.org/soap/envelope/",
+ (const xmlChar *) "SOAP-ENV");
+ req->priv->xsi_ns = xmlNewNs (
+ req->priv->doc->xmlRootNode,
+ (const xmlChar *) "http://www.w3.org/2001/XMLSchema-instance",
+ (const xmlChar *) "xsi");
+}
+
+/**
+ * e_soap_request_end_envelope:
+ * @req: the %ESoapRequest.
+ *
+ * Closes the top level SOAP Envelope element.
+ */
+void
+e_soap_request_end_envelope (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_start_body:
+ * @req: the %ESoapRequest.
+ *
+ * Starts the SOAP Body element.
+ */
+void
+e_soap_request_start_body (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ if (req->priv->body_started)
+ return;
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "Body", NULL);
+
+ req->priv->body_started = TRUE;
+}
+
+/**
+ * e_soap_request_end_body:
+ * @req: the %ESoapRequest.
+ *
+ * Closes the SOAP Body element.
+ */
+void
+e_soap_request_end_body (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_start_element:
+ * @req: the #ESoapRequest.
+ * @name: the element name.
+ * @prefix: the namespace prefix
+ * @ns_uri: the namespace URI
+ *
+ * Starts a new arbitrary request element, with @name as the element
+ * name, @prefix as the XML Namespace prefix, and @ns_uri as the XML
+ * Namespace uri for * the created element.
+ *
+ * Passing @prefix with no @ns_uri will cause a recursive search for
+ * an existing namespace with the same prefix. Failing that a new ns
+ * will be created with an empty uri.
+ *
+ * Passing both @prefix and @ns_uri always causes new namespace
+ * attribute creation.
+ *
+ * Passing NULL for both @prefix and @ns_uri causes no prefix to be
+ * used, and the element will be in the default namespace.
+ */
+void
+e_soap_request_start_element (ESoapRequest *req,
+ const gchar *name,
+ const gchar *prefix,
+ const gchar *ns_uri)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node, NULL,
+ (const xmlChar *) name, NULL);
+
+ xmlSetNs (req->priv->last_node, fetch_ns (req, prefix, ns_uri));
+
+ if (ns_uri == NULL)
+ ns_uri = "";
+
+ if (req->priv->body_started && req->priv->action == NULL)
+ req->priv->action = g_strconcat (ns_uri, "#", name, NULL);
+}
+
+/**
+ * e_soap_request_end_element:
+ * @req: the #ESoapRequest.
+ *
+ * Closes the current request element.
+ */
+void
+e_soap_request_end_element (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->last_node = req->priv->last_node->parent;
+}
+
+/**
+ * e_soap_request_start_fault:
+ * @req: the #ESoapRequest.
+ * @faultcode: faultcode element value
+ * @faultstring: faultstring element value
+ * @faultfactor: faultfactor element value
+ *
+ * Starts a new SOAP Fault element, creating faultcode, faultstring,
+ * and faultfactor child elements.
+ *
+ * If you wish to add the faultdetail element, use
+ * e_soap_request_start_fault_detail(), and then
+ * e_soap_request_start_element() to add arbitrary sub-elements.
+ */
+void
+e_soap_request_start_fault (ESoapRequest *req,
+ const gchar *faultcode,
+ const gchar *faultstring,
+ const gchar *faultfactor)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "Fault", NULL);
+ xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "faultcode",
+ (const xmlChar *) faultcode);
+ xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "faultstring",
+ (const xmlChar *) faultstring);
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "faultfactor",
+ (const xmlChar *) faultfactor);
+ if (faultfactor == NULL)
+ e_soap_request_set_null (req);
+
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_end_fault:
+ * @req: the #ESoapRequest.
+ *
+ * Closes the current SOAP Fault element.
+ */
+void
+e_soap_request_end_fault (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_start_fault_detail:
+ * @req: the #ESoapRequest.
+ *
+ * Start the faultdetail child element of the current SOAP Fault
+ * element. The faultdetail element allows arbitrary data to be sent
+ * in a returned fault.
+ **/
+void
+e_soap_request_start_fault_detail (ESoapRequest *req)
+{
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "detail",
+ (const xmlChar *) NULL);
+}
+
+/**
+ * e_soap_request_end_fault_detail:
+ * @req: the #ESoapRequest.
+ *
+ * Closes the current SOAP faultdetail element.
+ */
+void
+e_soap_request_end_fault_detail (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_start_header:
+ * @req: the #ESoapRequest.
+ *
+ * Creates a new SOAP Header element. You can call
+ * e_soap_request_start_header_element() after this to add a new
+ * header child element. SOAP Header elements allow out-of-band data
+ * to be transferred while not interfering with the request body.
+ *
+ * This should be called after e_soap_request_start_envelope() and
+ * before e_soap_request_start_body().
+ */
+void
+e_soap_request_start_header (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ req->priv->last_node = xmlNewChild (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "Header",
+ (const xmlChar *) NULL);
+}
+
+/**
+ * e_soap_request_end_header:
+ * @req: the #ESoapRequest.
+ *
+ * Closes the current SOAP Header element.
+ */
+void
+e_soap_request_end_header (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_start_header_element:
+ * @req: the #ESoapRequest.
+ * @name: name of the header element
+ * @must_understand: whether the recipient must understand the header in order
+ * to proceed with processing the request
+ * @actor_uri: the URI which represents the destination actor for this header.
+ * @prefix: the namespace prefix
+ * @ns_uri: the namespace URI
+ *
+ * Starts a new SOAP arbitrary header element.
+ */
+void
+e_soap_request_start_header_element (ESoapRequest *req,
+ const gchar *name,
+ gboolean must_understand,
+ const gchar *actor_uri,
+ const gchar *prefix,
+ const gchar *ns_uri)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ e_soap_request_start_element (req, name, prefix, ns_uri);
+ if (actor_uri != NULL)
+ xmlNewNsProp (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "actorUri",
+ (const xmlChar *) actor_uri);
+ if (must_understand)
+ xmlNewNsProp (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "mustUnderstand",
+ (const xmlChar *) "1");
+}
+
+/**
+ * e_soap_request_end_header_element:
+ * @req: the #ESoapRequest.
+ *
+ * Closes the current SOAP header element.
+ */
+void
+e_soap_request_end_header_element (ESoapRequest *req)
+{
+ e_soap_request_end_element (req);
+}
+
+/**
+ * e_soap_request_write_int:
+ * @req: the #ESoapRequest.
+ * @i: the integer value to write.
+ *
+ * Writes the stringified value of @i as the current element's content.
+ */
+void
+e_soap_request_write_int (ESoapRequest *req,
+ glong i)
+{
+ gchar *string;
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ string = g_strdup_printf ("%" G_GINT64_FORMAT, (gint64) i);
+ e_soap_request_write_string (req, string);
+ g_free (string);
+}
+
+/**
+ * e_soap_request_write_double:
+ * @req: the #ESoapRequest.
+ * @d: the double value to write.
+ *
+ * Writes the stringified value of @d as the current element's content.
+ */
+void
+e_soap_request_write_double (ESoapRequest *req,
+ gdouble d)
+{
+ gchar buffer[G_ASCII_DTOSTR_BUF_SIZE + 1];
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ g_ascii_dtostr (buffer, sizeof (buffer), d);
+ e_soap_request_write_string (req, buffer);
+}
+
+/**
+ * e_soap_request_write_base64:
+ * @req: the #ESoapRequest
+ * @string: the binary data buffer to encode
+ * @len: the length of data to encode
+ *
+ * Writes the Base-64 encoded value of @string as the current
+ * element's content.
+ **/
+void
+e_soap_request_write_base64 (ESoapRequest *req,
+ const gchar *string,
+ gint len)
+{
+ gchar *encoded;
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ encoded = g_base64_encode ((const guchar *) string, len);
+ e_soap_request_write_string (req, encoded);
+ g_free (encoded);
+}
+
+/**
+ * e_soap_request_write_time:
+ * @req: the #ESoapRequest.
+ * @timeval: the time_t to encode
+ *
+ * Writes the iso8601 value of @timeval as the current element's
+ * content.
+ **/
+void
+e_soap_request_write_time (ESoapRequest *req,
+ time_t timeval)
+{
+ GTimeVal tv;
+ gchar *iso_time;
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ tv.tv_usec = 0;
+ tv.tv_sec = timeval;
+
+ iso_time = g_time_val_to_iso8601 (&tv);
+ e_soap_request_write_string (req, iso_time);
+ g_free (iso_time);
+}
+
+/**
+ * e_soap_request_write_string:
+ * @req: the #ESoapRequest.
+ * @string: string to write.
+ *
+ * Writes the @string as the current element's content.
+ */
+void
+e_soap_request_write_string (ESoapRequest *req,
+ const gchar *string)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNodeAddContent (
+ req->priv->last_node,
+ (const xmlChar *) string);
+}
+
+/**
+ * e_soap_request_write_buffer:
+ * @req: the #ESoapRequest.
+ * @buffer: the string data buffer to write.
+ * @len: length of @buffer.
+ *
+ * Writes the string buffer pointed to by @buffer as the current
+ * element's content.
+ */
+void
+e_soap_request_write_buffer (ESoapRequest *req,
+ const gchar *buffer,
+ gint len)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNodeAddContentLen (
+ req->priv->last_node,
+ (const xmlChar *) buffer, len);
+}
+
+/**
+ * e_soap_request_set_element_type:
+ * @req: the #ESoapRequest.
+ * @xsi_type: the type name for the element.
+ *
+ * Sets the current element's XML schema xsi:type attribute, which
+ * specifies the element's type name.
+ */
+void
+e_soap_request_set_element_type (ESoapRequest *req,
+ const gchar *xsi_type)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNewNsProp (
+ req->priv->last_node,
+ req->priv->xsi_ns,
+ (const xmlChar *) "type",
+ (const xmlChar *) xsi_type);
+}
+
+/**
+ * e_soap_request_set_null:
+ * @req: the #ESoapRequest.
+ *
+ * Sets the current element's XML Schema xsi:null attribute.
+ */
+void
+e_soap_request_set_null (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNewNsProp (
+ req->priv->last_node,
+ req->priv->xsi_ns,
+ (const xmlChar *) "null",
+ (const xmlChar *) "1");
+}
+
+/**
+ * e_soap_request_add_attribute:
+ * @req: the #ESoapRequest.
+ * @name: name of the attribute
+ * @value: value of the attribute
+ * @prefix: the namespace prefix
+ * @ns_uri: the namespace URI
+ *
+ * Adds an XML attribute to the current element.
+ */
+void
+e_soap_request_add_attribute (ESoapRequest *req,
+ const gchar *name,
+ const gchar *value,
+ const gchar *prefix,
+ const gchar *ns_uri)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNewNsProp (
+ req->priv->last_node,
+ fetch_ns (req, prefix, ns_uri),
+ (const xmlChar *) name,
+ (const xmlChar *) value);
+}
+
+/**
+ * e_soap_request_add_namespace:
+ * @req: the #ESoapRequest.
+ * @prefix: the namespace prefix
+ * @ns_uri: the namespace URI, or NULL for empty namespace
+ *
+ * Adds a new XML namespace to the current element.
+ */
+void
+e_soap_request_add_namespace (ESoapRequest *req,
+ const gchar *prefix,
+ const gchar *ns_uri)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ if (ns_uri == NULL)
+ ns_uri = "";
+
+ xmlNewNs (
+ req->priv->last_node,
+ (const xmlChar *) ns_uri,
+ (const xmlChar *) prefix);
+}
+
+/**
+ * e_soap_request_set_default_namespace:
+ * @req: the #ESoapRequest.
+ * @ns_uri: the namespace URI.
+ *
+ * Sets the default namespace to the URI specified in @ns_uri. The
+ * default namespace becomes the namespace all non-explicitly
+ * namespaced child elements fall into.
+ */
+void
+e_soap_request_set_default_namespace (ESoapRequest *req,
+ const gchar *ns_uri)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ e_soap_request_add_namespace (req, NULL, ns_uri);
+}
+
+/**
+ * e_soap_request_set_encoding_style:
+ * @req: the #ESoapRequest.
+ * @enc_style: the new encodingStyle value
+ *
+ * Sets the encodingStyle attribute on the current element to the
+ * value of @enc_style.
+ */
+void
+e_soap_request_set_encoding_style (ESoapRequest *req,
+ const gchar *enc_style)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlNewNsProp (
+ req->priv->last_node,
+ req->priv->soap_ns,
+ (const xmlChar *) "encodingStyle",
+ (const xmlChar *) enc_style);
+}
+
+/**
+ * e_soap_request_reset:
+ * @req: the #ESoapRequest.
+ *
+ * Resets the internal XML representation of the SOAP request.
+ */
+void
+e_soap_request_reset (ESoapRequest *req)
+{
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ xmlFreeDoc (req->priv->doc);
+ req->priv->doc = xmlNewDoc ((const xmlChar *) "1.0");
+ req->priv->last_node = NULL;
+
+ g_free (req->priv->action);
+ req->priv->action = NULL;
+ req->priv->body_started = FALSE;
+
+ if (req->priv->env_uri != NULL) {
+ xmlFree (req->priv->env_uri);
+ req->priv->env_uri = NULL;
+ }
+
+ if (req->priv->env_prefix != NULL) {
+ xmlFree (req->priv->env_prefix);
+ req->priv->env_prefix = NULL;
+ }
+}
+
+/**
+ * e_soap_request_get_namespace_prefix:
+ * @req: the #ESoapRequest.
+ * @ns_uri: the namespace URI.
+ *
+ * Returns the namespace prefix for @ns_uri (or an empty string if
+ * @ns_uri is set to the default namespace)
+ *
+ * Returns: The namespace prefix, or %NULL if no namespace exists
+ * for the URI given.
+ */
+const gchar *
+e_soap_request_get_namespace_prefix (ESoapRequest *req,
+ const gchar *ns_uri)
+{
+ xmlNsPtr ns = NULL;
+
+ g_return_val_if_fail (E_IS_SOAP_REQUEST (req), NULL);
+ g_return_val_if_fail (ns_uri != NULL, NULL);
+
+ ns = xmlSearchNsByHref (
+ req->priv->doc,
+ req->priv->last_node,
+ (const xmlChar *) ns_uri);
+ if (ns != NULL) {
+ if (ns->prefix != NULL)
+ return (const gchar *) ns->prefix;
+ else
+ return "";
+ }
+
+ return NULL;
+}
+
+/**
+ * e_soap_request_get_xml_doc:
+ * @req: the #ESoapRequest.
+ *
+ * Returns the internal XML representation tree of the
+ * #ESoapRequest pointed to by @req.
+ *
+ * Returns: the #xmlDocPtr representing the SOAP request.
+ */
+xmlDocPtr
+e_soap_request_get_xml_doc (ESoapRequest *req)
+{
+ g_return_val_if_fail (E_IS_SOAP_REQUEST (req), NULL);
+
+ return req->priv->doc;
+}
+
+/**
+ * e_soap_request_persist:
+ * @req: the #ESoapRequest.
+ * @settings: a #CamelEwsSettings object, to read User-Agent header information from
+ *
+ * Writes the serialized XML tree to the #SoupMessage's buffer.
+ *
+ * Returns: (transfer full): a #SoupMessage containing the SOAP request at its
+ * request body.
+ */
+SoupMessage *
+e_soap_request_persist (ESoapRequest *req,
+ CamelEwsSettings *settings)
+{
+ SoupMessage *message;
+ xmlChar *body;
+ gint len;
+
+ g_return_if_fail (E_IS_SOAP_REQUEST (req));
+
+ message = soup_message_new_from_uri (req->priv->method, req->priv->uri);
+
+ if (!message)
+ return NULL;
+
+ xmlDocDumpMemory (req->priv->doc, &body, &len);
+
+ e_soup_session_util_set_message_request_body_from_data (message, FALSE,
+ "text/xml; charset=utf-8", body, len, (GDestroyNotify) xmlFree);
+
+ e_ews_connection_utils_set_user_agent_header (message, settings);
+
+ soup_message_headers_append (
+ soup_message_get_request_headers (message),
+ "Connection", "Keep-Alive");
+
+ return message;
+}
diff --git a/src/EWS/common/e-soap-request.h b/src/EWS/common/e-soap-request.h
new file mode 100644
index 00000000..fefce364
--- /dev/null
+++ b/src/EWS/common/e-soap-request.h
@@ -0,0 +1,135 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * SPDX-FileCopyrightText: (C) 1999-2008 Novell, Inc. (www.novell.com)
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#ifndef EWS_SOAP_REQUEST_H
+#define EWS_SOAP_REQUEST_H
+
+#include <time.h>
+#include <libxml/tree.h>
+#include <libsoup/soup-message.h>
+#include "camel-ews-settings.h"
+#include "e-soap-response.h"
+
+/* Standard GObject macros */
+#define E_TYPE_SOAP_REQUEST \
+ (e_soap_request_get_type ())
+#define E_SOAP_REQUEST(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_SOAP_REQUEST, ESoapRequest))
+#define E_SOAP_REQUEST_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_SOAP_REQUEST, ESoapRequestClass))
+#define E_IS_SOAP_REQUEST(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_SOAP_REQUEST))
+#define E_IS_SOAP_REQUEST_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_SOAP_REQUEST))
+#define E_SOAP_REQUEST_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_SOAP_REQUEST, ESoapRequestClass))
+
+G_BEGIN_DECLS
+
+typedef struct _ESoapRequest ESoapRequest;
+typedef struct _ESoapRequestClass ESoapRequestClass;
+typedef struct _ESoapRequestPrivate ESoapRequestPrivate;
+
+struct _ESoapRequest {
+ GObject parent;
+ ESoapRequestPrivate *priv;
+};
+
+struct _ESoapRequestClass {
+ GObjectClass parent_class;
+};
+
+GType e_soap_request_get_type (void) G_GNUC_CONST;
+ESoapRequest * e_soap_request_new (const gchar *method,
+ const gchar *uri_string,
+ gboolean standalone,
+ const gchar *xml_encoding,
+ const gchar *env_prefix,
+ const gchar *env_uri);
+ESoapRequest * e_soap_request_new_from_uri (const gchar *method,
+ GUri *uri,
+ gboolean standalone,
+ const gchar *xml_encoding,
+ const gchar *env_prefix,
+ const gchar *env_uri);
+void e_soap_request_start_envelope (ESoapRequest *req);
+void e_soap_request_end_envelope (ESoapRequest *req);
+void e_soap_request_start_body (ESoapRequest *req);
+void e_soap_request_end_body (ESoapRequest *req);
+void e_soap_request_start_element (ESoapRequest *req,
+ const gchar *name,
+ const gchar *prefix,
+ const gchar *ns_uri);
+void e_soap_request_end_element (ESoapRequest *req);
+void e_soap_request_start_fault (ESoapRequest *req,
+ const gchar *faultcode,
+ const gchar *faultstring,
+ const gchar *faultfactor);
+void e_soap_request_end_fault (ESoapRequest *req);
+void e_soap_request_start_fault_detail
+ (ESoapRequest *req);
+void e_soap_request_end_fault_detail (ESoapRequest *req);
+void e_soap_request_start_header (ESoapRequest *req);
+void e_soap_request_replace_header (ESoapRequest *req,
+ const gchar *name,
+ const gchar *value);
+void e_soap_request_end_header (ESoapRequest *req);
+void e_soap_request_start_header_element
+ (ESoapRequest *req,
+ const gchar *name,
+ gboolean must_understand,
+ const gchar *actor_uri,
+ const gchar *prefix,
+ const gchar *ns_uri);
+void e_soap_request_end_header_element
+ (ESoapRequest *req);
+void e_soap_request_write_int (ESoapRequest *req,
+ glong i);
+void e_soap_request_write_double (ESoapRequest *req,
+ gdouble d);
+void e_soap_request_write_base64 (ESoapRequest *req,
+ const gchar *string,
+ gint len);
+void e_soap_request_write_time (ESoapRequest *req,
+ time_t timeval);
+void e_soap_request_write_string (ESoapRequest *req,
+ const gchar *string);
+void e_soap_request_write_buffer (ESoapRequest *req,
+ const gchar *buffer,
+ gint len);
+void e_soap_request_set_element_type (ESoapRequest *req,
+ const gchar *xsi_type);
+void e_soap_request_set_null (ESoapRequest *req);
+void e_soap_request_add_attribute (ESoapRequest *req,
+ const gchar *name,
+ const gchar *value,
+ const gchar *prefix,
+ const gchar *ns_uri);
+void e_soap_request_add_namespace (ESoapRequest *req,
+ const gchar *prefix,
+ const gchar *ns_uri);
+void e_soap_request_set_default_namespace
+ (ESoapRequest *req,
+ const gchar *ns_uri);
+void e_soap_request_set_encoding_style
+ (ESoapRequest *req,
+ const gchar *enc_style);
+void e_soap_request_reset (ESoapRequest *req);
+const gchar * e_soap_request_get_namespace_prefix
+ (ESoapRequest *req,
+ const gchar *ns_uri);
+xmlDocPtr e_soap_request_get_xml_doc (ESoapRequest *req);
+SoupMessage * e_soap_request_persist (ESoapRequest *req,
+ CamelEwsSettings *settings);
+
+G_END_DECLS
+
+#endif /* E_SOAP_REQUEST_H */
diff --git a/src/EWS/common/e-soap-response.c b/src/EWS/common/e-soap-response.c
index 45de3069..911fe6a5 100644
--- a/src/EWS/common/e-soap-response.c
+++ b/src/EWS/common/e-soap-response.c
@@ -22,6 +22,22 @@ struct _ESoapResponsePrivate {
xmlNodePtr xml_method;
xmlNodePtr soap_fault;
GList *parameters;
+
+ /* Content stealing */
+ gchar *steal_node;
+ gchar *steal_dir;
+ gboolean steal_base64;
+
+ gint steal_b64_state;
+ guint steal_b64_save;
+ gint steal_fd;
+
+ /* Progress callbacks */
+ gsize response_size;
+ gsize response_received;
+ gsize progress_percent;
+ ESoapProgressFn progress_fn;
+ gpointer progress_data;
};
G_DEFINE_TYPE_WITH_PRIVATE (ESoapResponse, e_soap_response, G_TYPE_OBJECT)
@@ -43,6 +59,18 @@ soap_response_finalize (GObject *object)
g_clear_pointer (&resp->priv->xmldoc, xmlFreeDoc);
g_list_free (resp->priv->parameters);
+ if (resp->priv->ctxt) {
+ if (resp->priv->ctxt->myDoc)
+ xmlFreeDoc (resp->priv->ctxt->myDoc);
+ xmlFreeParserCtxt (resp->priv->ctxt);
+ }
+
+ g_free (resp->priv->steal_node);
+ g_free (resp->priv->steal_dir);
+
+ if (resp->priv->steal_fd != -1)
+ close (resp->priv->steal_fd);
+
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (e_soap_response_parent_class)->finalize (object);
}
@@ -62,6 +90,7 @@ e_soap_response_init (ESoapResponse *response)
response->priv = e_soap_response_get_instance_private (response);
response->priv->xmldoc = xmlNewDoc ((const xmlChar *)"1.0");
+ response->priv->steal_fd = -1;
}
/**
@@ -243,6 +272,263 @@ e_soap_response_from_xmldoc (ESoapResponse *response,
return TRUE;
}
+static void
+soap_sax_startElementNs (gpointer _ctxt,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *uri,
+ gint nb_namespaces,
+ const xmlChar **namespaces,
+ gint nb_attributes,
+ gint nb_defaulted,
+ const xmlChar **attributes)
+{
+ xmlParserCtxt *ctxt = _ctxt;
+ ESoapRequest *ews_msg = ctxt->_private;
+ gchar *fname;
+
+ xmlSAX2StartElementNs (
+ ctxt, localname, prefix, uri, nb_namespaces,
+ namespaces, nb_attributes, nb_defaulted,
+ attributes);
+
+ /* steal_node can contain multiple node name separated by " " */
+ if (ews_msg->priv->steal_node && *ews_msg->priv->steal_node) {
+ gchar **prop = g_strsplit (ews_msg->priv->steal_node, " ", 0);
+ gint i = 0;
+ gboolean isnode = FALSE;
+
+ while (prop[i]) {
+ if (strcmp ((const gchar *) localname, prop[i]) == 0) {
+ isnode = TRUE;
+ break;
+ }
+ i++;
+ }
+ g_strfreev (prop);
+
+ if (!isnode) return;
+ } else
+ return;
+
+ fname = g_build_filename (ews_msg->priv->steal_dir, "XXXXXX", NULL);
+ ews_msg->priv->steal_fd = g_mkstemp (fname);
+ if (ews_msg->priv->steal_fd != -1) {
+ if (ews_msg->priv->steal_base64) {
+ gchar *enc = g_base64_encode ((guchar *) fname, strlen (fname));
+ xmlSAX2Characters (ctxt, (xmlChar *) enc, strlen (enc));
+ g_free (enc);
+ } else
+ xmlSAX2Characters (ctxt, (xmlChar *) fname, strlen (fname));
+ } else {
+ gint err = errno;
+
+ g_warning ("%s: Failed to create temp file '%s': %s\n", G_STRFUNC, fname, g_strerror (err));
+ }
+ g_free (fname);
+}
+
+static void
+soap_sax_endElementNs (gpointer _ctxt,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *uri)
+{
+ xmlParserCtxt *ctxt = _ctxt;
+ ESoapRequest *ews_msg = ctxt->_private;
+
+ if (ews_msg->priv->steal_fd != -1) {
+ close (ews_msg->priv->steal_fd);
+ ews_msg->priv->steal_fd = -1;
+ }
+ xmlSAX2EndElementNs (ctxt, localname, prefix, uri);
+}
+
+static void
+soap_sax_characters (gpointer _ctxt,
+ const xmlChar *ch,
+ gint len)
+{
+ xmlParserCtxt *ctxt = _ctxt;
+ ESoapRequest *ews_msg = ctxt->_private;
+
+ if (ews_msg->priv->steal_fd == -1)
+ xmlSAX2Characters (ctxt, ch, len);
+ else if (!ews_msg->priv->steal_base64) {
+ if (write (ews_msg->priv->steal_fd, (const gchar *) ch, len) != len) {
+ write_err:
+ /* Handle error better */
+ g_warning ("Failed to write streaming data to file");
+ }
+ } else {
+ guchar *bdata = g_malloc ((len * 3 / 4) + 3);
+ gsize blen;
+
+ blen = g_base64_decode_step (
+ (const gchar *) ch, len,
+ bdata, &ews_msg->priv->steal_b64_state,
+ &ews_msg->priv->steal_b64_save);
+ if (write (ews_msg->priv->steal_fd, (const gchar *) bdata, blen) != blen) {
+ g_free (bdata);
+ goto write_err;
+ }
+ g_free (bdata);
+ }
+}
+
+#define BUFFER_SIZE 16384
+
+gboolean
+e_soap_response_from_message_sync (ESoapResponse *response,
+ SoupMessage *msg,
+ GInputStream *response_data,
+ GCancellable *cancellable,
+ GError **error)
+{
+ const gchar *size;
+ gboolean success;
+ gpointer buffer;
+ gsize nread = 0;
+
+ g_return_val_if_fail (E_IS_SOAP_RESPONSE (response), FALSE);
+ g_return_val_if_fail (SOAP_IS_MESSAGE (msg), FALSE);
+ g_return_val_if_fail (G_IS_INPUT_STREAM (response_data), FALSE);
+
+ response->priv->response_size = 0;
+ response->priv->response_received = 0;
+ response->priv->progress_percent = 0;
+
+ /* Discard the existing context, if there is one, and start again */
+ if (response->priv->ctxt) {
+ if (response->priv->ctxt->myDoc)
+ xmlFreeDoc (response->priv->ctxt->myDoc);
+ xmlFreeParserCtxt (response->priv->ctxt);
+ response->priv->ctxt = NULL;
+ }
+
+ if (response->priv->steal_fd != -1) {
+ close (response->priv->steal_fd);
+ response->priv->steal_fd = -1;
+ }
+
+ size = soup_message_headers_get_one (soup_message_get_response_headers (soup_msg), "Content-Length");
+
+ if (size)
+ req->priv->response_size = g_ascii_strtoll (size, NULL, 10);
+
+ buffer = g_malloc (BUFFER_SIZE);
+
+ while (success = g_input_stream_read_all (input_stream, buffer, BUFFER_SIZE, &nread, cancellable,
error),
+ success && nread > 0) {
+ response->priv->response_received += nread;
+
+ if (response->priv->response_size && response->priv->progress_fn) {
+ gint pc = response->priv->response_received * 100 / response->priv->response_size;
+ if (response->priv->progress_percent != pc) {
+ response->priv->progress_percent = pc;
+ response->priv->progress_fn (response->priv->progress_data,
response->priv->progress_percent);
+ }
+ }
+
+ if (!response->priv->ctxt) {
+ response->priv->ctxt = xmlCreatePushParserCtxt (NULL, req, buffer, nread, NULL);
+ response->priv->ctxt->_private = response;
+ response->priv->ctxt->sax->startElementNs = soap_sax_startElementNs;
+ response->priv->ctxt->sax->endElementNs = soap_sax_endElementNs;
+ response->priv->ctxt->sax->characters = soap_sax_characters;
+ } else {
+ xmlParseChunk (response->priv->ctxt, buffer, nread, 0);
+ }
+ }
+
+ g_free (buffer);
+
+ if (success) {
+ if (response->priv->ctxt) {
+ xmlDocPtr xmldoc;
+
+ xmlParseChunk (response->priv->ctxt, 0, 0, 1);
+
+ xmldoc = response->priv->ctxt->myDoc;
+
+ xmlFreeParserCtxt (response->priv->ctxt);
+ response->priv->ctxt = NULL;
+
+ if (xmldoc) {
+ success = e_soap_response_from_xmldoc (response, xmldoc);
+ if (!success)
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
"Received invalid SOAP response");
+ } else
+ succeess = FALSE;
+ } else {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA, "No data read");
+ success = FALSE;
+ }
+ }
+
+ if (response->priv->ctxt) {
+ if (response->priv->ctxt->myDoc)
+ xmlFreeDoc (response->priv->ctxt->myDoc);
+ xmlFreeParserCtxt (response->priv->ctxt);
+ response->priv->ctxt = NULL;
+ }
+
+ if (response->priv->steal_fd != -1) {
+ close (response->priv->steal_fd);
+ response->priv->steal_fd = -1;
+ }
+
+ return success;
+}
+
+/**
+ * e_soap_response_store_node_data:
+ * @response: the %ESoapResponse
+ * @nodename: the name of the XML node from which to store data
+ * @directory: cache directory in which to create data files
+ * @base64: flag to request base64 decoding of node content
+ *
+ * This requests that character data for certain XML nodes should
+ * be streamed directly to a disk file as it arrives, rather than
+ * being stored in memory.
+ *
+ * It is used only with e_soap_response_from_message_sync().
+ */
+void
+e_soap_response_store_node_data (ESoapResponse *response,
+ const gchar *nodename,
+ const gchar *directory,
+ gboolean base64)
+{
+ g_return_if_fail (E_IS_SOAP_RESPONSE (response));
+ g_return_if_fail (response->priv->steal_node == NULL);
+
+ response->priv->steal_node = g_strdup (nodename);
+ response->priv->steal_dir = g_strdup (directory);
+ response->priv->steal_base64 = base64;
+}
+
+/**
+ * e_soap_response_set_progress_fn:
+ * @response: the %ESoapResponse
+ * @fn: callback function to be given progress updates
+ * @object: first argument to callback function
+ *
+ * Starts the top level SOAP Envelope element.
+ *
+ * It is used only with e_soap_response_from_message_sync().
+ */
+void
+e_soap_response_set_progress_fn (ESoapResponse *response,
+ ESoapResponseProgressFn fn,
+ gpointer object)
+{
+ g_return_if_fail (E_IS_SOAP_RESPONSE (response));
+
+ response->priv->progress_fn = fn;
+ response->priv->progress_data = object;
+}
+
/**
* e_soap_response_get_method_name:
* @response: the #ESoapResponse object.
diff --git a/src/EWS/common/e-soap-response.h b/src/EWS/common/e-soap-response.h
index f0708c7f..6849a962 100644
--- a/src/EWS/common/e-soap-response.h
+++ b/src/EWS/common/e-soap-response.h
@@ -8,6 +8,7 @@
#define E_SOAP_RESPONSE_H
#include <glib-object.h>
+#include <libsoup/soup-message.h>
#include <libxml/tree.h>
/* Standard GObject macros */
@@ -31,6 +32,9 @@
G_BEGIN_DECLS
+/* By an amazing coincidence, this looks a lot like camel_progress() */
+typedef void (* ESoapResponseProgressFn) (gpointer object, gint percent);
+
typedef struct _ESoapResponse ESoapResponse;
typedef struct _ESoapResponseClass ESoapResponseClass;
typedef struct _ESoapResponsePrivate ESoapResponsePrivate;
@@ -54,6 +58,21 @@ gboolean e_soap_response_from_string (ESoapResponse *response,
gint xmlstr_length);
gboolean e_soap_response_from_xmldoc (ESoapResponse *response,
xmlDoc *xmldoc);
+gboolean e_soap_response_from_message_sync
+ (ESoapResponse *response,
+ SoupMessage *msg,
+ GInputStream *response_data,
+ GCancellable *cancellable,
+ GError **error);
+/* used only with e_soap_response_from_message_sync() */
+void e_soap_response_store_node_data (ESoapResponse *response,
+ const gchar *nodename,
+ const gchar *directory,
+ gboolean base64);
+/* used only with e_soap_response_from_message_sync() */
+void e_soap_response_set_progress_fn (ESoapResponse *response,
+ ESoapResponseProgressFn fn,
+ gpointer object);
const gchar * e_soap_response_get_method_name (ESoapResponse *response);
void e_soap_response_set_method_name (ESoapResponse *response,
const gchar *method_name);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]