]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
utils: Introduce and use nodev() helper routine
authorSerhey Popovych <serhe.popovych@gmail.com>
Wed, 7 Mar 2018 08:40:36 +0000 (10:40 +0200)
committerDavid Ahern <dsahern@gmail.com>
Mon, 12 Mar 2018 00:58:36 +0000 (17:58 -0700)
There is a couple of places where we report error in case of no network
device is found. In all of them we output message in the same format to
stderr and either return -1 or 1 to the caller or exit with -1.

Introduce new helper function nodev() that takes name of the network
device caused error and returns -1 to it's caller. Either call exit()
or return to the caller to preserve behaviour before change.

Use -nodev() in traffic control (tc) code to return 1.

Simplify expression for checking for argument being 0/NULL in @if
statement.

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
28 files changed:
bridge/fdb.c
bridge/link.c
bridge/mdb.c
bridge/vlan.c
include/utils.h
ip/ip6tunnel.c
ip/ipaddress.c
ip/iplink.c
ip/iplink_bond.c
ip/iplink_bridge.c
ip/iplink_vxlan.c
ip/ipmroute.c
ip/ipneigh.c
ip/ipntable.c
ip/iproute.c
ip/iproute_lwtunnel.c
ip/iptunnel.c
ip/link_gre.c
ip/link_gre6.c
ip/link_ip6tnl.c
ip/link_iptnl.c
ip/link_vti.c
ip/link_vti6.c
lib/utils.c
tc/m_mirred.c
tc/tc_class.c
tc/tc_filter.c
tc/tc_qdisc.c

index b4f6e8b3a01b9d85b2fe5a934e62e84d67f3469f..205b4faa99a2ac3f5244038b9e8582af05f147fc 100644 (file)
@@ -311,11 +311,8 @@ static int fdb_show(int argc, char **argv)
        /*we'll keep around filter_dev for older kernels */
        if (filter_dev) {
                filter_index = ll_name_to_index(filter_dev);
-               if (filter_index == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n",
-                               filter_dev);
-                       return -1;
-               }
+               if (!filter_index)
+                       return nodev(filter_dev);
                req.ifm.ifi_index = filter_index;
        }
 
@@ -391,8 +388,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
                } else if (strcmp(*argv, "via") == 0) {
                        NEXT_ARG();
                        via = ll_name_to_index(*argv);
-                       if (via == 0)
-                               invarg("invalid device\n", *argv);
+                       if (!via)
+                               exit(nodev(*argv));
                } else if (strcmp(*argv, "self") == 0) {
                        req.ndm.ndm_flags |= NTF_SELF;
                } else if (matches(*argv, "master") == 0) {
@@ -467,10 +464,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
                addattr32(&req.n, sizeof(req), NDA_IFINDEX, via);
 
        req.ndm.ndm_ifindex = ll_name_to_index(d);
-       if (req.ndm.ndm_ifindex == 0) {
-               fprintf(stderr, "Cannot find device \"%s\"\n", d);
-               return -1;
-       }
+       if (!req.ndm.ndm_ifindex)
+               return nodev(d);
 
        if (rtnl_talk(&rth, &req.n, NULL) < 0)
                return -1;
index 69c08ec77797c4edd4fe253811ab481420422fa5..579d57e7c072a1b75649eac89b8d89b0e3db3956 100644 (file)
@@ -485,11 +485,9 @@ static int brlink_show(int argc, char **argv)
        }
 
        if (filter_dev) {
-               if ((filter_index = ll_name_to_index(filter_dev)) == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n",
-                               filter_dev);
-                       return -1;
-               }
+               filter_index = ll_name_to_index(filter_dev);
+               if (!filter_index)
+                       return nodev(filter_dev);
        }
 
        if (show_details) {
index 8c08baf570ec2520179b9229ee24423a02d909ef..f38dc67c849a333c01a6b25c5e33c0144c629aad 100644 (file)
@@ -287,11 +287,8 @@ static int mdb_show(int argc, char **argv)
 
        if (filter_dev) {
                filter_index = ll_name_to_index(filter_dev);
-               if (filter_index == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n",
-                               filter_dev);
-                       return -1;
-               }
+               if (!filter_index)
+                       return nodev(filter_dev);
        }
 
        new_json_obj(json);
