#  -*- text -*-
#
#
#  $Id: 2cc988e6c446f15669aeb43fc2bc1c90b9862661 $

#######################################################################
#
#  = 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
}
