two/internal/dhcpd
GnomeZworc e44f3aca96
f-46: dhcpd: add the decision engine and the persisted state #46
Store porte la configuration du subnet et les réservations par MAC, et les
persiste dans un .state écrit de façon atomique (temp + chmod 0600 + rename).
Chaque écriture remplace le fichier, donc un chmod externe est effacé.

Les snapshots sont à la fois la forme sérialisée et la forme d'entrée des
ordres : validation au moment où l'agent pousse, pas quand un guest demande une
adresse. Les hôtes sont triés par MAC, base du digest de L3.

Handle rend (nil, nil) — le silence est un retour normal — pour un type de
message non traité, un subnet non configuré ou une MAC inconnue. La MAC est
normalisée à l'écriture comme au chargement.

58 tests, -race propre, dix mutations toutes détectées.

Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-09-05 23:17:58 +02:00
..
dhcpd.go f-46: dhcpd: build dhcp replies over insomniacslk/dhcp #46 2026-09-05 23:17:58 +02:00
engine.go f-46: dhcpd: add the decision engine and the persisted state #46 2026-09-05 23:17:58 +02:00
engine_test.go f-46: dhcpd: add the decision engine and the persisted state #46 2026-09-05 23:17:58 +02:00
fuzz_test.go f-46: dhcpd: build dhcp replies over insomniacslk/dhcp #46 2026-09-05 23:17:58 +02:00
reply.go f-46: dhcpd: build dhcp replies over insomniacslk/dhcp #46 2026-09-05 23:17:58 +02:00
reply_test.go f-46: dhcpd: build dhcp replies over insomniacslk/dhcp #46 2026-09-05 23:17:58 +02:00
state.go f-46: dhcpd: add the decision engine and the persisted state #46 2026-09-05 23:17:58 +02:00
state_test.go f-46: dhcpd: add the decision engine and the persisted state #46 2026-09-05 23:17:58 +02:00