Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Net::Radius::Server::MUser(Contributed Perl DocumNet::Radius::Server::Match(3)

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

SYNOPSIS
	 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'	});

DESCRIPTION
       "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".

   Methods to Provide in Derived Classes
       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.

   EXPORT
       None by default.

HISTORY
	 $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

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

AUTHOR
       Luis E. MuA+-oz,	<luismunoz@cpan.org>

COPYRIGHT AND LICENSE
       Copyright (C) 2006 by Luis E. MuA+-oz

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

POD ERRORS
       Hey! The	above document had some	coding errors, which are explained
       below:

       Around line 211:
	   Non-ASCII character seen before =encoding in	'MuA+-oz,'. Assuming
	   UTF-8

perl v5.24.1			  2009-09-20	 Net::Radius::Server::Match(3)

NAME | SYNOPSIS | DESCRIPTION | HISTORY | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::Radius::Server::Match&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help