New package handling HTTP POST contact forms: ordered []Field config
(GravityForms-compatible input_N defaults), MaxBytesReader body cap,
geoip+ipcohort gating, X-Forwarded-For trust via TrustedProxies CIDRs,
and SMTP submission over STARTTLS. EHLO LocalName is split from the
NewClient peer host so the client identifies itself correctly while
PlainAuth still binds to the real server name. Hot-reloadable success/
error response bodies via func() []byte. Includes a fake-SMTP integration
test that catches StartTLS(nil) regressions.
New package for matching IPs against cohort lists (single IPs and
networks, in separate files or combined) with inbound/outbound/whitelist
semantics. Supports the bitwire-it/ipblocklist data shape out of the box
and is meant to be paired with gitshallow or httpcache for periodic
refresh. Includes README, ipcohort-contains CLI, and tests.
New package wrapping oschwald/geoip2-golang to open MaxMind .mmdb databases
directly out of cached <edition>_LATEST.tar.gz files (no Transform, no
intermediate extracted mmdb). ParseConf reads MaxMind's GeoIP.conf format
for AccountID + LicenseKey. Includes geoip-update CLI, integration test,
and a copy of the MMDB binary format spec.
New package for fetching files from HTTP with conditional-GET semantics
and a sidecar metadata file that persists ETag/Last-Modified across
restarts. Splits connection vs download timeouts, supports custom auth
headers (stripped on cross-origin redirect), and exposes sentinel errors
for callers branching on failure mode. Integration tests included.
New package for keeping a local mirror of a remote git repo via shallow
fetch+reset (not pull --ff-only, which loses force-pushed history). Adds
MaxAge gate via FETCH_HEAD mtime to skip redundant network calls under
concurrent callers, and a git-shallow-sync CLI. Includes integration
tests plus a force-push regression test.