Net::Radius::Server::Rule - Rules for Net::Radius::Server


  use Net::Radius::Server::Rule;
  my $rule = new Net::Radius::Server::Rule({
    match_methods => \@match_methods,
    set_methods => \@set_methods,

  # Deep within the bowels of a RADIUS server...
  my $ret = $rule->eval(\%info);


Net::Radius::Server::Rule implements a simple mechanism to evaluate RADIUS request packets using match methods. After the match methods determine that the given rule applies to the request, the set methods can modify a response packet to be sent to the RADIUS client.

Evaluation and application of the rule is done by the ->eval() method. This is normally invoked within the server code. \%info is a hashref with the same structure described in Net::Radius::Server.

The following attributes are available for object creation or manipulation via accessors created with Class::Accessor:


A reference to a list of match methods to be invoked in order. All the provided methods must match (ie, return NRS_MATCH_OK) in order for the rule to be applied.


A reference to a list of match methods to be invoked in order, in case the rule can be applied to the current request. The return value of the last set method executed will be returned by the ->eval() method.

If no set methods are specified, Net::Radius::Server::Rule returns NRS_SET_DISCARD by default.


This attribute is inherited, and allows for the specification of a name for this rule. Defaults to the class, file and line where this rule has been created.

The return value of the ->eval() method is defined by the last set method executed. undef is returned if the rule did not match.


None by default.


  Revision 1.7  2006/12/14 16:33:17  lem
  Rules and methods will only report failures in log level 3 and
  above. Level 4 report success and failure, for deeper debugging

  Revision 1.6  2006/12/14 15:52:25  lem
  Fix CVS tags


Perl(1), Class::Accessor(3), Net::Radius::Server(3).


Luis E. Muñoz, <>


Copyright (C) 2006 by Luis E. Muñoz

This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5.8.6 itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 146:

Non-ASCII character seen before =encoding in 'Muñoz,'. Assuming UTF-8