]> 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:42:20 +0000 (00:42 +0000)
committerChristophe Romain <christophe.romain@process-one.net>
Fri, 17 Oct 2008 00:42:20 +0000 (00:42 +0000)
SVN Revision: 1660

ChangeLog
src/mod_pubsub/node_default.erl

index 1cf4c836ca61ebf8c0ad42d6e401a43be0d278c9..291fe828de1b4bf96718f7a901888872790d8234 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-13  Jerome Sautret  <jerome.sautret@process-one.net>
 
        * src/odbc/ejabberd_odbc.erl: log MySQL driver messages.
index 02a75e989117d4407551fddbff408310ee59e941..dca41d4ac318da9cb66bd6404122b72e68fb8d9c 100644 (file)
@@ -452,10 +452,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.