@@ -360,16 +357,12 @@ static int mdb_modify(int cmd, int flags, int argc, char **argv)
        }
 
        req.bpm.ifindex = ll_name_to_index(d);
-       if (req.bpm.ifindex == 0) {
-               fprintf(stderr, "Cannot find device \"%s\"\n", d);
-               return -1;
-       }
+       if (!req.bpm.ifindex)
+               return nodev(d);
 
        entry.ifindex = ll_name_to_index(p);
-       if (entry.ifindex == 0) {
-               fprintf(stderr, "Cannot find device \"%s\"\n", p);
-               return -1;
-       }
+       if (!entry.ifindex)
+               return nodev(p);
 
        if (!inet_pton(AF_INET, grp, &entry.addr.u.ip4)) {
                if (!inet_pton(AF_INET6, grp, &entry.addr.u.ip6)) {
index 9f4a7a2be55c4d81700993a8415fac46d221aa20..19a36b8040693849907e787ea53fb0e50f7cade5 100644 (file)
@@ -554,11 +554,8 @@ static int vlan_show(int argc, char **argv)
 
        if (filter_dev) {
                filter_index = ll_name_to_index(filter_dev);
-               if (filter_index == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n",
-                               filter_dev);
-                       return -1;
-               }
+               if (!filter_index)
+                       return nodev(filter_dev);
        }
 
        new_json_obj(json);
index 6bc77e74e51db1b94885611183b8c027a440b849..e4389ee41e6986b937bced88e0ee16ee10de6cd5 100644 (file)
@@ -182,6 +182,7 @@ void missarg(const char *) __attribute__((noreturn));
 void invarg(const char *, const char *) __attribute__((noreturn));
 void duparg(const char *, const char *) __attribute__((noreturn));
 void duparg2(const char *, const char *) __attribute__((noreturn));
+int nodev(const char *dev);
 int check_ifname(const char *);
 int get_ifname(char *, const char *);
 const char *get_ifname_rta(int ifindex, const struct rtattr *rta);
index c7fa08221d545bfb163482e957ec444c5555fef9..999408ed801b189619df2161b27af8686b5275e9 100644 (file)
@@ -296,10 +296,8 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
        }
        if (medium) {
                p->link = ll_name_to_index(medium);
-               if (p->link == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", medium);
-                       return -1;
-               }
+               if (!p->link)
+                       return nodev(medium);
        }
        return 0;
 }
index d01d7030b4420257dea1f05665578c0946d200d8..087fa68a8ab57f447565e3f90628922c917d308f 100644 (file)
@@ -2211,10 +2211,9 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
        if (!scoped && cmd != RTM_DELADDR)
                req.ifa.ifa_scope = default_scope(&lcl);
 
-       if ((req.ifa.ifa_index = ll_name_to_index(d)) == 0) {
-               fprintf(stderr, "Cannot find device \"%s\"\n", d);
-               return -1;
-       }
+       req.ifa.ifa_index = ll_name_to_index(d);
+       if (!req.ifa.ifa_index)
+               return nodev(d);
 
        if (valid_lftp || preferred_lftp) {
                struct ifa_cacheinfo cinfo = {};
index 74c377c8f2e46dd8de26e9e154335c91e942a013..5471626f6b9199dab2c5983759b027fdea7435ea 100644 (file)
@@ -981,10 +981,8 @@ static int iplink_modify(int cmd, unsigned int flags, int argc, char **argv)
                }
 
                req.i.ifi_index = ll_name_to_index(dev);
-               if (req.i.ifi_index == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", dev);
-                       return -1;
-               }
+               if (!req.i.ifi_index)
+                       return nodev(dev);
        } else {
                /* Allow "ip link add dev" and "ip link add name" */
                if (!name)
@@ -994,11 +992,8 @@ static int iplink_modify(int cmd, unsigned int flags, int argc, char **argv)
                        int ifindex;
 
                        ifindex = ll_name_to_index(link);
-                       if (ifindex == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       link);
-                               return -1;
-                       }
+                       if (!ifindex)
+                               return nodev(link);
                        addattr_l(&req.n, sizeof(req), IFLA_LINK, &ifindex, 4);
                }
 
