<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/applications/luci-app-pbr/htdocs, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-03-04T01:42:23Z</updated>
<entry>
<title>luci-app-pbr: update to 1.2.2-r8</title>
<updated>2026-03-04T01:42:23Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2026-03-02T20:33:19Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=1c2a26f6aa1a73e0a159901f543a2ed53fe46308'/>
<id>urn:sha1:1c2a26f6aa1a73e0a159901f543a2ed53fe46308</id>
<content type='text'>
* version bump to match the principal package
* safer wait for long pbr operations

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to 1.2.2-r6</title>
<updated>2026-02-27T01:01:17Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2026-02-25T19:14:01Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=5d2db5baad69063ea206f3bbcf640a8fd854a772'/>
<id>urn:sha1:5d2db5baad69063ea206f3bbcf640a8fd854a772</id>
<content type='text'>
Update luci-app-pbr from 1.2.1-r87 to 1.2.2-r6.
This release bumps compat to 25, fixes split-uplink
WAN6 interface filtering in the rpcd backend, adds
error handling to the status overview widget,
normalizes all README anchor links to kebab-case,
and updates the translation template.

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;

---

- **6 files changed**, +90 / -83 lines (net +7)
- **1 commit**: `cc43913` —
  `luci-app-pbr: update to 1.2.2-r6`

---

- Version bumped from `1.2.1-r87` to `1.2.2-r6`
- URL updated from `github.com/stangri/...` to
  `github.com/mossdef-org/...`
- No dependency changes

---

`rpcdCompat` bumped from `24` to `25`.

`get_supported_interfaces()` now filters out the
WAN6 interface in split-uplink configurations so
it does not appear as a policy target in the UI.

Two filter points added:

1. **`_build_ifaces_supported()` callback** —
   When iterating netifd interfaces, skips any
   interface where `is_split_uplink()` is true
   and `is_uplink6()` matches. Prevents WAN6
   from being added to the supported list.

2. **Firewall zone enumeration loop** — Same
   check applied when iterating interfaces from
   the firewall WAN zone. Skips WAN6 via
   `continue` before the `is_supported_interface`
   check.

**Impact:** In split-uplink setups (separate
interfaces for IPv4 and IPv6 uplinks), the WAN6
interface no longer appears in the policy target
dropdown. Policies should target the WAN4
interface; IPv6 routing follows automatically.

---

**Compat bumps:**
- `LuciCompat`: `24` → `25`
- `ReadmeCompat`: `1.2.1` → `1.2.2`

**README anchor link fixes (2 locations):**
- `#WarningMessagesDetails` →
  `#warning-messages-details`
- `#ErrorMessagesDetails` →
  `#error-messages-details`

**README anchor link fixes (10 locations):**

| Old Anchor                    | New Anchor                    |
|-------------------------------|-------------------------------|
| `#ServiceConfigurationSettings` | `#service-configuration-settings` |
| `#StrictEnforcement`          | `#strict-enforcement`         |
| `#UseResolversSetSupport`     | `#use-resolvers-set-support`  |
| `#WireGuardServerUseCases` (×2) | `#wireguard-server-use-cases` |
| `#IgnoreTarget`               | `#ignore-target`              |
| `#PolicyOptions`              | `#policy-options`             |
| `#DNSPolicyOptions`           | `#dns-policy-options`         |
| `#DSCPTag-BasedPolicies`      | `#dscp-tag-based-policies`    |
| `#CustomUserFiles`            | `#custom-user-files`          |

All anchors converted from PascalCase to
kebab-case to match the current README heading
format.

**Error handling added:**
- Entire `render()` function body wrapped in
  `try/catch` block
- On exception, renders a yellow warning banner:
  `"Unable to retrieve PBR status"` instead of
  crashing the status page
- Prevents unhandled errors from breaking the
  LuCI overview when PBR data is malformed or
  unavailable

**Data access simplified:**
- Old: Verbose fallback object with explicit null
  fields (`enabled: null`, `running: null`,
  `version: null`, `gateways: null`, etc.)
- New: `var reply = (data[0] &amp;&amp; data[0][pkg.Name])`
  `|| {};` — single-line fallback to empty object
- All downstream property access already handles
  undefined values, making the verbose defaults
  unnecessary

**No behavioral changes** to the status table
rendering logic itself (Active/Inactive/Disabled
states, iptables/nft/fw4 mode detection).

