mirror of
https://github.com/openwrt/packages.git
synced 2026-10-12 08:07:24 +04:00
- 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>
13 lines
431 B
Bash
Executable File
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'
|