#  postgresql 
interface postgres
server 127.0.0.1
port 5432
login vpn
password VPN

keepopen yes
idle_timeout 14400

doauth yes
auth_max_connections 4

auth_db vpn

#  
auth_query  select passwd from users where user_name='%u' AND active = TRUE and get_traffic_limit('%u') >= 0

reply_attr_query  SELECT attr,param \
                    FROM users_attribute \
                    WHERE op IS NULL AND user_name='%u'
doacct yes
acct_max_connections 4
acct_db vpn

acct_start_query INSERT INTO stat(user_name,start,ip,frm,acct_s_id,pid,update) \
		 VALUES('%u','%D','%C{Framed-IP-Address}', \
		 '%C{Calling-Station-Id}','%C{Acct-Session-Id}','%C{Login-Service}','%D')

acct_alive_query UPDATE stat \
		    SET tm = %C{Acct-Session-Time}, \
		        update = '%D', \
		        inp = %C{Acct-Input-Octets}, \
		        out = %C{Acct-Output-Octets} \
		 WHERE user_name = '%u' AND acct_s_id = '%C{Acct-Session-Id}'

acct_stop_query  UPDATE stat \
		    SET tm = %C{Acct-Session-Time}, \
		        update = '%D', \
			stop   = '%D', \
		        inp = %C{Acct-Input-Octets}, \
			out = %C{Acct-Output-Octets}  \
		 WHERE user_name = '%u' AND acct_s_id = '%C{Acct-Session-Id}'; \
		 UPDATE users_attribute \
		    SET param = INT8(param) - %C{Acct-Input-Octets} - %C{Acct-Output-Octets}  \
		 WHERE user_name = '%u' AND attr = 'Traffic-Limit'; \
		 UPDATE users \
		    SET active = false WHERE get_traffic_limit('%u') <= 0 AND user_name = '%u'; \
		 SELECT check_lost('%u')

