Index: protocols/msn/soap.c
===================================================================
--- protocols/msn/soap.c	(revision 9f958f794a1710f17eaae79c64f90f1f66134094)
+++ protocols/msn/soap.c	(revision 7d4ffc2ebc29ff8e6771722e8fab41cf690711f2)
@@ -474,148 +474,4 @@
 
 
-/* oim_send: Sending offline messages */
-
-struct msn_soap_oim_send_data
-{
-	char *to;
-	char *msg;
-	int number;
-	msn_soap_result_t need_retry;
-};
-
-static int msn_soap_oim_build_request( struct msn_soap_req_data *soap_req )
-{
-	struct msn_soap_oim_send_data *oim = soap_req->data;
-	struct im_connection *ic = soap_req->ic;
-	struct msn_data *md = ic->proto_data;
-	char *display_name_b64;
-	
-	display_name_b64 = tobase64( set_getstr( &ic->acc->set, "display_name" ) );
-	
-	soap_req->url = g_strdup( SOAP_OIM_SEND_URL );
-	soap_req->action = g_strdup( SOAP_OIM_SEND_ACTION );
-	soap_req->payload = g_markup_printf_escaped( SOAP_OIM_SEND_PAYLOAD,
-		ic->acc->user, display_name_b64, MSNP_VER, MSNP_BUILD,
-		oim->to, md->tokens[2],
-		MSNP11_PROD_ID, md->lock_key ? md->lock_key : "",
-		oim->number, oim->number, oim->msg );
-	
-	g_free( display_name_b64 );
-	oim->need_retry = MSN_SOAP_OK;
-	
-	return MSN_SOAP_OK;
-}
-
-static xt_status msn_soap_oim_reauth( struct xt_node *node, gpointer data )
-{
-	struct msn_soap_req_data *soap_req = data;
-	struct msn_soap_oim_send_data *oim = soap_req->data;
-	struct im_connection *ic = soap_req->ic;
-	struct msn_data *md = ic->proto_data;
-	struct xt_node *c;
-	
-	if( ( c = xt_find_node( node->children, "LockKeyChallenge" ) ) && c->text_len > 0 )
-	{
-		g_free( md->lock_key );
-		md->lock_key = msn_p11_challenge( c->text );
-		oim->need_retry = MSN_SOAP_RETRY;
-	}
-	if( xt_find_node( node->children, "RequiredAuthPolicy" ) )
-	{
-		oim->need_retry = MSN_SOAP_REAUTH;
-	}
-	
-	return XT_HANDLED;
-}
-
-static const struct xt_handler_entry msn_soap_oim_send_parser[] = {
-	{ "detail", "soap:Fault", msn_soap_oim_reauth },
-	{ NULL,     NULL,         NULL                }
-};
-
-static int msn_soap_oim_handle_response( struct msn_soap_req_data *soap_req )
-{
-	struct msn_soap_oim_send_data *oim = soap_req->data;
-	
-	if( soap_req->http_req->status_code == 500 && oim->need_retry && soap_req->ttl > 0 )
-	{
-		return oim->need_retry;
-	}
-	else if( soap_req->http_req->status_code == 200 )
-	{
-		/* Noise..
-		imcb_log( soap_req->ic, "Offline message successfully delivered to %s", oim->to );
-		*/
-		return MSN_SOAP_OK;
-	}
-	else
-	{
-		char *dec = frombase64( oim->msg );
-		imcb_log( soap_req->ic, "Failed to deliver offline message to %s:\n%s", oim->to, dec );
-		g_free( dec );
-		return MSN_SOAP_ABORT;
-	}
-}
-
-static int msn_soap_oim_free_data( struct msn_soap_req_data *soap_req )
-{
-	struct msn_soap_oim_send_data *oim = soap_req->data;
-	
-	g_free( oim->to );
-	g_free( oim->msg );
-	g_free( oim );
-	
-	return MSN_SOAP_OK;
-}
-
-int msn_soap_oim_send( struct im_connection *ic, const char *to, const char *msg )
-{
-	struct msn_soap_oim_send_data *data;
-	
-	/* Don't send any of the special messages since they creep people out. :-) */
-	if( strncmp( msg, "\r\r", 2 ) == 0 )
-		return 0;
-	
-	data = g_new0( struct msn_soap_oim_send_data, 1 );
-	data->to = g_strdup( to );
-	data->msg = tobase64( msg );
-	data->number = 1;
-	
-	return msn_soap_start( ic, data, msn_soap_oim_build_request,
-	                                 msn_soap_oim_send_parser,
-	                                 msn_soap_oim_handle_response,
-	                                 msn_soap_oim_free_data );
-}
-
-int msn_soap_oim_send_queue( struct im_connection *ic, GSList **msgq )
-{
-	GSList *l;
-	char *n = NULL;
-	
-	for( l = *msgq; l; l = l->next )
-	{
-		struct msn_message *m = l->data;
-		
-		if( n == NULL )
-			n = m->who;
-		if( strcmp( n, m->who ) == 0 )
-			msn_soap_oim_send( ic, m->who, m->text );
-	}
-	
-	while( *msgq != NULL )
-	{
-		struct msn_message *m = (*msgq)->data;
-		
-		g_free( m->who );
-		g_free( m->text );
-		g_free( m );
-		
-		*msgq = g_slist_remove( *msgq, m );
-	}
-	
-	return 1;
-}
-
-
 /* memlist: Fetching the membership list (NOT address book) */
 
