FreeRADIUS InkBridge

REDISWho Module

The rediswho module tracks the last set of login sessions for a user.

Configuration Settings

key

Value to use as Redis key.

value

Expansion to produce value to store against Redis key.

trim_count

How many sessions to keep track of per user.

If there are more than this number, older sessions are deleted.

expiry_time

Expiry time in seconds.

Any sessions which have not received an update in this time will be automatically expired.

Per accounting section configuration

Each subsection contains values appropriate to the module being called in the named accounting section.

start

key

Value to use as Redis key

insert_arg

Argument to append to Redis insert command

insert_cmd

Redis command to run when inserting a new value

Defaults to LPUSH. This command will be combined with the key and insert_arg to produce the insert command.

trim_cmd

Redis command to run when trimming values.

Defaults to LTRIM. This command will be combined with the key, 0 and the value of trim_count to produce the trim command.

interim-update

stop

accounting-on

accounting-off

failed

redis { …​ }

Redis connection settings.

Identical to all other Redis based modules.

See the redis module for more information.

Default Configuration

rediswho {
	key = User-Name
	value = "%l,%{Acct-Session-Id},%{NAS-IP-Address || NAS-IPv6-Address},%{Acct-Session-Time},%{Framed-IP-Address},%{Acct-Input-Gigawords || 0},%{Acct-Output-Gigawords || 0},%{Acct-Input-Octets || 0},%{Acct-Output-Octets || 0}"
	trim_count = 15
	expiry_time = 86400
	start {
		key = ${..key}
		insert_arg = ${..value}
#		insert_cmd = 'LPUSH'
#		trim_cmd = 'LTRIM'
	}
	interim-update {
		key = ${..key}
		insert_arg = ${..value}
	}
	stop {
		key = ${..key}
		insert_arg = ${..value}
	}
##	accounting-on {
##		key = ""
##		insert_arg = ""
##	}
##	accounting-off {
##		key = ""
##		insert_arg = ""
##	}
##	failed {
##		key = ""
##		insert_arg = ""
##	}
	redis {
		server = 127.0.0.1
		virtual_server = redis
		port = 6379
##		password = thisisreallysecretandhardtoguess
		pool {
			start = 0
			min = 1
			max = 10
			connecting = 2
##			open_delay = 0.2
##			close_delay = 10
##			manage_interval = 0.2
			connection {
				connect_timeout = 3.0
				reconnect_delay = 5
			}
			request {
				per_connection_max = 2000
				per_connection_target = 1000
				free_delay = 10
			}
		}
	}
}