Mercurial > prosody-modules
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"; |
