# Functions

## `maxfwd_process(max_value)`

If no Max-Forward header is present in the received request, a header will be added having the original value equal with "max_value". An OK code is returned by the function.

If a Max-Forward header is already present, its value will be decremented. If after this operation its value will be positive non-zero, an OK code will be returned. Otherwise (for a zero value) an error code will be returned. Note that an error code will be also returned if the SIP message couldn't be parsed or if the Max-Forward header's body invalid (non numerical string or negative numerical value).

Meaning of the parameters is as follows:

- max_value - Value to be added if there is no Max-Forwards header field in the message.

### `maxfwd_process` usage

    # initial sanity checks -- messages with
    # max_forwards==0, or excessively long requests
    if (!maxfwd_process(10)) {
        sl_send_reply(483, "Too many hops");
        drop;
    };

## `maxfwd_at_least(min_value)`

Test is there is enough hops in Max-forward header, i.e. we know how many hops is required to reach target. Returns true if Max-Forward header is present in the received request and the value is greater than "min_value".

Meaning of the parameters is as follows:

- min_value - Min. number of required hops

### `maxfwd_at_least` usage

    if (!maxfwd_at_least(3)) {
        sl_send_reply(483, "Too many hops");
        drop;
    };