]> granicus.if.org Git - ejabberd/commitdiff
does not write item when max_items set to 0 (solves EJAB-768)
authorChristophe Romain <christophe.romain@process-one.net>
Fri, 17 Oct 2008 00:43:58 +0000 (00:43 +0000)
committerChristophe Romain <christophe.romain@process-one.net>
Fri, 17 Oct 2008 00:43:58 +0000 (00:43 +0000)
SVN Revision: 1661

ChangeLog
src/mod_pubsub/node_default.erl

index bb89bfc37704f9fb61e2a02a5cb6175a8a463d8e..91e923896c3189790dab3a0f697255449b5a43f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,9 @@
        * src/mod_pubsub/mod_pubsub.erl: fix remove_user not unsubscribing
        user (EJAB-684)
 
+       * src/mod_pubsub/node_default.erl: does not write item when max_items
+       set to 0 (solves EJAB-768)
+
 2008-10-14  Christophe Romain <christophe.romain@process-one.net>
 
        * src/mod_pubsub/mod_pubsub.erl: fix pubsub_publish_item hook
index 9b30269e05deea7f589ad54076d5bae71f7b4dae..97e363f799f04c2f18e223432b2563834deb495a 100644 (file)
@@ -455,10 +455,12 @@ publish_item(Host, Node, Publisher, PublishModel, MaxItems, ItemId, Payload) ->
                           OldItem#pubsub_item{modification = PubId,
                                               payload = Payload}
                   end,
-           Items = [ItemId | State#pubsub_state.items],
+           Items = [ItemId | State#pubsub_state.items--[ItemId]],
            {result, {NI, OI}} = remove_extra_items(
                                   Host, Node, MaxItems, Items),
-           set_item(Item),
+           if MaxItems > 0 -> set_item(Item);
+              true -> ok
+           end,
            set_state(State#pubsub_state{items = NI}),
            {result, {default, broadcast, OI}}
     end.