Comparison

plugins/mod_xmlrpc.lua @ 880:ff4a08d73772

XML-RPC: Set appropriate Content-Type header in HTTP response
author Waqas Hussain <waqas20@gmail.com>
date Wed, 04 Mar 2009 22:59:58 +0500
parent 877:0bababc930dd
child 889:bb959588bbc4
comparison
equal deleted inserted replaced
879:2189baddedb8 880:ff4a08d73772
100 end 100 end
101 end 101 end
102 module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:rpc", handle_xmpp_request); 102 module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:rpc", handle_xmpp_request);
103 module:add_feature("jabber:iq:rpc"); 103 module:add_feature("jabber:iq:rpc");
104 104
105 local default_headers = { ["Content-Type"] = "text/xml" };
105 local function handle_http_request(method, body, request) 106 local function handle_http_request(method, body, request)
106 local stanza = body and parse_xml(body); 107 local stanza = body and parse_xml(body);
107 if (not stanza) or request.method ~= "POST" then 108 if (not stanza) or request.method ~= "POST" then
108 return "<html><body>You really don't look like an XML-RPC client to me... what do you want?</body></html>"; 109 return "<html><body>You really don't look like an XML-RPC client to me... what do you want?</body></html>";
109 end 110 end
110 local success, method, args = pcall(translate_request, stanza); 111 local success, method, args = pcall(translate_request, stanza);
111 if success then 112 if success then
112 return tostring(handle_xmlrpc_request(method, args)); 113 return { headers = default_headers; body = tostring(handle_xmlrpc_request(method, args)) };
113 end 114 end
114 return "<html><body>You really don't look like an XML-RPC client to me... what do you want?</body></html>"; 115 return "<html><body>Error parsing XML-RPC request: "..tostring(method).."</body></html>";
115 end 116 end
116 httpserver.new{ port = 9000, base = "xmlrpc", handler = handle_http_request } 117 httpserver.new{ port = 9000, base = "xmlrpc", handler = handle_http_request }