NAS-Port is a text field. Don't cast it to integer
[freeradius.git] / raddb / sql / postgresql / dialup.conf
index 7de28eb..aa1907f 100644 (file)
@@ -1,13 +1,8 @@
-#
-#  $Id$
-#
-#  Configuration for the SQL module, when using Postgresql.
-#
-#  The database schema is available at:
-#
-#      raddb/sql/postgresql/schema.sql
-#
-
+# -*- text -*-
+##
+## dialup.conf -- PostgreSQL configuration for default schema (schema.sql)
+##
+##     $Id$
 
 # Safe characters list for sql queries. Everything else is replaced
 # with their mime-encoded equivalents.
@@ -65,9 +60,10 @@ sql_user_name = "%{User-Name}"
 #  2. Shortname
 #  3. Type
 #  4. Secret
+#  5. Server
 #######################################################################
 
-nas_query = "SELECT id, nasname, shortname, type, secret FROM ${nas_table}"
+nas_query = "SELECT id, nasname, shortname, type, secret, server FROM ${nas_table}"
 
 #######################################################################
 #  Authorization Queries
@@ -166,8 +162,7 @@ accounting_onoff_query = "UPDATE ${acct_table1} \
   - '%{%{Acct-Delay-Time}:-0}'::interval)))::BIGINT, \
   AcctTerminateCause = '%{Acct-Terminate-Cause}', \
   AcctStopDelay = 0 \
-  WHERE AcctSessionTime IS NULL \
-  AND AcctStopTime IS NULL \
+  WHERE AcctStopTime IS NULL \
   AND NASIPAddress= '%{NAS-IP-Address}' \
   AND AcctStartTime <= '%S'::timestamp"
 
@@ -187,7 +182,7 @@ accounting_update_query_alt = "INSERT INTO ${acct_table1} \
   ServiceType, FramedProtocol, FramedIPAddress, XAscendSessionSvrKey) \
   VALUES('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
   '%{SQL-User-Name}', NULLIF('%{Realm}', ''), '%{NAS-IP-Address}', \
-  %{%{NAS-Port}:-NULL}::integer, '%{NAS-Port-Type}', \
+  %{%{NAS-Port}:-NULL}, '%{NAS-Port-Type}', \
   ('%S'::timestamp - '%{%{Acct-Delay-Time}:-0}'::interval - '%{%{Acct-Session-Time}:-0}'::interval), \
   '%{Acct-Session-Time}', '%{Acct-Authentic}', \
   (('%{%{Acct-Input-Gigawords}:-0}'::bigint << 32) + '%{%{Acct-Input-Octets}:-0}'::bigint), \
@@ -206,7 +201,7 @@ accounting_start_query = "INSERT INTO ${acct_table1} \
   '%{SQL-User-Name}', \
   NULLIF('%{Realm}', ''), \
   '%{NAS-IP-Address}', \
-  %{%{NAS-Port}:-NULL}::integer, \
+  %{%{NAS-Port}:-NULL}, \
   '%{NAS-Port-Type}', \
   ('%S'::timestamp - '%{%{Acct-Delay-Time}:-0}'::interval), \
   '%{Acct-Authentic}', \
@@ -232,7 +227,8 @@ accounting_stop_query = "UPDATE ${acct_table2} \
   SET AcctStopTime = ('%S'::timestamp - '%{%{Acct-Delay-Time}:-0}'::interval), \
   AcctSessionTime = CASE WHEN '%{Acct-Session-Time}' = '' THEN \
   (EXTRACT(EPOCH FROM ('%S'::TIMESTAMP WITH TIME ZONE - AcctStartTime::TIMESTAMP WITH TIME ZONE \
-  - '%{%{Acct-Delay-Time}:-0}'::INTERVAL)))::BIGINT ELSE '%{Acct-Session-Time}' END, \
+  - '%{%{Acct-Delay-Time}:-0}'::INTERVAL)))::BIGINT \
+  ELSE NULLIF('%{Acct-Session-Time}','')::BIGINT END, \
   AcctInputOctets = (('%{%{Acct-Input-Gigawords}:-0}'::bigint << 32) + '%{%{Acct-Input-Octets}:-0}'::bigint), \
   AcctOutputOctets = (('%{%{Acct-Output-Gigawords}:-0}'::bigint << 32) + '%{%{Acct-Output-Octets}:-0}'::bigint), \
   AcctTerminateCause = '%{Acct-Terminate-Cause}', \
@@ -253,7 +249,7 @@ accounting_stop_query_alt = "INSERT INTO ${acct_table2} \
   '%{SQL-User-Name}', \
   NULLIF('%{Realm}', ''), \
   '%{NAS-IP-Address}', \
-  %{%{NAS-Port}:-NULL}::integer, \
+  %{%{NAS-Port}:-NULL}, \
   '%{NAS-Port-Type}', \
   ('%S'::timestamp - '%{%{Acct-Delay-Time}:-0}'::interval - '%{%{Acct-Session-Time}:-0}'::interval), \
   ('%S'::timestamp - '%{%{Acct-Delay-Time}:-0}'::interval), \