diff --git a/ChangeLog b/ChangeLog index bb89bfc37..91e923896 100644 --- 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 * src/mod_pubsub/mod_pubsub.erl: fix pubsub_publish_item hook diff --git a/src/mod_pubsub/node_default.erl b/src/mod_pubsub/node_default.erl index 9b30269e0..97e363f79 100644 --- a/src/mod_pubsub/node_default.erl +++ b/src/mod_pubsub/node_default.erl @@ -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.