Radiator Server Documentation — latest

Pre-client pipeline for dynamic client matching before normal client resolution

Table of Contents
  • @pre-client
  • Example
  • See also

@pre-client

@pre-client defines a pipeline that runs before normal client matching for a server.

Use this pipeline when client information cannot be declared statically. A common use case is dynamic client matching from a database.

Typical uses include:

  • Looking up a client by source IP address in a backend or script
  • Setting client properties dynamically before normal matching continues
  • Rejecting unknown or unauthorized client sources early

For RADIUS servers, this pipeline can set radius.client.secret before the request proceeds to normal client resolution.

Example

servers {
    radius "RADIUS_UDP_1812" {
        listen {
            protocol udp;
            port 1812;
            ip 0.0.0.0;
        }

        @pre-client {
            # radius.client.ip is used on the backend to query and return radius.client identifier and radius.client.secret
            backend {
                name "SQL_DATABASE_CLIENTS_INTERNAL";
                query "FIND_RADIUS_CLIENT";
            }
        }
    }
}

The example above demonstrates client lookup from the database.

See also

  • servers.clients - Static client list binding for servers
  • accept - Continue request processing after a successful pre-client decision
  • backends - Backend lookups for dynamic client data
Navigation
  • @verification

  • aaa

  • backends

  • caches

  • captures

  • certificates

  • clients

  • conditions

  • dictionary

  • hmac-otp

  • include

  • init

  • ip-accept

  • license

  • logging

  • management

  • proxy-protocol

  • scripts

  • servers

    • buffer

    • clients

    • http

    • ip

    • keepalive

    • policy

    • port

    • pre-client

    • protocol

    • radius

    • timeout

    • tls

  • statistics

  • stats

  • template

  • ui