Currently, `config:reload()` ignores so-called "delete markers" [1],
denoted by a a key and equal sign, but no value on the right hand
side, e.g.
```ini
key =
```
However, when the `config` application starts, and it parses the
`.ini` files in order, it deletes any existing value from the `ets`
table with that key when it encounters a delete marker. This has the
effect of *overriding* any defaults with `undefined`, which some
people find surprising. [2]
Luckily, the origin of delete markers is not lost to time, and the
original developer has admitted they were essentially a work-around
[3] for not having a proper `.ini` file parser.
This change removes support for delete markers. A persistent call to
`config:delete` no longer writes a delete marker, but instead deletes
the entire line. When parsing `.ini` files, any existing delete
markers are ignored.
Additionally, this change improves consistency after `config:delete`
by loading any values from `.ini` files into the `ets` table
subsequent to the deletion.
The third argument to `config:delete/3`, if not a boolean, should be a
reason for the deletion. This "8080" that looks like a port number was
presumably a copy-pasta error.
- Ensure these config tests get executed
Unwrap tests from unnecessary `?_test(begin ... end)` so that they
actually execute their assertions.
4e0b66a...
by
Robert Newson <email address hidden>
Merge pull request #4905 from apache/nouveau-auth
Reject requests with user-agent header
a4ede7b...
by
Robert Newson <email address hidden>
Reject requests with user-agent header
A light mechanism to block unwanted requests from a browser,
which will always send a User-Agent header of some value.