| # -*- text -*- |
| # |
| # $Id: 3d9428e69c08fbc281f9830beae1cd8b7a5e5c70 $ |
| |
| # Persistent, embedded Perl interpreter. |
| # |
| perl { |
| # |
| # The Perl script to execute on authorize, authenticate, |
| # accounting, xlat, etc. This is very similar to using |
| # 'rlm_exec' module, but it is persistent, and therefore |
| # faster. |
| # |
| filename = ${modconfdir}/${.:instance}/example.pl |
| |
| # |
| # The following hashes are given to the module and |
| # filled with value-pairs (Attribute names and values) |
| # |
| # %RAD_CHECK Check items |
| # %RAD_REQUEST Attributes from the request |
| # %RAD_REPLY Attributes for the reply |
| # %RAD_REQUEST_PROXY Attributes from the proxied request |
| # %RAD_REQUEST_PROXY_REPLY Attributes from the proxy reply |
| # |
| # The interface between FreeRADIUS and Perl is strings. |
| # That is, attributes of type "octets" are converted to |
| # printable strings, such as "0xabcdef". If you want to |
| # access the binary values of the attributes, you should |
| # call the Perl "pack" function. Then to send any binary |
| # data back to FreeRADIUS, call the Perl "unpack" function, |
| # so that the contents of the hashes are printable strings. |
| # |
| # IP addresses are sent as strings, e.g. "192.0.2.25", and |
| # not as a 4-byte binary value. The same applies to other |
| # attribute data types. |
| # |
| # Attributes of type "string" are copied to Perl as-is. |
| # They are not escaped or interpreted. |
| # |
| # The return codes from functions in the perl_script |
| # are passed directly back to the server. These |
| # codes are defined in mods-config/example.pl |
| # |
| |
| # You can define configuration items (and nested sub-sections) in perl "config" section. |
| # These items will be accessible in the perl script through %RAD_PERLCONF hash. |
| # For instance: $RAD_PERLCONF{'name'} $RAD_PERLCONF{'sub-config'}->{'name'} |
| # |
| #config { |
| # name = "value" |
| # sub-config { |
| # name = "value of name from config.sub-config" |
| # } |
| #} |
| |
| # |
| # List of functions in the module to call. |
| # Uncomment and change if you want to use function |
| # names other than the defaults. |
| # |
| #func_authenticate = authenticate |
| #func_authorize = authorize |
| #func_preacct = preacct |
| #func_accounting = accounting |
| #func_checksimul = checksimul |
| #func_pre_proxy = pre_proxy |
| #func_post_proxy = post_proxy |
| #func_post_auth = post_auth |
| #func_recv_coa = recv_coa |
| #func_send_coa = send_coa |
| #func_xlat = xlat |
| #func_detach = detach |
| |
| # |
| # Uncomment the following lines if you wish |
| # to use separate functions for Start and Stop |
| # accounting packets. In that case, the |
| # func_accounting function is not called. |
| # |
| #func_start_accounting = accounting_start |
| #func_stop_accounting = accounting_stop |
| } |