From aa3cfe1ea0241eeb60d09ad11bd2727d28887a7d Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Sun, 2 Dec 2018 17:22:26 +0100
Subject: mod_presence: Handle older boolean subscription request data (thanks
 Martin)

---
 plugins/mod_presence.lua | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/plugins/mod_presence.lua b/plugins/mod_presence.lua
index 1ea837e8..5aed5854 100644
--- a/plugins/mod_presence.lua
+++ b/plugins/mod_presence.lua
@@ -81,9 +81,13 @@ function handle_normal_presence(origin, stanza)
 			end
 		end
 		for jid, pending_request in pairs(roster[false].pending) do -- resend incoming subscription requests
-			local subscribe = st.deserialize(pending_request);
-			subscribe.attr.type, subscribe.attr.from = "subscribe", jid;
-			origin.send(subscribe);
+			if type(pending_request) == "table" then
+				local subscribe = st.deserialize(pending_request);
+				subscribe.attr.type, subscribe.attr.from = "subscribe", jid;
+				origin.send(subscribe);
+			else
+				origin.send(st.presence({type="subscribe", from=jid}));
+			end
 		end
 		local request = st.presence({type="subscribe", from=origin.username.."@"..origin.host});
 		for jid, item in pairs(roster) do -- resend outgoing subscription requests
-- 
cgit v1.2.3