view mod_throttle_unsolicited/README.markdown @ 5381:32a9817c7516

mod_firewall: Initialize compiled chunk just once for all handlers This should fix a case where some stateful dependencies (such as throttles) produce separate instances for every call to new_handler(), leading to surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would have separate rate limits). This also adds better error handling in case the compiled code fails to run for some reason.
author Matthew Wild <mwild1@gmail.com>
date Fri, 28 Apr 2023 13:27:06 +0100
parents 476afcbfb3e9
children
line wrap: on
line source

---
rockspec:
  dependencies:
  - mod_track_muc_joins
summary: Limit rate of outgoing unsolicited messages
---

Introduction
============

This module limits the rate of outgoing unsolicited messages from local
clients. Optionally, unsolicited messages coming in from remote servers
may be limited per s2s conneciton. A message counts as "unsolicited" if
the receiving user hasn't added the sending user to their roster.

The module depends on [mod\_track\_muc\_joins] in order to allow sent
messages to joined MUC rooms.

Configuration
=============

To set a limit on messages from local sessions:

``` {.lua}
unsolicited_messages_per_minute = 10
```

To enable limits on unsolicited messages from s2s connections:

``` {.lua}
unsolicited_s2s_messages_per_minute = 100
```