plugins/mod_pep.lua
changeset 1429 51cfb152cb38
parent 1428 02e97e716675
child 1430 39169cf8d36f
equal deleted inserted replaced
1428:02e97e716675 1429:51cfb152cb38
    47 		end
    47 		end
    48 	end
    48 	end
    49 end
    49 end
    50 
    50 
    51 local function get_caps_hash_from_presence(stanza, current)
    51 local function get_caps_hash_from_presence(stanza, current)
    52 	if not stanza.attr.type then
    52 	local t = stanza.attr.type;
       
    53 	if not t then
    53 		for _, child in pairs(stanza.tags) do
    54 		for _, child in pairs(stanza.tags) do
    54 			if child.name == "c" and child.attr.xmlns == "http://jabber.org/protocol/caps" then
    55 			if child.name == "c" and child.attr.xmlns == "http://jabber.org/protocol/caps" then
    55 				local attr = child.attr;
    56 				local attr = child.attr;
    56 				if attr.hash then -- new caps
    57 				if attr.hash then -- new caps
    57 					if attr.hash == 'sha-1' and attr.node and attr.ver then return attr.ver, attr.node.."#"..attr.ver; end
    58 					if attr.hash == 'sha-1' and attr.node and attr.ver then return attr.ver, attr.node.."#"..attr.ver; end
    59 					if attr.node and attr.ver then return attr.node.."#"..attr.ver.."#"..(attr.ext or ""), attr.node.."#"..attr.ver; end
    60 					if attr.node and attr.ver then return attr.node.."#"..attr.ver.."#"..(attr.ext or ""), attr.node.."#"..attr.ver; end
    60 				end
    61 				end
    61 				return; -- bad caps format
    62 				return; -- bad caps format
    62 			end
    63 			end
    63 		end
    64 		end
    64 		return current; -- no caps, could mean caps optimization, so return current
    65 	elseif t == "unavailable" or t == "error" then
       
    66 		return;
    65 	end
    67 	end
       
    68 	return current; -- no caps, could mean caps optimization, so return current
    66 end
    69 end
    67 
    70 
    68 module:hook("presence/bare", function(event)
    71 module:hook("presence/bare", function(event)
    69 	-- inbound presence to bare JID recieved
    72 	-- inbound presence to bare JID recieved
    70 	local origin, stanza = event.origin, event.stanza;
    73 	local origin, stanza = event.origin, event.stanza;