index 8e8723a99fff5206c53ff35d6b843e76ff1ae24e..f906e7f1b323239f63162748dbc34b77ef44fbfd 100644 (file)
@@ -179,7 +179,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
                        NEXT_ARG();
                        ifindex = ll_name_to_index(*argv);
                        if (!ifindex)
-                               return -1;
+                               return nodev(*argv);
                        addattr32(n, 1024, IFLA_BOND_ACTIVE_SLAVE, ifindex);
                } else if (matches(*argv, "clear_active_slave") == 0) {
                        addattr32(n, 1024, IFLA_BOND_ACTIVE_SLAVE, 0);
@@ -242,7 +242,7 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv,
                        NEXT_ARG();
                        ifindex = ll_name_to_index(*argv);
                        if (!ifindex)
-                               return -1;
+                               return nodev(*argv);
                        addattr32(n, 1024, IFLA_BOND_PRIMARY, ifindex);
                } else if (matches(*argv, "primary_reselect") == 0) {
                        NEXT_ARG();
index 06ec092f1ae456fd7e8458821ed7a84fb3721cce..3008e44b7d72537913e4970fc8e9cbca3faf16c8 100644 (file)
@@ -793,11 +793,8 @@ int bridge_parse_xstats(struct link_util *lu, int argc, char **argv)
                } else if (strcmp(*argv, "dev") == 0) {
                        NEXT_ARG();
                        filter_index = ll_name_to_index(*argv);
-                       if (filter_index == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               return -1;
-                       }
+                       if (!filter_index)
+                               return nodev(*argv);
                } else if (strcmp(*argv, "help") == 0) {
                        bridge_print_xstats_help(lu, stdout);
                        exit(0);
index d768c07ee23c55e1035dc52a832df5c44c2481ea..be9f35e4d9c6bc1721c5d9654a8cf56956eba175 100644 (file)
@@ -133,11 +133,8 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
                        NEXT_ARG();
                        check_duparg(&attrs, IFLA_VXLAN_LINK, "dev", *argv);
                        link = ll_name_to_index(*argv);
-                       if (link == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               exit(-1);
-                       }
+                       if (!link)
+                               exit(nodev(*argv));
                        addattr32(n, 1024, IFLA_VXLAN_LINK, link);
                } else if (!matches(*argv, "ttl") ||
                           !matches(*argv, "hoplimit")) {
index aa5029b44f411de3960feb1cd6db94c5a5719be1..5c232e8a91ef4a91187c49534081ecbd1943af3d 100644 (file)
@@ -244,10 +244,9 @@ static int mroute_list(int argc, char **argv)
        if (id)  {
                int idx;
 
-               if ((idx = ll_name_to_index(id)) == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", id);
-                       return -1;
-               }
+               idx = ll_name_to_index(id);
+               if (!idx)
+                       return nodev(id);
                filter.iif = idx;
        }
 
index 925494dbe3249d0c6c4961ead9431dac554cf83a..4748381701e451eec9233050a36a1e6430ebabaa 100644 (file)
@@ -179,9 +179,10 @@ static int ipneigh_modify(int cmd, int flags, int argc, char **argv)
 
        ll_init_map(&rth);
 
-       if (dev && (req.ndm.ndm_ifindex = ll_name_to_index(dev)) == 0) {
-               fprintf(stderr, "Cannot find device \"%s\"\n", dev);
-               return -1;
+       if (dev) {
+               req.ndm.ndm_ifindex = ll_name_to_index(dev);
+               if (!req.ndm.ndm_ifindex)
+                       return nodev(dev);
        }
 
        if (rtnl_talk(&rth, &req.n, NULL) < 0)
@@ -467,10 +468,9 @@ static int do_show_or_flush(int argc, char **argv, int flush)
        ll_init_map(&rth);
 
        if (filter_dev) {
-               if ((filter.index = ll_name_to_index(filter_dev)) == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", filter_dev);
-                       return -1;
-               }
+               filter.index = ll_name_to_index(filter_dev);
+               if (!filter.index)
+                       return nodev(filter_dev);
                addattr32(&req.n, sizeof(req), NDA_IFINDEX, filter.index);
        }
 
index 92024864a7846ce0c7360d00a5d70618a3694883..82f40f87ae1528093befaebdedb91f329a91453d 100644 (file)
@@ -140,10 +140,8 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv)
 
                        NEXT_ARG();
                        ifindex = ll_name_to_index(*argv);
-                       if (ifindex == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", *argv);
-                               return -1;
-                       }
+                       if (!ifindex)
+                               return nodev(*argv);
 
                        rta_addattr32(parms_rta, sizeof(parms_buf),
                                      NDTPA_IFINDEX, ifindex);
index e4809a4383d9454dd4479d2e6e993ebdca097d29..1d8fd8154f0e2cd1d1244a46bb6167146c418b79 100644 (file)
@@ -973,10 +973,8 @@ static int parse_one_nh(struct nlmsghdr *n, struct rtmsg *r,
                } else if (strcmp(*argv, "dev") == 0) {
                        NEXT_ARG();
                        rtnh->rtnh_ifindex = ll_name_to_index(*argv);
-                       if (rtnh->rtnh_ifindex == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", *argv);
-                               return -1;
-                       }
+                       if (!rtnh->rtnh_ifindex)
+                               return nodev(*argv);
                } else if (strcmp(*argv, "weight") == 0) {
                        unsigned int w;
 
@@ -1474,10 +1472,8 @@ static int iproute_modify(int cmd, unsigned int flags, int argc, char **argv)
        if (d) {
                int idx = ll_name_to_index(d);
 
-               if (idx == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return -1;
-               }
+               if (!idx)
+                       return nodev(d);
                addattr32(&req.n, sizeof(req), RTA_OIF, idx);
        }
 
@@ -1866,19 +1862,15 @@ static int iproute_list_flush_or_save(int argc, char **argv, int action)
 
                if (id) {
                        idx = ll_name_to_index(id);
-                       if (idx == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", id);
-                               return -1;
-                       }
+                       if (!idx)
+                               return nodev(id);
                        filter.iif = idx;
                        filter.iifmask = -1;
                }
                if (od) {
                        idx = ll_name_to_index(od);
-                       if (idx == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", od);
-                               return -1;
-                       }
+                       if (!idx)
+                               return nodev(od);
                        filter.oif = idx;
                        filter.oifmask = -1;
                }
@@ -2028,18 +2020,14 @@ static int iproute_get(int argc, char **argv)
 
                if (idev) {
                        idx = ll_name_to_index(idev);
-                       if (idx == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", idev);
-                               return -1;
-                       }
+                       if (!idx)
+                               return nodev(idev);
                        addattr32(&req.n, sizeof(req), RTA_IIF, idx);
                }
                if (odev) {
                        idx = ll_name_to_index(odev);
-                       if (idx == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n", odev);
-                               return -1;
-                       }
+                       if (!idx)
+                               return nodev(odev);
                        addattr32(&req.n, sizeof(req), RTA_OIF, idx);
                }
        }
index fa3feaea74365fde71c6572ab1de09e5ceea760b..cde9b3d298ecbb96137826e6c172f3398f8f19ba 100644 (file)
@@ -594,7 +594,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp,
                                duparg2("iif", *argv);
                        iif = ll_name_to_index(*argv);
                        if (!iif)
-                               invarg("\"iif\" interface not found\n", *argv);
+                               exit(nodev(*argv));
                        rta_addattr32(rta, len, SEG6_LOCAL_IIF, iif);
                } else if (strcmp(*argv, "oif") == 0) {
                        NEXT_ARG();
@@ -602,7 +602,7 @@ static int parse_encap_seg6local(struct rtattr *rta, size_t len, int *argcp,
                                duparg2("oif", *argv);
                        oif = ll_name_to_index(*argv);
                        if (!oif)
-                               invarg("\"oif\" interface not found\n", *argv);
+                               exit(nodev(*argv));
                        rta_addattr32(rta, len, SEG6_LOCAL_OIF, oif);
                } else if (strcmp(*argv, "srh") == 0) {
                        NEXT_ARG();
index 1f04f95aec4ed447dd92eea157d48ba7f08ce7c3..d597908fa209e63bb7928ab87fac2640fdd6e199 100644 (file)
@@ -213,10 +213,8 @@ static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
 
        if (medium) {
                p->link = ll_name_to_index(medium);
-               if (p->link == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", medium);
-                       return -1;
-               }
+               if (!p->link)
+                       return nodev(medium);
        }
 
        if (p->i_key == 0 && IN_MULTICAST(ntohl(p->iph.daddr))) {
index 64588d7525b89f83c24a27b6bf06ec496e525167..bc1cee8fbca2ab0c811c99c431fbc753bec7d52d 100644 (file)
@@ -245,11 +245,8 @@ get_failed:
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               exit(-1);
-                       }
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (!matches(*argv, "ttl") ||
                           !matches(*argv, "hoplimit") ||
                           !matches(*argv, "hlim")) {
index e0746bc3cd5127fd62d808dac259636c24d4f430..a6fe0b73d2354b5deadf34684dc288b2a0b9120c 100644 (file)
@@ -251,11 +251,8 @@ get_failed:
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               exit(-1);
-                       }
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (!matches(*argv, "ttl") ||
                           !matches(*argv, "hoplimit") ||
                           !matches(*argv, "hlim")) {
index 77a909005f69b31ae286c8711492c45e54d96351..c7fef2e0366010e18fd09032cd8c43c138d7f51d 100644 (file)
@@ -197,8 +197,8 @@ get_failed:
                } else if (matches(*argv, "dev") == 0) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0)
-                               invarg("\"dev\" is invalid", *argv);
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (strcmp(*argv, "ttl") == 0 ||
                           strcmp(*argv, "hoplimit") == 0 ||
                           strcmp(*argv, "hlim") == 0) {
index acd9f45b40b4163129418695effc2519cd453b19..57f4d0c7a8731b073551ccffd633441e6be4c464 100644 (file)
@@ -225,8 +225,8 @@ get_failed:
                } else if (matches(*argv, "dev") == 0) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0)
