Reduce the number of "bad configuration options" flags
- Reduce the number of bad option flags.
- Print a warning when an option is flagged
- Do something about the non-operational flags
There is a subtle difference between unsupported configuration options:
ancient: these are options that existed in 9.8 but removed in 9.9. Having them in named.conf is a configuration error, causing named to exit on startup.
obsoleted: these are options that no longer do anything, and should be removed from the configuration file, but is not a configuration error. Having these options in named.conf will log a warning that says the option is obsoleted and should be removed.
deprecated: these are options that still work but are deprecated. They will no longer be supported and you should use the newer configuration options. They will still work, and configuring them will trigger the expected behavior, but these options will be removed in a future version.
not implemented: These options are not implemented but do have a option name assigned.
not yet implemented: These options are not yet implemented but do have a option name assigned.
not operational: These options only do something if at compile time the feature was enabled, otherwise they are ignored.
not configured: These options are only allowed if at compile time the feature was enabled, otherwise having them in named.conf is a configuration error.
- Then there are the options that have no special handling, these are "unknown". They are a configuration error and cause named to exit at startup.
Below are the list of options that fall in one of these categories.
Let's reduce the number of options to the following:
- "unknown": Any option that is not supported and will result in a configuration error does not need a special flag. When encountering such an option, named will log that it encountered an "unknown option". Includes all
ancient: These options are treated the same way as the unknown options, except it tells the operator and implementer the option was in use in the past.
obsoleted: This option does nothing and having them in your configuration file is a noop. The option may be removed in the future. This includes not (yet) implemented options.
not yet implementedoptions will be treated similar as
obsoleted(the idea being that if an option is implemented it should be functional`).
deprecated: This option still works, but should be removed because the option may be removed in the future.
not configured: These options are only allowed if their feature is enabled at compile time. Having them in your named.conf otherwise is a configuration error.
not operationalis promoted to
In addition to these bad configuration options there is also difference between good options:
- The normal options that do not require any special processing or logging.
multiple: This option is the same as normal options but may appear multiple times.
experimental: Experimental options that (currently) are treated as normal options.
default changed: This tells the user that if the configuration option is not present, the default has changed.
test only: This option is for testing purposes only.
Experimental options should also trigger a log warning.
We may want to do something about the broken
default changed and
test only options.
|managed-keys||top, view, bind.keys|
|trusted-keys||top, view, bind.keys|
Not yet implemented