package/rpcd: fix luci 403 after reload
This commit is contained in:
parent
9471fe5644
commit
74a4f87a69
@ -8,7 +8,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=rpcd
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
From 1fa35765ddf64976aa48950cac53d501fb71dda0 Mon Sep 17 00:00:00 2001
|
||||
From: Jo-Philipp Wich <jo@mein.io>
|
||||
Date: Tue, 13 Jul 2021 20:31:16 +0200
|
||||
Subject: [PATCH] session: unload rpcd configuration before checking login
|
||||
|
||||
Currently, rpcd cached /etc/config/rpcd once on the first login and then
|
||||
keeps checking login attempts and ACL settings against the in-memory
|
||||
copy until the process is restarted.
|
||||
|
||||
This is not desirable as we would like added, modified or removed accounts
|
||||
to be effective immediately. In order to achive this behaviour, ensure to
|
||||
unload the currently loaded rpcd configuration before looking up the login
|
||||
account section.
|
||||
|
||||
Ref: https://github.com/openwrt/luci/issues/5179
|
||||
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
||||
---
|
||||
session.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/session.c b/session.c
|
||||
index 908e298..347cf4e 100644
|
||||
--- a/session.c
|
||||
+++ b/session.c
|
||||
@@ -834,6 +834,12 @@ rpc_login_test_login(struct uci_context *uci,
|
||||
struct uci_element *e;
|
||||
struct uci_ptr ptr = { .package = "rpcd" };
|
||||
|
||||
+ if (!uci_lookup_ptr(uci, &ptr, NULL, false) && ptr.p) {
|
||||
+ uci_unload(uci, ptr.p);
|
||||
+ ptr.flags = 0;
|
||||
+ ptr.p = NULL;
|
||||
+ }
|
||||
+
|
||||
uci_load(uci, ptr.package, &p);
|
||||
|
||||
if (!p)
|
||||
--
|
||||
2.30.2
|
||||
Loading…
Reference in New Issue
Block a user