{% if helpers.exists('OPNsense.freeradius.general.sqlite') and OPNsense.freeradius.general.sqlite == '1' %}

sqlippool {
        # SQL instance to use (from sql.conf)
        #
        #  If you have multiple sql instances, such as "sql sql1 {...}",
        #  use the *instance* name here: sql1.
        sql_module_instance = "sql"

        #  This is duplicative of info available in the SQL module, but
        #  we have to list it here as we do not yet support nested
        #  reference expansions.
        dialect = "sqlite"

        # SQL table to use for ippool range and lease info
        ippool_table = "radippool"

        # IP lease duration. (Leases expire even if Acct Stop packet is lost)
        lease_duration = 3600

        # protocol to use.  The default is IPv4.
#       ipv6 = yes

        # Attribute which should be considered unique per NAS
        #
        #  Using NAS-Port gives behaviour similar to rlm_ippool. (And ACS)
        #  Using Calling-Station-Id works for NAS that send fixed NAS-Port
        #  ONLY change this if you know what you are doing!
        pool_key = "%{NAS-Port}"
        # pool_key = "%{Calling-Station-Id}"

        ################################################################
        #
        #  WARNING: MySQL (MyISAM) has certain limitations that means it can
        #           hand out the same IP address to 2 different users.
        #
        #           We suggest using an SQL DB with proper transaction
        #           support, such as PostgreSQL, or using MySQL
        #            with InnoDB.
        #
        ################################################################

        #  These messages are added to the "control" items, as
        #  Module-Success-Message.  They are not logged anywhere else,
        #  unlike previous versions.  If you want to have them logged
        #  to a file, see the "linelog" module, and create an entry
        #  which writes Module-Success-Message message.
        #
        messages {
                exists = "Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

                success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

                clear = "Released IP %{Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})"

                failed = "IP Allocation FAILED from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

                nopool = "No Pool-Name defined (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
        }

        $INCLUDE ${modconfdir}/sql/ippool/${dialect}/queries.conf
}

{% endif %}
