Skip to content

luci-app-pbr: update to 1.2.2-r6#8356

Open
stangri wants to merge 1 commit intoopenwrt:masterfrom
stangri:master-luci-app-pbr
Open

luci-app-pbr: update to 1.2.2-r6#8356
stangri wants to merge 1 commit intoopenwrt:masterfrom
stangri:master-luci-app-pbr

Conversation

@stangri
Copy link
Member

@stangri stangri commented Feb 25, 2026

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.


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: 2425
  • ReadmeCompat: 1.2.11.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] && 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 >= 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

@stangri stangri force-pushed the master-luci-app-pbr branch 2 times, most recently from c35423c to d792cb5 Compare February 25, 2026 19:59
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 <stangri@melmac.ca>

---

- **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] && 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 >= 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 <stangri@melmac.ca>
@stangri stangri force-pushed the master-luci-app-pbr branch from d792cb5 to be0564e Compare February 26, 2026 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant