Changeset

1295:ead6d78d2217

My merge!!!!
author Waqas Hussain <waqas20@gmail.com>
date Thu, 04 Jun 2009 05:37:43 +0500
parents 1294:39197fe5ae94 (diff) 1291:22dcd5f06bc4 (current diff)
children 1296:5cf4c444d3f9 1301:d10d84f755b5
files
diffstat 2 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/core/stanza_router.lua	Tue Jun 02 19:56:12 2009 +0100
+++ b/core/stanza_router.lua	Thu Jun 04 05:37:43 2009 +0500
@@ -134,6 +134,7 @@
 			end
 			if h.events.fire_event(event, {origin = origin, stanza = stanza}) then return; end
 		end
+		if host and not hosts[host] then host = nil; end -- workaround for a Pidgin bug which sets 'to' to the SRV result
 		modules_handle_stanza(host or origin.host or origin.to_host, origin, stanza);
 	end
 end
@@ -149,6 +150,9 @@
 			to_type = '/full';
 		else
 			to_type = '/bare';
+			if node == origin.username and host == origin.host then
+				stanza.attr.to = nil;
+			end
 		end
 	else
 		if host then
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/mod_privacy.lua	Thu Jun 04 05:37:43 2009 +0500
@@ -0,0 +1,23 @@
+
+local st = require "util.stanza";
+local datamanager = require "util.datamanager";
+
+module:hook("iq/bare/jabber:iq:privacy:query", function(data)
+	local origin, stanza = data.origin, data.stanza;
+	
+	if not stanza.attr.to then -- only service requests to own bare JID
+		local query = stanza.tags[1]; -- the query element
+		local privacy_lists = datamanager.load(origin.username, origin.host, "privacy") or {};
+		if stanza.attr.type == "set" then
+			-- TODO
+		elseif stanza.attr.type == "get" then
+			if #query.tags == 0 then -- Client requests names of privacy lists from server
+				-- TODO
+			elseif #query.tags == 1 and query.tags[1].name == "list" then -- Client requests a privacy list from server
+				-- TODO
+			else
+				origin.send(st.error_reply(stanza, "modify", "bad-request"));
+			end
+		end
+	end
+end);