From: David Woodhouse Date: Thu, 22 Jul 2010 14:04:24 +0000 (+0100) Subject: Base message creation into own function X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=61cde96cc5a4d03ede627738044dda735785c4c3;p=users%2Fdwmw2%2Fews-sync.git Base message creation into own function --- diff --git a/ews_syncfolder.c b/ews_syncfolder.c index 9e34626..5b7c267 100644 --- a/ews_syncfolder.c +++ b/ews_syncfolder.c @@ -47,6 +47,23 @@ static gchar *get_child_string(xmlNode *node, const gchar *name) return soup_soap_parameter_get_string_value(node); } +static SoupSoapMessage * +soup_ews_message_new(const gchar *url, const gchar *request) +{ + SoupSoapMessage *msg = soup_soap_message_new("POST", url, TRUE, NULL, NULL, NULL); + + soup_message_headers_append (SOUP_MESSAGE(msg)->request_headers, + "User-Agent", "libews/0.1"); + + soup_soap_message_start_envelope(msg); + soup_soap_message_start_body(msg); + soup_soap_message_add_namespace(msg, "types", + "http://schemas.microsoft.com/exchange/services/2006/types"); + soup_soap_message_start_element(msg, "SyncFolderItems", NULL, NULL); + soup_soap_message_set_default_namespace(msg, "http://schemas.microsoft.com/exchange/services/2006/messages"); + return msg; +} + int main(int argc, char **argv) { SoupSession *sess; @@ -95,17 +112,8 @@ int main(int argc, char **argv) soup_session_add_feature(sess, SOUP_SESSION_FEATURE(logger)); } - msg = soup_soap_message_new("POST", url, TRUE, NULL, NULL, NULL); - - soup_message_headers_append (SOUP_MESSAGE(msg)->request_headers, - "User-Agent", "libews/0.1"); + msg = soup_ews_message_new(url, "SyncFolderItems"); - soup_soap_message_start_envelope(msg); - soup_soap_message_start_body(msg); - soup_soap_message_add_namespace(msg, "types", - "http://schemas.microsoft.com/exchange/services/2006/types"); - soup_soap_message_start_element(msg, "SyncFolderItems", NULL, NULL); - soup_soap_message_set_default_namespace(msg, "http://schemas.microsoft.com/exchange/services/2006/messages"); soup_soap_message_start_element(msg, "ItemShape", NULL, NULL);