Changeset bc9ef3b in Klonkt for src/assets/js/mod/read.js

Timestamp:
08/20/2026 09:50:04 AM (3 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
96a99bf
Parents:
520c993
git-author:
Bart <bart@…> (08/20/2026 09:48:11 AM)
git-committer:
Bart <bart@…> (08/20/2026 09:50:04 AM)
Message:

add-instance: schrijf naar conf.d, en weiger ongeldige IDN-namen

Twee dingen, waarvan het eerste een bug is die vanmiddag ontstond toen de
Caddyfile opgesplitst werd.

De controle "bestaat dit domein al?" greppte in /etc/caddy/Caddyfile, waar sinds
de splitsing geen enkel site-blok meer staat. Die kon dus nooit meer iets
vinden: opnieuw draaien voor een bestaand domein plakte een DUPLICAAT achteraan,
Caddy weigert dubbele site-adressen, validate faalde, en het script stierf met
het kapotte blok nog in het bestand. Er werd een .bak gemaakt en nooit
teruggezet.

Nu één bestand per site in conf.d, de controle kijkt of dat bestand er is, en
bij een mislukte validatie wordt het blok weer weggehaald in plaats van te
blijven staan. De draaiende Caddy merkt er niets van; pas de volgende reload zou
over een kapotte config struikelen, en reloaden is precies wat de volgende
persoon doet. De terugval op systemctl restart caddy is weg: een mislukte
reload meld je, je escaleert hem niet naar het neerhalen van alle sites.

Daarnaast gaat een internationaal domein als ASCII het blok, de bestandsnaam en
PUBLIC_BASE_URL in. Per label punycode en bewust géén IDNA-bibliotheek: Pythons
ingebouwde idna-codec STRIPT de zero-width joiner en levert een andere naam op
(eentje zonder certificaat), en de strikte IDNA2008-tools weigeren emoji
helemaal. Coderen wat de beheerder werkelijk typte is het enige dat overeenkomt
met het DNS-record dat hij maakte.

En een naam met een joiner of variation selector wordt geweigerd, niet met een
waarschuwing doorgelaten: twee browsers accepteren zo'n naam niet, dus het zou
een site opleveren die onder de bedoelde naam voor niemand bereikbaar is. De
fout noemt beide vormen — wat je typte en wat clients in plaats daarvan vragen —
en er wordt niets aangemaakt. Wie het tóch wil geeft de punycode-vorm als
domein op; die is ASCII en loopt gewoon door.

Co-Authored-By: Claude Opus 5 <claude@…>

(No files)

Note: See TracChangeset for help on using the changeset viewer.