{% from 'macros/common_macros.lua.j2' import boolean %}

-- options.glue-checking
mode('{{ cfg.options.glue_checking }}')

{% if cfg.options.rebinding_protection %}
-- options.rebinding-protection
modules.load('rebinding < iterate')
{% endif %}

{% if cfg.options.violators_workarounds %}
-- options.violators-workarounds
modules.load('workarounds < iterate')
{% endif %}

{% if cfg.options.serve_stale %}
-- options.serve-stale
modules.load('serve_stale < cache')
{% endif %}

-- options.query-priming
{% if cfg.options.priming %}
modules.load('priming')
{% else %}
modules.unload('priming')
{% endif %}

-- options.time-jump-detection
{% if cfg.options.time_jump_detection %}
modules.load('detect_time_jump')
{% else %}
modules.unload('detect_time_jump')
{% endif %}

-- options.refuse-no-rd
{% if cfg.options.refuse_no_rd %}
modules.load('refuse_nord')
{% else %}
modules.unload('refuse_nord')
{% endif %}

-- options.qname-minimisation
option('NO_MINIMIZE', {{ boolean(cfg.options.minimize,true) }})

-- options.query-loopback
option('ALLOW_LOCAL', {{ boolean(cfg.options.query_loopback) }})

-- options.reorder-rrset
option('REORDER_RR', {{ boolean(cfg.options.reorder_rrset) }})

-- options.query-case-randomization
option('NO_0X20', {{ boolean(cfg.options.query_case_randomization,true) }})