comparison mod_muc_eventsource/mod_muc_eventsource.lua @ 2897:39485b9bbdd6

mod_muc_eventsource: validate node with nodeprep
author Senya <senya@kinetiksoft.com>
date Fri, 23 Feb 2018 20:53:28 +0200
parents 7c16afc70d11
children
comparison
equal deleted inserted replaced
2896:d276bf3f0464 2897:39485b9bbdd6
1 module:depends("http"); 1 module:depends("http");
2 local nodeprep = require "util.encodings".stringprep.nodeprep;
2 3
3 local jid_split = require "util.jid".split; 4 local jid_split = require "util.jid".split;
4 local json = require "util.json"; 5 local json = require "util.json";
5 6
6 local streams = {}; 7 local streams = {};
13 streams[node] = nil; 14 streams[node] = nil;
14 end 15 end
15 end 16 end
16 17
17 function serve_stream(event, node) 18 function serve_stream(event, node)
19 local response = event.response;
20
21 node = nodeprep(node);
22 if node == nil then
23 return 400;
24 end
25
18 module:log("debug", "Client subscribed to: %s", node); 26 module:log("debug", "Client subscribed to: %s", node);
19 27
20 local response = event.response;
21 response.on_destroy = client_closed; 28 response.on_destroy = client_closed;
22 response._eventsource_node = node; 29 response._eventsource_node = node;
23 30
24 response.conn:write(table.concat({ 31 response.conn:write(table.concat({
25 "HTTP/1.1 200 OK"; 32 "HTTP/1.1 200 OK";