mod_privacy.c.patch [plain text]
--- jabberd-2.1.24.1/sm/mod_privacy.c 2008-04-27 02:57:18.000000000 -0700
+++ mod_privacy.c.new 2009-11-12 19:13:18.000000000 -0800
@@ -623,6 +623,10 @@
if(scan->next != NULL)
scan->next->prev = scan->prev;
}
+
+ if (zlist->last == scan)
+ zlist->last = scan->prev;
+
/* and from the storage */
sprintf(filter, "(&(type=3:jid)(value=%i:%s)(deny=1)", strlen(jid_full(scan->jid)), jid_full(scan->jid));
storage_delete(st, "privacy-items", jid_user(user->jid), filter);
@@ -849,7 +853,7 @@
if(push) {
for(sscan = sess->user->sessions; sscan != NULL; sscan = sscan->next) {
/* don't push to us or to anyone who hasn't requested blocklist */
- if(sscan->module_data[mod->index] == NULL || ((privacy_t) sscan->module_data[mod->index])->blocklist == 0)
+ if(sscan == sess || sscan->module_data[mod->index] == NULL || ((privacy_t) sscan->module_data[mod->index])->blocklist == 0)
continue;
result = pkt_dup(pkt, jid_full(sscan->jid), NULL);