---

**1 new string added:**
- `"Unable to retrieve %s status"` — Error
  fallback message for the status overview widget

**0 strings removed, 0 strings reworded.**

All other changes are source line number updates
from the `72_pbr.js` refactoring. Existing
translations remain valid; translators only need
to handle the 1 new entry.

---

- `rpcdCompat` bumped from `24` to `25`
- `LuciCompat` bumped from `24` to `25`
- Requires companion `pbr` package &gt;= 1.2.2
  (for `is_split_uplink()` and `is_uplink6()`
  functions used by the rpcd backend)
- All existing RPC methods preserved; no new
  methods added
- All existing UI functionality preserved

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to 1.2.1-r87</title>
<updated>2026-02-05T21:07:01Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2026-01-30T20:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=d2e42ca6676fa9234f7bbed3f1aa7c5c53391542'/>
<id>urn:sha1:d2e42ca6676fa9234f7bbed3f1aa7c5c53391542</id>
<content type='text'>
status.js:
* get ubus and gateways info from ubus instead of rpcd calls
* updates to warning/error IDs and texts
* minor formatting/styling updates

rpcd script:
* remove obsolete rpcd calls

ACL file:
* remove obsolete rpcd calls
* add permission for ubus access

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: upgrade to 1.2.1-45</title>
<updated>2026-01-03T01:28:55Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2026-01-03T01:26:09Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=1ce137b6ca7f5e8114ae7639f57617eadddbef9b'/>
<id>urn:sha1:1ce137b6ca7f5e8114ae7639f57617eadddbef9b</id>
<content type='text'>
Makefile:
* update version to match principal package

Javascript:
* update Compat variables to match principal package
* allow waiting for longer operations to complete
* update warnings/error messages arrays
* add uplink_ip_rules_priority option to WebUI
* remove obsolete input and postrouting chains from WebUI

RPCD script:
* remove gateways string from getInitStatus, as the gateways
  array is returned by its own call

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to 1.2.0-r2</title>
<updated>2025-10-07T22:40:54Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2025-10-07T22:40:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=dc279c566d630329d2625e6085ba3f2f2e508de8'/>
<id>urn:sha1:dc279c566d630329d2625e6085ba3f2f2e508de8</id>
<content type='text'>
* sync with principal package

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: sync with principal package</title>
<updated>2025-08-01T02:29:45Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2025-08-01T01:40:51Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=6b4d69723c311c3bfbfbc54c408e6fd71e5800d2'/>
<id>urn:sha1:6b4d69723c311c3bfbfbc54c408e6fd71e5800d2</id>
<content type='text'>
Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to 1.1.8-10</title>
<updated>2025-02-12T04:07:19Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2025-02-12T04:06:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a318e6d13d99efb864eb6d98408da3f6e291e03e'/>
<id>urn:sha1:a318e6d13d99efb864eb6d98408da3f6e291e03e</id>
<content type='text'>
* fix documentation URL in README
* improve supported_interface description
* improve ignored_interface description

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to 1.1.8</title>
<updated>2024-12-18T05:18:49Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2024-12-18T05:18:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=f41478a9b85b0465e6bff49469b6e3029c2d17f3'/>
<id>urn:sha1:f41478a9b85b0465e6bff49469b6e3029c2d17f3</id>
<content type='text'>
* match version with principal package
* update README version
* use var instead of const for RPCD objects

Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
<entry>
<title>treewide: declare rpc calls with const</title>
<updated>2024-12-03T15:25:21Z</updated>
<author>
<name>Sergey Ponomarev</name>
</author>
<published>2024-12-01T00:03:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=e1d8f0e6f9ab673a266f7813d267ae6dfaef5784'/>
<id>urn:sha1:e1d8f0e6f9ab673a266f7813d267ae6dfaef5784</id>
<content type='text'>
Signed-off-by: Sergey Ponomarev &lt;stokito@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-pbr: update to sync with principal package</title>
<updated>2024-10-31T01:59:47Z</updated>
<author>
<name>Stan Grishin</name>
</author>
<published>2024-10-31T01:59:47Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=2a09205aed273a277dd22ca9937b41728b7ceb9c'/>
<id>urn:sha1:2a09205aed273a277dd22ca9937b41728b7ceb9c</id>
<content type='text'>
Signed-off-by: Stan Grishin &lt;stangri@melmac.ca&gt;
</content>
</entry>
</feed>
