Backed out changeset c75c22c316d6 (the XMPP spec now gives a better way to do this)
authorMatthew Wild <mwild1@gmail.com>
Fri, 21 May 2010 18:44:31 +0000 (19:44 +0100)
committerMatthew Wild <mwild1@gmail.com>
Fri, 21 May 2010 18:44:31 +0000 (19:44 +0100)
plugins/mod_presence.lua

index 648c78b3f046e1106e07c43ac42bda873ab81071..a39d9c19cd87d2de3b5d0e5ccb09e0cc17d4ca5b 100644 (file)
@@ -38,42 +38,23 @@ function core_route_stanza(origin, stanza)
        _core_route_stanza(origin, stanza);
 end
 
-local select_top_resources;
-local bare_message_delivery_policy = module:get_option("bare_message_delivery_policy") or "priority";
-if bare_message_delivery_policy == "broadcast" then
-       function select_top_resources(user)
-               local recipients = {};
-               for _, session in pairs(user.sessions) do -- find resources with non-negative priority
+local function select_top_resources(user)
+       local priority = 0;
+       local recipients = {};
+       for _, session in pairs(user.sessions) do -- find resource with greatest priority
+               if session.presence then
+                       -- TODO check active privacy list for session
                        local p = session.priority;
-                       if p and p >= 0 then
+                       if p > priority then
+                               priority = p;
+                               recipients = {session};
+                       elseif p == priority then
                                t_insert(recipients, session);
                        end
                end
-               return recipients;
-       end
-else
-       if bare_message_delivery_policy ~= "priority" then
-               module:log("warn", "Invalid value for config option bare_message_delivery_policy");
-       end
-       function select_top_resources(user)
-               local priority = 0;
-               local recipients = {};
-               for _, session in pairs(user.sessions) do -- find resource with greatest priority
-                       if session.presence then
-                               -- TODO check active privacy list for session
-                               local p = session.priority;
-                               if p > priority then
-                                       priority = p;
-                                       recipients = {session};
-                               elseif p == priority then
-                                       t_insert(recipients, session);
-                               end
-                       end
-               end
-               return recipients;
        end
+       return recipients;
 end
-
 local function recalc_resource_map(user)
        if user then
                user.top_resources = select_top_resources(user);