Files
Dirk BrenkenandClaude 93a34793be shunt: update to 0.1.8
- new per-policy `domain_file` list: domain patterns from a file, one
  per line, for community-maintained lists too large for UCI. Entries
  are learned by snoop only, never polled
- a bare name lives under /tmp/shunt (tmpfs, no flash wear), an
  absolute path is taken as given; a missing file is an issue, not a
  fatal error, the policy stays rendered with empty sets
- new `shunt refresh` (ubus method `refresh`): re-reads the files and
  swaps the matcher in place, no restart, learned addresses stay
- matcher: regex fast path, 4x faster on 100k patterns
- routes and rules are written over rtnetlink via ucode-mod-rtnl
  instead of one `ip` process per command; route.uc renders the
  netlink operations, the new src/rt.uc applies them and reads the
  verdict from rtnl.error()
- `rp_filter_manage` writes /proc/sys directly, `nft` is the last
  remaining child process
- `+ip` dropped from DEPENDS
- README update

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-16 19:29:17 +02:00

13 lines
431 B
Bash
Executable File

#!/bin/sh
# compile and load with the shipped ucode.
#
shunt 2>&1 | grep 'usage: shunt' || exit 1
ucode -e 'import * as a from "shunt.config"; import * as b from "shunt.nft";
import * as c from "shunt.dns"; import * as d from "shunt.frame";
import * as e from "shunt.match"; import * as f from "shunt.domain_file";
import * as g from "shunt.route"; import * as h from "shunt.rt";
print("modules-ok\n");' |
grep 'modules-ok'