GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Net::Radius::Server::Match(3) User Contributed Perl Documentation Net::Radius::Server::Match(3)

Net::Radius::Server::Match - Base class for match methods

  package My::Radius::Match;
  use base 'Net::Radius::Server::Match';

  __PACKAGE__->mk_accessors(qw/foo bar baz/);

  sub match_foo { ... }
  sub match_bar { ... }
  sub match_baz { ... }

  # Meanwhile, in a configuration file nearby...
  my $match = My::Radius::Match->new({ foo => 'x', bar => 'y' });
  my $match_sub = $match->mk;
  ...

  # Alternatively, in a more compact notation...
  my $match_sub = My::Radius::Match->mk({ foo => 'x', bar => 'y' });

"Net::Radius::Server::Match" is a base class for developing "match" methods to be used in "Net::Radius::Server" rules.
"->new($hashref)"
Creates a new "Net::Radius::Server::Match" object. $hashref referenes a hash with the attributes that will apply to this object, so that multiple match methods (that will share the same underlying object) can be created and given to different rules.
"$self->mk()" or "__PACKAGE__->mk($hashref)"
This method returns a sub suitable for calling as a match method for a "Net::Radius::Server" rule. The resulting sub will return either "NRS_MATCH_OK" or "NRS_MATCH_FAIL" depending on its result.

The sub contains a closure where the object attributes -- Actually, the object itself -- are kept.

When invoked as an object method (ie, "$self->mk()"), no arguments can be given. The object is preserved as is within the closure.

When invoked as a class method (ie, "__PACKAGE__->mk($hashref)"), a new object is created with the given arguments and then, this object is preserved within the closure. This form is useful for compact filter definitions that require little or no surrounding code or holding variables.

"->_match()"
This method is internally called by the sub returned by the call to "->mk()" and should not be called explicitly. This method iterates through the existing elements in the object -- It is assumed that it is a blessed hash ref, as left by "Class::Accessor".

This method tries to invoke "$self-"match_$element(@_)>, passing the same arguments it receives - Note that normally, those are the same that were passed to the sub returned by the factory.

See the source of "Net::Radius::Server::Match::Simple". This is much simpler than it sounds. Really.

The calls are done in "short circuit". This means that the first method returning "NRS_MATCH_FAIL" will cause this result to be returned.

Arguments with no corresponding "match_*" method are ignored. Arguments whose name start with "_" are also ignored.

By default, this method will return "NRS_MATCH_OK".

As shown in the example in the SYNOPSIS, your derived class must provide a "match_*" method for each attribute you define.

The method must return any of the "NRS_MATCH_*" constants to indicate its result.

None by default.

  $Log$
  Revision 1.6  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.5  2006/12/14 15:52:25  lem
  Fix CVS tags

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

Luis E. Muñoz, <luismunoz@cpan.org>

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.

Hey! The above document had some coding errors, which are explained below:
Around line 211:
Non-ASCII character seen before =encoding in 'Muñoz,'. Assuming UTF-8
2009-09-20 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.