CIDRKeys masked the address byte by byte and formatted the result with
string concatenation, while SetCIDR/DeleteCIDR format their keys with
net.IPNet.String() via NormalizeCIDR. The two agreed only by coincidence:
any divergence in formatting silently stops every range decision from
matching, with no test covering the invariant.
Mask with net.IP.Mask and format through net.IPNet.String() so both sides
go through the same formatter. Output is byte for byte identical to the
previous implementation (checked against a golden dump of both IPv4 and
IPv6 keys, including ::ffff: forms).
Dropping the inner byte loops also removes the only intrange violation in
the tree, so the linter exclusion added for them is no longer needed, and
the redundant import alias on pkg/ip goes away with it.
* ✨ add one instance of cache for all the service
* 🐛 fix the healthy issue
* 🐛 fix lint
* 🍱 upgrade codebase
* 🍱 fix lint
* 🐛 when there is master node shut down
* Set live mode as default, clean docker and recipes
* Restore live mode in readme as default
* 🍱 add channel management
* 🍱 order funcs
* 🍱 revert service in docker compose
* ✨ logLevel added + cache put out the bouncer
* 🍱 fix
* 🍱 fix
* 🍱 fix
Co-authored-by: MathieuHa <mathieu@hanotaux.fr>