]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolvectl: remove allow_loopback parameter from ifname_mangle()
authorLennart Poettering <lennart@poettering.net>
Wed, 5 Dec 2018 13:02:06 +0000 (14:02 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 5 Dec 2018 17:46:23 +0000 (18:46 +0100)
All our bus calls validate whether the specified device is a loopback
device anyway on the server side. Let's hence simplify the client,
there's no value in optimizing error paths after all. But there is value
in simpler code.

src/resolve/resolvconf-compat.c
src/resolve/resolvectl.c
src/resolve/resolvectl.h

index 242c26e5caee869c00233206dda19e73b8e18579..383d0b819bdb08e7f017ce8277d72128950d873a 100644 (file)
@@ -212,7 +212,7 @@ int resolvconf_parse_argv(int argc, char *argv[]) {
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                        "Expected interface name as argument.");
 
-        r = ifname_mangle(argv[optind], false);
+        r = ifname_mangle(argv[optind]);
         if (r <= 0)
                 return r;
 
index a468cec72cd78dd945985471b9af5ffed3168ba9..6c43ffa823c7c3f656337cc48100396d0ae625da 100644 (file)
@@ -88,7 +88,7 @@ static int parse_ifindex_and_warn(const char *s) {
         return ifi;
 }
 
-int ifname_mangle(const char *s, bool allow_loopback) {
+int ifname_mangle(const char *s) {
         _cleanup_free_ char *iface = NULL;
         const char *dot;
         int ifi;
@@ -122,10 +122,6 @@ int ifname_mangle(const char *s, bool allow_loopback) {
                 return -EINVAL;
         }
 
-        if (!allow_loopback && ifi == LOOPBACK_IFINDEX)
-                return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
-                                       "Interface can't be the loopback interface (lo). Sorry.");
-
         arg_ifindex = ifi;
         free_and_replace(arg_ifname, iface);
 
@@ -1867,7 +1863,7 @@ static int verb_dns(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -1953,7 +1949,7 @@ static int verb_domain(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2031,7 +2027,7 @@ static int verb_llmnr(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2072,7 +2068,7 @@ static int verb_mdns(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2113,7 +2109,7 @@ static int verb_dns_over_tls(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2154,7 +2150,7 @@ static int verb_dnssec(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2198,7 +2194,7 @@ static int verb_nta(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2265,7 +2261,7 @@ static int verb_revert_link(int argc, char **argv, void *userdata) {
         assert(bus);
 
         if (argc >= 2) {
-                r = ifname_mangle(argv[1], false);
+                r = ifname_mangle(argv[1]);
                 if (r < 0)
                         return r;
         }
@@ -2512,7 +2508,7 @@ static int compat_parse_argv(int argc, char *argv[]) {
                         break;
 
                 case 'i':
-                        r = ifname_mangle(optarg, true);
+                        r = ifname_mangle(optarg);
                         if (r < 0)
                                 return r;
                         break;
@@ -2742,10 +2738,6 @@ static int compat_parse_argv(int argc, char *argv[]) {
                 if (arg_ifindex <= 0)
                         return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                                "--set-dns=, --set-domain=, --set-llmnr=, --set-mdns=, --set-dnsovertls=, --set-dnssec=, --set-nta= and --revert require --interface=.");
-
-                if (arg_ifindex == LOOPBACK_IFINDEX)
-                        return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
-                                               "Interface can't be the loopback interface (lo). Sorry.");
         }
 
         return 1 /* work to do */;
@@ -2803,7 +2795,7 @@ static int native_parse_argv(int argc, char *argv[]) {
                         break;
 
                 case 'i':
-                        r = ifname_mangle(optarg, true);
+                        r = ifname_mangle(optarg);
                         if (r < 0)
                                 return r;
                         break;
index 7858fcd6b42dc1fe96bc2ddebd4d6c3891b88cdc..6b3a1f844515f49739b2ccda31d041e87e1e8755 100644 (file)
@@ -26,4 +26,4 @@ extern char **arg_set_dns;
 extern char **arg_set_domain;
 extern bool arg_ifindex_permissive;
 
-int ifname_mangle(const char *s, bool allow_loopback);
+int ifname_mangle(const char *s);