-                               invarg("\"dev\" is invalid", *argv);
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (strcmp(*argv, "ttl") == 0 ||
                           strcmp(*argv, "hoplimit") == 0 ||
                           strcmp(*argv, "hlim") == 0) {
index 99e10e8a0acd7dcba257cb841a0cdbcfbb329782..6196a1c9e2f37a1da34d2ae5408d53ad929884b2 100644 (file)
@@ -142,11 +142,8 @@ get_failed:
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               exit(-1);
-                       }
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (strcmp(*argv, "fwmark") == 0) {
                        NEXT_ARG();
                        if (get_u32(&fwmark, *argv, 0))
index 1df6579bff103aeb57681c38e6b98dec8f6225e9..4263615b2aecfaf3a3370441deeb0e6a6a93e8e1 100644 (file)
@@ -144,11 +144,8 @@ get_failed:
                } else if (!matches(*argv, "dev")) {
                        NEXT_ARG();
                        link = ll_name_to_index(*argv);
-                       if (link == 0) {
-                               fprintf(stderr, "Cannot find device \"%s\"\n",
-                                       *argv);
-                               exit(-1);
-                       }
+                       if (!link)
+                               exit(nodev(*argv));
                } else if (strcmp(*argv, "fwmark") == 0) {
                        NEXT_ARG();
                        if (get_u32(&fwmark, *argv, 0))
index 24aeddd8e2f1eb97dc16934f002fa9f42318781d..2b8e4e8eb959562b8f95c354cebb0a649587d42e 100644 (file)
@@ -845,6 +845,12 @@ void duparg2(const char *key, const char *arg)
        exit(-1);
 }
 
