9f2de2a0b1
Docs:
- Baseline was stated as 0.3.1 across the canonical set while the branch,
Cat 0/1 crates and every Cat 2 fork are 0.3.2. AGENTS.md also cited a
sources/redbear-0.3.1/ archive that does not exist; the only archive
present is sources/redbear-0.1.0/. Versioning examples now match the
forks as they actually stand (redoxfs/syscall 0.9.1, libredox 0.1.19).
- Repaired 18 instances of 'immutable archived' across 8 documents, where
a global find/replace had turned sync/synced/archived into that phrase
and produced ungrammatical text ('never auto-immutable archived',
'### Source immutable archived').
- Settled the apply-patches.sh contradiction empirically. Both sides were
wrong: the GROSS WARNING blocks (x5) described it as routine
patch-linking, and SCRIPT-BEHAVIOR-MATRIX.md said build-redbear.sh
'never invokes' it. It is invoked at build-redbear.sh:487, but only to
auto-repair a failed verify-overlay-integrity.sh check.
- Dropped the dangling reference to a local/AGENTS.md section
'NO OVERLAY-STYLE PATCHES — SCOPED POLICY' that does not exist.
Build system:
- mk/prefix.mk hardcoded 13.2.0 in the limits.h removal, which silently
no-ops after a toolchain upgrade and leaves the conflicting header.
Version-globbed.
- Parameterized GCC_RECIPE so the from-source toolchain path is not
pinned to gcc13.
- The three cstdlib strtold seds were not idempotent -- the shipped GCC
13 toolchain carried that comment block 17 times from repeated
'make prefix' runs. Each is now guarded.
2.3 KiB
2.3 KiB
redbear-dnsd — Operator Runbook
Daemon: redbear-dnsd
Init service: /usr/lib/init.d/30_dnsd.service
Status check: cat /scheme/dns (scheme reachability), ls /scheme/dns/resolv (forwarder status)
Restart: init-svc restart dnsd
Logs
- Destination:
stderr(visible viajournalctl -u dnsd) - Debug:
REDBEAR_DNSD_LOG=debug redbear-dnsd - Trace:
REDBEAR_DNSD_LOG=trace redbear-dnsd
Architecture
- Scheme:
/scheme/dns— FSScheme for DNS resolution - Loopback listener: UDP port 53 on 127.0.0.1 — standard resolver port for relibc
- mDNS responder: Background thread, sends multicast DNS responses for the local hostname
- netcfg nameserver subscription: Watches
/scheme/netcfg/resolv/nameserverfor upstream DNS server changes (DHCP renewal)
Runtime State Query
- Upstream nameserver:
cat /scheme/netcfg/resolv/nameserver - Hostname:
cat /etc/hostname - Cache state: Internal in-memory
DnsCache+NegativeCache(not exposed via scheme yet) - Forwarder config: Defaults to
8.8.8.8; overridden by netcfg nameserver at startup
Signals / SIGTERM Behavior
- No SIGTERM handler. Daemon uses
INIT_NOTIFYfd for scheme-ready notification. On socket close, daemon exits cleanly.
Cache
- DnsCache: Positive responses cached with TTL-based expiry
- NegativeCache: NXDOMAIN responses cached with SOA MINIMUM TTL
Common Issues
- Relibc can't resolve hostnames — Verify loopback listener started (
dnsd: loopback DNS listener on 127.0.0.1:53in logs). If missing, UDP bind may have failed. Ensure/scheme/dnsscheme is registered. - No upstream resolution — Check netcfg nameserver:
cat /scheme/netcfg/resolv/nameserver. If empty, the daemon falls back to the hardcoded default (8.8.8.8). Ensure network is up. cannot open /scheme/netcfg/resolv/nameserver for subscription— netcfg scheme not available; the daemon will use its default upstream servers. Upstream changes from DHCP renewals won't be detected.- mDNS not responding — The mDNS responder runs in a background thread. Check logs for bind errors. The hostname defaults to
redbearif/etc/hostnameis missing. - Loopback send failures — If the loopback thread logs
send_to(...) failed, the DNS client (relibc) may have closed its socket before a response was ready. Transient on slow upstream lookups.