From: Alan T. DeKok Date: Tue, 14 Nov 2017 20:18:42 +0000 (-0500) Subject: just assign DHCP-Your-IP-Address natively X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9665b1fd057044fd90d71ae91e83489abe3577e;p=thirdparty%2Ffreeradius-server.git just assign DHCP-Your-IP-Address natively --- diff --git a/raddb/mods-available/dhcp_sqlippool b/raddb/mods-available/dhcp_sqlippool index 7739a6066ba..c0c1d716913 100644 --- a/raddb/mods-available/dhcp_sqlippool +++ b/raddb/mods-available/dhcp_sqlippool @@ -22,6 +22,9 @@ sqlippool dhcp_sqlippool { # Client's MAC address is mapped to Calling-Station-Id in policy.conf pool_key = "%{Calling-Station-Id}" + # Attribute name + attribute_name = DHCP-Your-IP-Address + # For now, it works with MySQL. $INCLUDE ${modconfdir}/sql/ippool-dhcp/mysql/queries.conf @@ -31,11 +34,11 @@ sqlippool dhcp_sqlippool { # raddb/mods-config/sql/main/sqlite/queries.conf. # $INCLUDE ${modconfdir}/sql/ippool-dhcp/sqlite/queries.conf - sqlippool_log_exists = "DHCP: Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" + sqlippool_log_exists = "DHCP: Existing IP: %{reply:${..attribute_name}} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" - sqlippool_log_success = "DHCP: Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" + sqlippool_log_success = "DHCP: Allocated IP: %{reply:${..attribute_name}} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" - sqlippool_log_clear = "DHCP: Released IP %{Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})" + sqlippool_log_clear = "DHCP: Released IP %{${..attribute_name}} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})" sqlippool_log_failed = "DHCP: IP Allocation FAILED from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" diff --git a/raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf b/raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf index d4d390afc63..2b7add4c8e4 100644 --- a/raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf +++ b/raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf @@ -107,7 +107,7 @@ start_update = "\ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees an IP number when an accounting @@ -124,7 +124,7 @@ stop_clear = "UPDATE ${ippool_table} \ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees an IP number when an accounting @@ -138,7 +138,7 @@ alive_update = "\ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees the IP numbers allocate to a diff --git a/raddb/mods-config/sql/ippool-dhcp/oracle/queries.conf b/raddb/mods-config/sql/ippool-dhcp/oracle/queries.conf index 673547bb9aa..dacdcd86ef3 100644 --- a/raddb/mods-config/sql/ippool-dhcp/oracle/queries.conf +++ b/raddb/mods-config/sql/ippool-dhcp/oracle/queries.conf @@ -130,7 +130,7 @@ start_update = "\ WHERE nasipaddress = '%{NAS-IP-Address}' \ AND pool_name = '%{control:Pool-Name}' \ AND pool_key = '${pool_key}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This query frees an IP address when an accounting @@ -152,7 +152,7 @@ alive_update = "\ expiry_time = CURRENT_TIMESTAMP + INTERVAL '${lease_duration}' SECOND(1) \ WHERE pool_key = '${pool_key}' \ AND pool_name = '%{control:Pool-Name}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This query frees all IP addresses allocated to a NAS when an diff --git a/raddb/mods-config/sql/ippool-dhcp/sqlite/queries.conf b/raddb/mods-config/sql/ippool-dhcp/sqlite/queries.conf index a42713506e5..a5544416957 100644 --- a/raddb/mods-config/sql/ippool-dhcp/sqlite/queries.conf +++ b/raddb/mods-config/sql/ippool-dhcp/sqlite/queries.conf @@ -104,7 +104,7 @@ start_update = "\ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees an IP number when an accounting STOP record arrives @@ -121,7 +121,7 @@ stop_clear = "\ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees an IP number when an accounting ALIVE record arrives @@ -134,7 +134,7 @@ alive_update = "\ AND pool_key = '${pool_key}' \ AND username = '%{User-Name}' \ AND callingstationid = '%{Calling-Station-Id}' \ - AND framedipaddress = '%{Framed-IP-Address}'" + AND framedipaddress = '%{${attribute_name}}'" # # This series of queries frees the IP numbers allocate to a diff --git a/raddb/policy.d/dhcp b/raddb/policy.d/dhcp index 8ed03a664c6..44f560e80aa 100644 --- a/raddb/policy.d/dhcp +++ b/raddb/policy.d/dhcp @@ -13,13 +13,5 @@ dhcp_sqlippool.post-auth { # Call the actual module dhcp_sqlippool - - # Convert Framed-IP-Address to DHCP, but only if we - # actually allocated an address. - if (ok) { - update reply { - &DHCP-Your-IP-Address = "%{reply:Framed-IP-Address}" - } - } }