+int nodev(const char *dev)
+{
+       fprintf(stderr, "Cannot find device \"%s\"\n", dev);
+       return -1;
+}
+
 int check_ifname(const char *name)
 {
        /* These checks mimic kernel checks in dev_valid_name */
index eb42b7c13bec75bab75469f2efd7081ee1ad8ebe..b25b9acc0735e872b42e65013e8fba23874f3fdb 100644 (file)
@@ -193,10 +193,8 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p,
                ll_init_map(&rth);
 
                idx = ll_name_to_index(d);
-               if (idx == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return -1;
-               }
+               if (!idx)
+                       return nodev(d);
 
                p.ifindex = idx;
        }
index 1b214b82c702baa1eb781ad9fa8b10e0cca40442..e1ca29cfa9a4305bf0422ccaf5c1de0a6916b670 100644 (file)
@@ -142,10 +142,9 @@ static int tc_class_modify(int cmd, unsigned int flags, int argc, char **argv)
        if (d[0])  {
                ll_init_map(&rth);
 
-               if ((req.t.tcm_ifindex = ll_name_to_index(d)) == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               req.t.tcm_ifindex = ll_name_to_index(d);
+               if (!req.t.tcm_ifindex)
+                       return -nodev(d);
        }
 
        if (rtnl_talk(&rth, &req.n, NULL) < 0)
@@ -440,10 +439,9 @@ static int tc_class_list(int argc, char **argv)
        ll_init_map(&rth);
 
        if (d[0]) {
-               if ((t.tcm_ifindex = ll_name_to_index(d)) == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               t.tcm_ifindex = ll_name_to_index(d);
+               if (!t.tcm_ifindex)
+                       return -nodev(d);
                filter_ifindex = t.tcm_ifindex;
        }
 
index c7701fd8956ec9736c972fb04856676c2fa349a6..c5bb0bffe19b2df23eaef3ec152533528ed74fae 100644 (file)
@@ -198,10 +198,8 @@ static int tc_filter_modify(int cmd, unsigned int flags, int argc, char **argv,
                ll_init_map(&rth);
 
                req->t.tcm_ifindex = ll_name_to_index(d);
-               if (req->t.tcm_ifindex == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               if (!req->t.tcm_ifindex)
+                       return -nodev(d);
        } else if (block_index) {
                req->t.tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK;
                req->t.tcm_block_index = block_index;
@@ -529,10 +527,8 @@ static int tc_filter_get(int cmd, unsigned int flags, int argc, char **argv)
                ll_init_map(&rth);
 
                req.t.tcm_ifindex = ll_name_to_index(d);
-               if (req.t.tcm_ifindex  == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               if (!req.t.tcm_ifindex)
+                       return -nodev(d);
                filter_ifindex = req.t.tcm_ifindex;
        } else if (block_index) {
                req.t.tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK;
@@ -695,10 +691,8 @@ static int tc_filter_list(int argc, char **argv)
 
        if (d[0]) {
                req.t.tcm_ifindex = ll_name_to_index(d);
-               if (req.t.tcm_ifindex == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               if (!req.t.tcm_ifindex)
+                       return -nodev(d);
                filter_ifindex = req.t.tcm_ifindex;
        } else if (block_index) {
                if (!tc_qdisc_block_exists(block_index)) {
index 78b80e67cf57fe1dac6e282f99100fd524d93082..c1d2df0171a75077a9d7981ca4ecbea6e881e83a 100644 (file)
@@ -199,10 +199,8 @@ static int tc_qdisc_modify(int cmd, unsigned int flags, int argc, char **argv)
                ll_init_map(&rth);
 
                idx = ll_name_to_index(d);
-               if (idx == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               if (!idx)
+                       return -nodev(d);
                req.t.tcm_ifindex = idx;
        }
 
@@ -378,10 +376,8 @@ static int tc_qdisc_list(int argc, char **argv)
 
        if (d[0]) {
                t.tcm_ifindex = ll_name_to_index(d);
-               if (t.tcm_ifindex == 0) {
-                       fprintf(stderr, "Cannot find device \"%s\"\n", d);
-                       return 1;
-               }
+               if (!t.tcm_ifindex)
+                       return -nodev(d);
                filter_ifindex = t.tcm_ifindex;
        }