<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/net/shunt/src/rt.uc, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-09-16T17:29:17Z</updated>
<entry>
<title>shunt: update to 0.1.8</title>
<updated>2026-09-16T17:29:17Z</updated>
<author>
<name>Dirk Brenken</name>
</author>
<published>2026-09-16T17:28:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=93a34793be4416febf6dd835ad3aa97c26b27dd7'/>
<id>urn:sha1:93a34793be4416febf6dd835ad3aa97c26b27dd7</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
Signed-off-by: Dirk Brenken &lt;dev@brenken.org&gt;
</content>
</entry>
</feed>
