From: Yu Watanabe Date: Fri, 16 Aug 2024 00:25:52 +0000 (+0900) Subject: sd-varlink: allow to dispatch method again on pending-method-more state X-Git-Tag: v257-rc1~676^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=302cc03cc87ec8cb5667984baa2fd5456fac5dca;p=thirdparty%2Fsystemd.git sd-varlink: allow to dispatch method again on pending-method-more state Otherwise, polkit authentication does not work for methods that require the MORE flag. --- diff --git a/src/libsystemd/sd-varlink/sd-varlink.c b/src/libsystemd/sd-varlink/sd-varlink.c index 7639f72f892..1369dfbb773 100644 --- a/src/libsystemd/sd-varlink/sd-varlink.c +++ b/src/libsystemd/sd-varlink/sd-varlink.c @@ -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);