]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-varlink: allow to dispatch method again on pending-method-more state
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 16 Aug 2024 00:25:52 +0000 (09:25 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 19 Aug 2024 02:36:32 +0000 (11:36 +0900)
Otherwise, polkit authentication does not work for methods that require
the MORE flag.

src/libsystemd/sd-varlink/sd-varlink.c

index 7639f72f8925ff10b9988334d6a083da4b3e4feb..1369dfbb77364cbb7cbc1e9883b1098d08cf6320 100644 (file)
@@ -1514,7 +1514,7 @@ _public_ int sd_varlink_dispatch_again(sd_varlink *v) {
 
         if (v->state == VARLINK_DISCONNECTED)
                 return varlink_log_errno(v, SYNTHETIC_ERRNO(ENOTCONN), "Not connected.");
-        if (v->state != VARLINK_PENDING_METHOD)
+        if (!IN_SET(v->state, VARLINK_PENDING_METHOD, VARLINK_PENDING_METHOD_MORE))
                 return varlink_log_errno(v, SYNTHETIC_ERRNO(EBUSY), "Connection has no pending method.");
 
         varlink_set_state(v, VARLINK_IDLE_SERVER);