X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util%2Fxmlrpc.lua;h=29815b0d94fc3a427642475fdc2185b486de0b5c;hb=f2c0726e2c08c9c7c4d82075de645c05eac2623e;hp=8b1d56cfb4a60af32bcaf02ab4199aeaa4687e2e;hpb=ce30d543330e423952342c08e62d1b30d5618a28;p=prosody.git diff --git a/util/xmlrpc.lua b/util/xmlrpc.lua index 8b1d56cf..29815b0d 100644 --- a/util/xmlrpc.lua +++ b/util/xmlrpc.lua @@ -1,6 +1,6 @@ --- Prosody IM v0.3 --- Copyright (C) 2008-2009 Matthew Wild --- Copyright (C) 2008-2009 Waqas Hussain +-- Prosody IM +-- Copyright (C) 2008-2010 Matthew Wild +-- Copyright (C) 2008-2010 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -14,6 +14,7 @@ local t_concat = table.concat; local t_insert = table.insert; local tostring = tostring; local tonumber = tonumber; +local select = select; local st = require "util.stanza"; module "xmlrpc" @@ -66,6 +67,18 @@ function create_error_response(faultCode, faultString) return stanza; end +function create_request(method_name, ...) + local stanza = st.stanza("methodCall") + :tag("methodName"):text(method_name):up() + :tag("params"); + for i=1,select('#', ...) do + stanza:tag("param"):tag("value"); + _lua_to_xmlrpc(stanza, select(i, ...)); + stanza:up():up(); + end + stanza:up():up():up(); + return stanza; +end local _xmlrpc_to_lua; local int_parse = function(stanza)