#  -*- text -*-
#
#
#  $Id: dcc72f3d29c77aecbaf780fb015caad47e7ab828 $

#######################################################################
#
#  = Echo Module
#
#  The `echo` module an example of the `exec` module configured with a
#  `program` configuration item set so it can be called as any other
#  module, i.e.
#
#      echo
#
#  The sample `program` below is a trivial example and should be
#  replaced with something more meaningful.
#
#  The return value of the program run determines the result of the
#  exec instance call as follows:
#
#  [options="header,autowidth"]
#  |===
#  | Code | Return    | Description
#  | < 0  | fail      | the module failed.
#  | = 0  | ok        | the module succeeded.
#  | = 1  | reject    | the module rejected the user.
#  | = 2  | fail      | the module failed.
#  | = 3  | ok        | the module succeeded.
#  | = 4  | handled   | the module has done everything to handle the request.
#  | = 5  | invalid   | the user's configuration entry was invalid.
#  | = 6  | disallow  | the user was locked out.
#  | = 7  | notfound  | the user was not found.
#  | = 8  | noop      | the module did nothing.
#  | = 9  | updated   | the module updated information in the request.
#  | > 9  | fail      | the module failed.
#  |===
#
#  NOTE: See `doc/configurable_failover` for details.
#

#
#  == Configuration Settings
#
exec echo {
	wait = yes

	#
	#  program:: The name of the program to execute, and it's arguments.
	#
	#  Dynamic translation is done on this field, so things like the
	#  following example will work.
	#
	#  The example program below has a few important features which
	#  should be noted:
	#
	#  * The string for the program name uses triple quotes.
	#    These allow the text inside of the string to contain
	#    double-quote characters without needing to escape
	#    them.  This doesn't affect the output string, but it
	#    does make the configuration easier to read.
	#
	#  * The argument to "/bin/echo" is a double-quoted string.
	#    That is, the attribute name, operator, and value are
	#    passed to "echo" as one argument.  If the parameters to
	#    the "echo" command were not quoted, then they would be
	#    passed as three separate arguments.
	#
	#  * The attribute value is surrounded by single quotes.
	#    These single quotes are inside of the single argument
	#    to the "echo" command.
	#
	#  * If instead the "echo" command was passed three separate
	#    arguments, then the attribute value would be printed
	#    _without_ the quotes.  Because quoting an argument to
	#    a command results in the _unquoted_ string being passed
	#    to the command, as the argument.
	#
	#  The summary of all of the above is that when printing attributes
	#  it's usually easier to run one shell script with no arguments.
	#  That shell script can then print the attribute names, operators,
	#  and values.
	#
	#  Any string values should also be quoted.
	#
	program = """/bin/echo "Filter-Id := '%{User-Name}'" """

	input_pairs = request
	output_pairs = reply
	shell_escape = yes

#	timeout = 10
}
