# HG changeset patch # User Kim Alvefur # Date 1411402668 -7200 # Node ID 094e9d5a4d94aac3a9a9c1c008ced222d1fea862 # Parent 01e37ce7532e56321546f0de7ed63bf6630ee2ac mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies diff -r 01e37ce7532e -r 094e9d5a4d94 mod_block_p2pft/mod_block_p2pft.lua --- /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);