summaryrefslogtreecommitdiff
path: root/patch-hangouts
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2019-02-05 03:42:44 +0100
committernorly <ny-git@enpas.org>2019-02-05 03:50:03 +0100
commitf247358ca541073e9f1262b98f7ba390fc22b9c5 (patch)
tree347dcddf5e4b6ddeaec4b10d61b61913d297a1b6 /patch-hangouts
parent39035e503a13fde5f332cdb2bd023adbbbf274ca (diff)
Add patch-hangoutsHEADmaster
Diffstat (limited to 'patch-hangouts')
-rw-r--r--patch-hangouts/prosody-0.9.12-presence_void_hangouts.diff42
1 files changed, 42 insertions, 0 deletions
diff --git a/patch-hangouts/prosody-0.9.12-presence_void_hangouts.diff b/patch-hangouts/prosody-0.9.12-presence_void_hangouts.diff
new file mode 100644
index 0000000..c9fddfe
--- /dev/null
+++ b/patch-hangouts/prosody-0.9.12-presence_void_hangouts.diff
@@ -0,0 +1,42 @@
+--- a/usr/lib/prosody/modules/mod_presence.lua
++++ b/usr/lib/prosody/modules/mod_presence.lua
+@@ -313,6 +312,19 @@
+ if t ~= nil and t ~= "unavailable" and t ~= "error" then -- check for subscriptions and probes sent to bare JID
+ return handle_inbound_presence_subscriptions_and_probes(origin, stanza, jid_bare(stanza.attr.from), jid_bare(stanza.attr.to));
+ end
++
++ local from_resource = string.gsub(stanza.attr.from, "^[^/]*/", "", 1);
++ if from_resource ~= stanza.attr.from then
++ if string.match(from_resource, "^Messaging%x%x%x%x%x%x%x%x?%x?")
++ or string.match(from_resource, "^messaging%-smgmailw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-AChromeExtensionw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-TalkGadgetw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-lcsw_hangouts%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-lcsw_hangouts_%x%x%x%x%x%x%x%x") then
++ log("debug", "Voiding presence from: "..stanza.attr.from);
++ stanza.attr.type = "unavailable";
++ end
++ end
+
+ local user = bare_sessions[to];
+ if user then
+@@ -338,6 +350,19 @@
+ return handle_inbound_presence_subscriptions_and_probes(origin, stanza, jid_bare(stanza.attr.from), jid_bare(stanza.attr.to));
+ end
+
++ local from_resource = string.gsub(stanza.attr.from, "^[^/]*/", "", 1);
++ if from_resource ~= stanza.attr.from then
++ if string.match(from_resource, "^Messaging%x%x%x%x%x%x%x%x?%x?")
++ or string.match(from_resource, "^messaging%-smgmailw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-AChromeExtensionw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-TalkGadgetw%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-lcsw_hangouts%x%x%x%x%x%x%x%x")
++ or string.match(from_resource, "^messaging%-lcsw_hangouts_%x%x%x%x%x%x%x%x") then
++ log("debug", "Voiding presence from: "..stanza.attr.from);
++ stanza.attr.type = "unavailable";
++ end
++ end
++
+ local session = full_sessions[stanza.attr.to];
+ if session then
+ -- TODO fire post processing event