Mercurial > prosody-modules
changeset 1510:094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 22 Sep 2014 18:17:48 +0200 |
parents | 01e37ce7532e |
children | ef613b40591a |
files | mod_block_p2pft/mod_block_p2pft.lua |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_block_p2pft/mod_block_p2pft.lua Mon Sep 22 18:17:48 2014 +0200 @@ -0,0 +1,26 @@ +local allowed_streamhosts = module:get_option_set("allowed_streamhosts", {}); -- eg proxy.eu.jabber.org + +if module:get_option_boolean("allow_local_streamhosts", true) then + for hostname, host in pairs(hosts) do + if streamhost.modules.proxy65 then + allowed_streamhosts:include(hostname); + end + end +end + +local function filter_streamhosts(tag) + if tag.name == "streamhost" and not allowed_streamhosts:contains(tag.attr.jid) then + return nil; + end + return tag; +end + +module:hook("iq/full", function (event) + local stanza, origin = event.stanza, event.origin; + if stanza.attr.type == "set" then + local payload = stanza:get_child("query", "http://jabber.org/protocol/bytestreams"); + if payload then + payload:maptags(filter_streamhosts); + end + end +end, 1);