1. Blst Module

Andrei Pelinescu-Onciul

iptelorg GmbH
Revision History
Revision $Revision$ $Date$

1.1. Overview
1.2. Functions
1.2.1. blst_add([timeout])
1.2.2. blst_add_retry_after(min, max)
1.2.3. blst_del()
1.2.4. blst_is_blacklisted()

1.1. Overview

This module exports blacklist related functions to the script.

1.2. Functions

Revision History
Revision $Revision$ $Date$

1.2.1.  blst_add([timeout])

Adds the source of the current message to the blacklist for timeout seconds. If timeout is missing or 0 it uses the default blacklist timeout (dst_blacklist_expire).

Example 1. blst_add usage

...
if (src_ip==10.0.0.0/9)
    blst_add(30); # 30 s
else
    blst_add();  # use default blacklist timeout
...

1.2.2.  blst_add_retry_after(min, max)

Adds the source of the current message to the blacklist for the time interval specified in the Retry-After header. If the Retry-After header is missing, it will fail (returns false). If the Retry-After value is less then min, then min seconds will be used instead. If the Retry-After value is greater then max, then max seconds will be used instead.

Example 2. blst_add_retry_after usage

...
# on_reply route
if (msg_status==503){ # blacklist 503 source for Retry-After seconds
    if (! blst_add_retry_after(30, 3600))
        blst_add(60); # if no retry_after header add it for 60s
}
...

1.2.3.  blst_del()

Removes the source of the current message from the blacklist. If the address is not present in the blacklist at the time of the call it returns false.

Example 3. blst_del usage

...
    blst_del();
...

1.2.4.  blst_is_blacklisted()

Returns true if the source of the current message is blacklisted.

Example 4. blst_is_blacklisted usage

...
    if (blst_is_blacklisted()){
        log("message from a blacklisted source");
        drop;
   }
...