]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Allow NAS to be IPv4 or IPv6. Helps with #2094
authorAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 19:09:15 +0000 (15:09 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 19:17:20 +0000 (15:17 -0400)
raddb/mods-config/sql/ippool/mysql/queries.conf
raddb/mods-config/sql/ippool/oracle/queries.conf
raddb/mods-config/sql/ippool/postgresql/queries.conf
raddb/mods-config/sql/ippool/sqlite/queries.conf

index 278c701f3bab100732dcb9eae99870fa8535eb24..bc51b1b2e2482b116f21010f93959ec3182206cf 100644 (file)
@@ -20,7 +20,7 @@
 #
 #  This series of queries allocates an IP address
 #  (Note: If your pool_key is set to Calling-Station-Id and not NAS-Port
-#  then you may wish to delete the "AND nasipaddress = '%{Nas-IP-Address}'
+#  then you may wish to delete the "AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'
 #  from the WHERE clause)
 #
 allocate_clear = "\
@@ -32,7 +32,7 @@ allocate_clear = "\
                username = '', \
                expiry_time = NULL \
        WHERE expiry_time <= NOW() - INTERVAL 1 SECOND \
-       AND nasipaddress = '%{Nas-IP-Address}'"
+       AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  The ORDER BY clause of this query tries to allocate the same IP-address
@@ -109,7 +109,7 @@ stop_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}' \
@@ -122,7 +122,7 @@ alive_update = "\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = NOW() + INTERVAL ${lease_duration} SECOND \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}' \
@@ -140,7 +140,7 @@ on_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  This series of queries frees the IP numbers allocate to a
@@ -154,4 +154,4 @@ off_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
index ad74651578da5656efde3296a4a200ad2d21df1f..03b7f0ed281654d211a7e134c44e25679573a5fc 100644 (file)
@@ -83,7 +83,7 @@ allocate_update = "\
 #  as your "pool_key" and your users are able to reconnect before your NAS
 #  has timed out their previous session. (Generally on wireless networks)
 #  (Note: If your pool_key is set to Calling-Station-Id and not NAS-Port
-#  then you may wish to delete the "AND nasipaddress = '%{Nas-IP-Address}'
+#  then you may wish to delete the "AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'
 #  from the WHERE clause)
 #
 allocate_clear = "\
@@ -116,7 +116,7 @@ stop_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = current_timestamp - INTERVAL '1' second(1) \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{SQL-User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}'"
@@ -129,7 +129,7 @@ alive_update = "\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = current_timestamp + INTERVAL '${lease_duration}' second(1) \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND framedipaddress = '%{${attribute_name}}' \
        AND username = '%{SQL-User-Name}' \
@@ -146,7 +146,7 @@ on_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = current_timestamp - INTERVAL '1' second(1) \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  This query frees all IP addresses allocated to a NAS when an
@@ -159,4 +159,4 @@ off_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = current_timestamp - INTERVAL '1' second(1) \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
index b08bcd7af666dc1e4326d67a9ce6c3b0873e0969..9ceb5148e40c87056d408866d05ae3b52e38b734 100644 (file)
@@ -64,7 +64,7 @@ allocate_update = "\
 #  as your "pool_key" and your users are able to reconnect before your NAS
 #  has timed out their previous session. (Generally on wireless networks)
 #  (Note: If your pool_key is set to Calling-Station-Id and not NAS-Port
-#  then you may wish to delete the "AND nasipaddress = '%{Nas-IP-Address}'
+#  then you may wish to delete the "AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'
 #  from the WHERE clause)
 #
 allocate_clear = "\
@@ -99,7 +99,7 @@ stop_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = 'now'::timestamp(0) - '1 second'::interval \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{SQL-User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}' \
@@ -113,7 +113,7 @@ alive_update = "\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = 'now'::timestamp(0) + '${lease_duration} seconds'::interval \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND framedipaddress = '%{${attribute_name}}' \
        AND username = '%{SQL-User-Name}' \
@@ -130,7 +130,7 @@ on_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = 'now'::timestamp(0) - '1 second'::interval \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  This query frees all IP addresses allocated to a NAS when an
@@ -143,4 +143,4 @@ off_clear = "\
                pool_key = 0, \
                callingstationid = '', \
                expiry_time = 'now'::timestamp(0) - '1 second'::interval \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
index 86f801abe6d2b534821346af5fc851797a26743a..76d07dfb43a1b5611bd6d5aa078d0c006271c56b 100644 (file)
@@ -18,7 +18,7 @@
 #
 #  This series of queries allocates an IP address
 #  (Note: If your pool_key is set to Calling-Station-Id and not NAS-Port
-#  then you may wish to delete the "AND nasipaddress = '%{Nas-IP-Address}'
+#  then you may wish to delete the "AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'
 #  from the WHERE clause)
 #
 allocate_clear = "\
@@ -30,7 +30,7 @@ allocate_clear = "\
                username = '', \
                expiry_time = NULL \
        WHERE expiry_time <= datetime(strftime('%%s', 'now') - 1, 'unixepoch') \
-       AND nasipaddress = '%{Nas-IP-Address}'"
+       AND nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  The ORDER BY clause of this query tries to allocate the same IP-address
@@ -112,7 +112,7 @@ stop_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}' \
@@ -126,7 +126,7 @@ alive_update = "\
        UPDATE ${ippool_table} \
        SET \
                expiry_time = datetime(strftime('%%s', 'now') + ${lease_duration}, 'unixepoch') \
-       WHERE nasipaddress = '%{Nas-IP-Address}' \
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}' \
        AND pool_key = '${pool_key}' \
        AND username = '%{User-Name}' \
        AND callingstationid = '%{Calling-Station-Id}' \
@@ -144,7 +144,7 @@ on_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"
 
 #
 #  This series of queries frees the IP numbers allocate to a
@@ -158,5 +158,5 @@ off_clear = "\
                callingstationid = '', \
                username = '', \
                expiry_time = NULL \
-       WHERE nasipaddress = '%{Nas-IP-Address}'"
+       WHERE nasipaddress = '%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}'"