aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn/soap.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/msn/soap.c')
-rw-r--r--protocols/msn/soap.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/protocols/msn/soap.c b/protocols/msn/soap.c
index 93bb37a6..130df840 100644
--- a/protocols/msn/soap.c
+++ b/protocols/msn/soap.c
@@ -146,6 +146,24 @@ static void msn_soap_handle_response( struct http_request *http_req )
}
}
+static char *msn_soap_abservice_build( const char *body_fmt, const char *scenario, const char *ticket, ... )
+{
+ va_list params;
+ char *ret, *format, *body;
+
+ format = g_markup_printf_escaped( SOAP_ABSERVICE_PAYLOAD, scenario, ticket );
+
+ va_start( params, ticket );
+ body = g_strdup_vprintf( body_fmt, params );
+ va_end( params );
+
+ ret = g_strdup_printf( format, body );
+ g_free( body );
+ g_free( format );
+
+ return ret;
+}
+
/* passport_sso: Authentication MSNP15+ */
@@ -444,7 +462,7 @@ static int msn_soap_memlist_build_request( struct msn_soap_req_data *soap_req )
soap_req->url = g_strdup( SOAP_MEMLIST_URL );
soap_req->action = g_strdup( SOAP_MEMLIST_ACTION );
- soap_req->payload = g_markup_printf_escaped( SOAP_MEMLIST_PAYLOAD, md->tokens[1] );
+ soap_req->payload = msn_soap_abservice_build( SOAP_MEMLIST_PAYLOAD, "Initial", md->tokens[1] );
return 1;
}
@@ -561,7 +579,7 @@ static int msn_soap_memlist_edit_build_request( struct msn_soap_req_data *soap_r
list = "Pending";
break;
}
- soap_req->payload = g_markup_printf_escaped( SOAP_MEMLIST_EDIT_PAYLOAD,
+ soap_req->payload = msn_soap_abservice_build( SOAP_MEMLIST_EDIT_PAYLOAD,
scenario, md->tokens[1], add, list, med->handle, add );
return 1;
@@ -606,7 +624,7 @@ static int msn_soap_addressbook_build_request( struct msn_soap_req_data *soap_re
soap_req->url = g_strdup( SOAP_ADDRESSBOOK_URL );
soap_req->action = g_strdup( SOAP_ADDRESSBOOK_ACTION );
- soap_req->payload = g_markup_printf_escaped( SOAP_ADDRESSBOOK_PAYLOAD, md->tokens[1] );
+ soap_req->payload = msn_soap_abservice_build( SOAP_ADDRESSBOOK_PAYLOAD, "Initial", md->tokens[1] );
return 1;
}
@@ -705,8 +723,8 @@ static int msn_soap_ab_namechange_build_request( struct msn_soap_req_data *soap_
soap_req->url = g_strdup( SOAP_ADDRESSBOOK_URL );
soap_req->action = g_strdup( SOAP_AB_NAMECHANGE_ACTION );
- soap_req->payload = g_markup_printf_escaped( SOAP_AB_NAMECHANGE_PAYLOAD,
- md->tokens[1], (char *) soap_req->data );
+ soap_req->payload = msn_soap_abservice_build( SOAP_AB_NAMECHANGE_PAYLOAD,
+ "Initial", md->tokens[1], (char *) soap_req->data );
return 1;
}