chiark / gitweb /
test-unit-name: add more tests
[elogind.git] / src / resolve-host / resolve-host.c
index c39b582373313054361fb2568ff709d47f4f9a85..43ecf81ef62b8e46244b6a21d017aebee98869a6 100644 (file)
@@ -26,7 +26,7 @@
 #include "sd-bus.h"
 #include "bus-util.h"
 #include "bus-error.h"
-#include "bus-errors.h"
+#include "bus-common-errors.h"
 #include "in-addr-util.h"
 #include "af-list.h"
 #include "build.h"
@@ -155,7 +155,7 @@ static int resolve_host(sd_bus *bus, const char *name) {
 
                 r = in_addr_to_string(family, a, &pretty);
                 if (r < 0) {
-                        log_error("%s: failed to print address: %s", name, strerror(-r));
+                        log_error_errno(r, "%s: failed to print address: %m", name);
                         continue;
                 }
 
@@ -466,14 +466,14 @@ static void help(void) {
                "  -p --protocol=PROTOCOL  Look via protocol\n"
                "  -t --type=TYPE          Query RR with DNS type\n"
                "  -c --class=CLASS        Query RR with DNS class\n"
-               "     --no-legend          Do not print column headers\n"
+               "     --legend[=BOOL]      Do [not] print column headers\n"
                , program_invocation_short_name);
 }
 
 static int parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_VERSION = 0x100,
-                ARG_NO_LEGEND,
+                ARG_LEGEND,
         };
 
         static const struct option options[] = {
@@ -481,7 +481,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "version",   no_argument,       NULL, ARG_VERSION   },
                 { "type",      required_argument, NULL, 't'           },
                 { "class",     required_argument, NULL, 'c'           },
-                { "no-legend", no_argument,       NULL, ARG_NO_LEGEND },
+                { "legend", optional_argument,    NULL, ARG_LEGEND    },
                 { "protocol",  required_argument, NULL, 'p'           },
                 {}
         };
@@ -513,10 +513,8 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case 'i':
                         arg_ifindex = if_nametoindex(optarg);
-                        if (arg_ifindex <= 0) {
-                                log_error("Unknown interfaces %s: %m", optarg);
-                                return -errno;
-                        }
+                        if (arg_ifindex <= 0)
+                                return log_error_errno(errno, "Unknown interfaces %s: %m", optarg);
                         break;
 
                 case 't':
@@ -548,8 +546,17 @@ static int parse_argv(int argc, char *argv[]) {
 
                         break;
 
-                case ARG_NO_LEGEND:
-                        arg_legend = false;
+                case ARG_LEGEND:
+                        if (optarg) {
+                                r = parse_boolean(optarg);
+                                if (r < 0) {
+                                        log_error("Failed to parse --legend= argument");
+                                        return r;
+                                }
+
+                                arg_legend = !!r;
+                        } else
+                                arg_legend = false;
                         break;
 
                 case 'p':
@@ -605,7 +612,7 @@ int main(int argc, char **argv) {
 
         r = sd_bus_open_system(&bus);
         if (r < 0) {
-                log_error("sd_bus_open_system: %s", strerror(-r));
+                log_error_errno(r, "sd_bus_open_system: %m");
                 goto finish;
         }