author | Kim Alvefur <zash@zash.se> |
Thu, 17 Dec 2015 16:51:49 +0100 | |
changeset 1983 | 3a66cff4354f |
parent 1933 | 82834df1dea6 |
child 2064 | bd0c5d546bf8 |
permissions | -rw-r--r-- |
772
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 |
|
1933
82834df1dea6
mod_block_strangers: Add missing import of util.stanza
Kim Alvefur <zash@zash.se>
parents:
1932
diff
changeset
|
2 |
local st = require"util.stanza"; |
772
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 |
local jid_split = require "util.jid".split; |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 |
local jid_bare = require "util.jid".bare; |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 |
local is_contact_subscribed = require "core.rostermanager".is_contact_subscribed; |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
|
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 |
function check_subscribed(event) |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 |
local stanza = event.stanza; |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 |
local to_user, to_host, to_resource = jid_split(stanza.attr.to); |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 |
local from_jid = jid_bare(stanza.attr.from); |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
if to_user and not is_contact_subscribed(to_user, to_host, from_jid) then |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 |
if to_resource and stanza.attr.type == "groupchat" then |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 |
return nil; -- Pass through |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 |
end |
1932
252b634b065d
mod_block_strangers: Bounce IQ stanzas (they MUST be replied to)
Kim Alvefur <zash@zash.se>
parents:
1325
diff
changeset
|
15 |
if stanza.name == "iq" and ( stanza.attr.type == "get" or stanza.attr.type == "set" ) then |
252b634b065d
mod_block_strangers: Bounce IQ stanzas (they MUST be replied to)
Kim Alvefur <zash@zash.se>
parents:
1325
diff
changeset
|
16 |
event.origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); |
252b634b065d
mod_block_strangers: Bounce IQ stanzas (they MUST be replied to)
Kim Alvefur <zash@zash.se>
parents:
1325
diff
changeset
|
17 |
end |
1325
b21236b6b8d8
Backed out changeset 853a382c9bd6
Kim Alvefur <zash@zash.se>
parents:
1324
diff
changeset
|
18 |
return true; -- Drop stanza |
772
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 |
end |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 |
end |
954532e273be
mod_block_strangers: Module to block message and iqs from people not on your roster
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 |
|
774
52caf54fc270
mod_block_strangers: Bump handler priority to 200 (just because)
Matthew Wild <mwild1@gmail.com>
parents:
772
diff
changeset
|
22 |
module:hook("message/bare", check_subscribed, 200); |
52caf54fc270
mod_block_strangers: Bump handler priority to 200 (just because)
Matthew Wild <mwild1@gmail.com>
parents:
772
diff
changeset
|
23 |
module:hook("message/full", check_subscribed, 200); |
52caf54fc270
mod_block_strangers: Bump handler priority to 200 (just because)
Matthew Wild <mwild1@gmail.com>
parents:
772
diff
changeset
|
24 |
module:hook("iq/full", check_subscribed, 200); |