mod_roster.c.patch [plain text]
--- /tmp/jabberd-2.1.24.1/sm/mod_roster.c 2008-04-27 02:57:18.000000000 -0700
+++ ./jabberd2/sm/mod_roster.c 2008-11-24 14:21:54.000000000 -0800
@@ -240,6 +240,9 @@ static mod_ret_t _roster_in_sess_s10n(mo
pres_roster(sess, item);
}
+ if (storage_rate_limit(sess->user->sm->st, jid_user(sess->user->jid)) == st_RATELIMITED)
+ return -stanza_err_RESOURCE_CONSTRAINT;
+
/* save changes */
_roster_save_item(sess->user, item);
@@ -422,6 +425,9 @@ static void _roster_set_item(pkt_t pkt,
log_debug(ZONE, "added %s to roster (to %d from %d ask %d name %s ngroups %d)", jid_full(item->jid), item->to, item->from, item->ask, item->name, item->ngroups);
+ if (storage_rate_limit(sess->user->sm->st, jid_user(sess->user->jid)) == st_RATELIMITED)
+ return -stanza_err_RESOURCE_CONSTRAINT;
+
/* save changes */
_roster_save_item(sess->user, item);
@@ -632,6 +638,9 @@ static mod_ret_t _roster_pkt_user(mod_in
item->ask = 0;
}
+ if (storage_rate_limit(user->sm->st, pkt->from) == st_RATELIMITED)
+ return -stanza_err_RESOURCE_CONSTRAINT;
+
/* save changes */
_roster_save_item(user, item);