#
# SOURCES
#

# For each port you specify here, the server creates an UDP socket to listen
# on, by default bound to the wildcard address 0.0.0.0. You an supply a list of
# addresses as well; the server will then take one from the list in order for
# each socket that is created.

source (port=1812,
	port=1813),

#
# INTERFACES
#

# Basic SQL interface with autocommit on; filters request list for efficiency; 
# used for querying and logging. We use three connections by default.

interface (name="Sql", 
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
           sendattr="str",              # add more attributes if you use
           sendattr="User-Name",        # queries that need them
           sendattr="IP-Source",
	   flags=Ascii + Short-Attr + Named-Const,
	   timeout=15),

# SQL interface used for more complex transactions. 
# Uses the pidattr feature to route all calls for one transaction through 
# the same instance of the module -- thus the same connection.

interface (name="AcctSql", 
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
	   prog="radsql mysql:dbname=openradius radiusd radiusd",
	   pidattr="Pid-Sql",	# make repeated calls use same prog instance,
	   			# so that locking and transactions can be used
				# even with multiple instances. 
	   flags=Ascii + Short-Attr + Named-Const,
	   timeout=15),

# Uncomment this and the corresponding block in the behaviour file if you want
# to use check items in the database.

#interface (name="CheckSql", 
#	   prog="radsql -c mysql:dbname=openradius radiusd radiusd",
#	   prog="radsql -c mysql:dbname=openradius radiusd radiusd",
#          sendattr="str",              # add more attributes if you use
#          sendattr="User-Name",        # checking queries that need them
#	   flags=Ascii + Short-Attr + Named-Const,
#	   timeout=15),


# Uncomment this and the corresponding block in the behaviour file
# if you want to run a proxy.
#
# Do not call this module interface 'Proxy' as it will have a very funny 
# effect on the working of the Proxy-State attribute. I know, that shouldn't 
# be the case.

interface (name="Radiusclient",
	   prog="radclient -C",
	   flags=Ascii + Short-Attr,
	   window=256,
	   jobticket="Radclient-Query-Id",
	   timeout=300)				# interface guard timeout