mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
varlinkctl: add detailed error message when --more is needed
Instead of reporting a "Invalid exchange", tell the user the `--more` flag is missing. Closes: #39201
This commit is contained in:
committed by
Mike Yuan
parent
6602a5f720
commit
42e543408b
@@ -783,7 +783,9 @@ static int verb_call(int argc, char *argv[], void *userdata) {
|
||||
"Method call %s() returned expected error: %s", method, error);
|
||||
|
||||
r = 0;
|
||||
} else {
|
||||
} else if (streq(error, SD_VARLINK_ERROR_EXPECTED_MORE))
|
||||
r = log_error_errno(SYNTHETIC_ERRNO(EBADE), "Method call %s() failed: called without 'more' flag, but flag needs to be set.", method);
|
||||
else {
|
||||
r = sd_varlink_error_to_errno(error, reply);
|
||||
if (r != -EBADR)
|
||||
log_error_errno(r, "Method call %s() failed: %m", method);
|
||||
|
||||
@@ -191,6 +191,7 @@ varlinkctl introspect /run/systemd/io.systemd.Manager io.systemd.Unit
|
||||
varlinkctl --more call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{}'
|
||||
varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{"name": "multi-user.target"}'
|
||||
varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{"pid": {"pid": 0}}'
|
||||
(! varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{}' |& grep -q "called without 'more' flag")
|
||||
(! varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{"name": ""}')
|
||||
(! varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{"name": "non-existent.service"}')
|
||||
(! varlinkctl call /run/systemd/io.systemd.Manager io.systemd.Unit.List '{"pid": {"pid": -1}}' )
|
||||
|
||||
Reference in New Issue
Block a user