From bbe10509069d227b5d45a61d3ca276df44a4f791 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Mon, 10 Feb 2014 18:36:29 +0100 Subject: [PATCH] miraclectl: make add-link accept a single argument The add-link argument turned out to be confusing so avoid the split input and use the same name as all the other commands. We now split it internally so the DBus call will work properly. Signed-off-by: David Herrmann --- src/miraclectl.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/miraclectl.c b/src/miraclectl.c index c7ffe14..525581f 100644 --- a/src/miraclectl.c +++ b/src/miraclectl.c @@ -623,10 +623,22 @@ static int verb_add_link(sd_bus *bus, char **args, unsigned int n) { _cleanup_sd_bus_error_ sd_bus_error err = SD_BUS_ERROR_NULL; _cleanup_sd_bus_message_ sd_bus_message *m = NULL; - _cleanup_free_ char *link = NULL; + _cleanup_free_ char *link = NULL, *type = NULL; const char *name; + char *t, *iface; int r; + type = strdup(args[1]); + if (!type) + return log_ENOMEM(); + + t = strchr(type, ':'); + if (!t) + return log_EINVAL(); + + *t = 0; + iface = t + 1; + r = sd_bus_call_method(bus, "org.freedesktop.miracle", "/org/freedesktop/miracle", @@ -634,10 +646,10 @@ static int verb_add_link(sd_bus *bus, char **args, unsigned int n) "AddLink", &err, &m, - "ss", args[1], args[2]); + "ss", type, iface); if (r < 0) { log_error("cannot add link %s:%s: %s", - args[1], args[2], bus_error_message(&err, r)); + type, iface, bus_error_message(&err, r)); return r; } @@ -1166,7 +1178,7 @@ static int miraclectl_main(sd_bus *bus, int argc, char *argv[]) { "list", LESS, 1, verb_list }, { "show-link", EQUAL, 2, verb_show_link }, { "show-peer", EQUAL, 2, verb_show_peer }, - { "add-link", EQUAL, 3, verb_add_link }, + { "add-link", EQUAL, 2, verb_add_link }, { "remove-link", EQUAL, 2, verb_remove_link }, { "set-link-name", EQUAL, 3, verb_set_link_name }, { "start-scan", EQUAL, 2, verb_start_scan },