iplink: shrink
function old new delta do_change 490 487 -3 ipaddr_list_link 18 - -18 do_iplink 1169 1113 -56 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/2 up/down: 0/-77) Total: -77 bytes Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
This commit is contained in:
parent
6faebfa663
commit
d148e484db
@ -186,56 +186,48 @@ static int do_set(char **argv)
|
||||
if (key == ARG_up) {
|
||||
mask |= IFF_UP;
|
||||
flags |= IFF_UP;
|
||||
}
|
||||
if (key == ARG_down) {
|
||||
} else if (key == ARG_down) {
|
||||
mask |= IFF_UP;
|
||||
flags &= ~IFF_UP;
|
||||
}
|
||||
if (key == ARG_name) {
|
||||
} else if (key == ARG_name) {
|
||||
NEXT_ARG();
|
||||
newname = *argv;
|
||||
}
|
||||
if (key == ARG_mtu) {
|
||||
} else if (key == ARG_mtu) {
|
||||
NEXT_ARG();
|
||||
if (mtu != -1)
|
||||
duparg("mtu", *argv);
|
||||
mtu = get_unsigned(*argv, "mtu");
|
||||
}
|
||||
if (key == ARG_multicast) {
|
||||
int param;
|
||||
NEXT_ARG();
|
||||
mask |= IFF_MULTICAST;
|
||||
param = index_in_strings(str_on_off, *argv);
|
||||
if (param < 0)
|
||||
die_must_be_on_off("multicast");
|
||||
if (param == PARM_on)
|
||||
flags |= IFF_MULTICAST;
|
||||
else
|
||||
flags &= ~IFF_MULTICAST;
|
||||
}
|
||||
if (key == ARG_arp) {
|
||||
int param;
|
||||
NEXT_ARG();
|
||||
mask |= IFF_NOARP;
|
||||
param = index_in_strings(str_on_off, *argv);
|
||||
if (param < 0)
|
||||
die_must_be_on_off("arp");
|
||||
if (param == PARM_on)
|
||||
flags &= ~IFF_NOARP;
|
||||
else
|
||||
flags |= IFF_NOARP;
|
||||
}
|
||||
if (key == ARG_addr) {
|
||||
} else if (key == ARG_addr) {
|
||||
NEXT_ARG();
|
||||
newaddr = *argv;
|
||||
}
|
||||
if (key >= ARG_dev) {
|
||||
} else if (key >= ARG_dev) {
|
||||
if (key == ARG_dev) {
|
||||
NEXT_ARG();
|
||||
}
|
||||
if (dev)
|
||||
duparg2("dev", *argv);
|
||||
dev = *argv;
|
||||
} else {
|
||||
int param;
|
||||
NEXT_ARG();
|
||||
param = index_in_strings(str_on_off, *argv);
|
||||
if (key == ARG_multicast) {
|
||||
if (param < 0)
|
||||
die_must_be_on_off("multicast");
|
||||
mask |= IFF_MULTICAST;
|
||||
if (param == PARM_on)
|
||||
flags |= IFF_MULTICAST;
|
||||
else
|
||||
flags &= ~IFF_MULTICAST;
|
||||
} else if (key == ARG_arp) {
|
||||
if (param < 0)
|
||||
die_must_be_on_off("arp");
|
||||
mask |= IFF_NOARP;
|
||||
if (param == PARM_on)
|
||||
flags &= ~IFF_NOARP;
|
||||
else
|
||||
flags |= IFF_NOARP;
|
||||
}
|
||||
}
|
||||
argv++;
|
||||
}
|
||||
@ -248,9 +240,11 @@ static int do_set(char **argv)
|
||||
halen = get_address(dev, &htype);
|
||||
if (newaddr) {
|
||||
parse_address(dev, htype, halen, newaddr, &ifr0);
|
||||
set_address(&ifr0, 0);
|
||||
}
|
||||
if (newbrd) {
|
||||
parse_address(dev, htype, halen, newbrd, &ifr1);
|
||||
set_address(&ifr1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -264,14 +258,6 @@ static int do_set(char **argv)
|
||||
if (mtu != -1) {
|
||||
set_mtu(dev, mtu);
|
||||
}
|
||||
if (newaddr || newbrd) {
|
||||
if (newbrd) {
|
||||
set_address(&ifr1, 1);
|
||||
}
|
||||
if (newaddr) {
|
||||
set_address(&ifr0, 0);
|
||||
}
|
||||
}
|
||||
if (mask)
|
||||
do_chflags(dev, flags, mask);
|
||||
return 0;
|
||||
@ -304,7 +290,7 @@ static int do_change(char **argv, const unsigned rtm)
|
||||
struct ifinfomsg i;
|
||||
char buf[1024];
|
||||
} req;
|
||||
int arg;
|
||||
smalluint arg;
|
||||
char *name_str = NULL, *link_str = NULL, *type_str = NULL, *dev_str = NULL;
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
@ -375,17 +361,16 @@ int do_iplink(char **argv)
|
||||
{
|
||||
static const char keywords[] ALIGN1 =
|
||||
"add\0""delete\0""set\0""show\0""lst\0""list\0";
|
||||
int key;
|
||||
if (!*argv)
|
||||
return ipaddr_list_link(argv);
|
||||
key = index_in_substrings(keywords, *argv);
|
||||
if (key < 0)
|
||||
if (*argv) {
|
||||
smalluint key = index_in_substrings(keywords, *argv);
|
||||
if (key > 5) /* invalid argument */
|
||||
bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
|
||||
argv++;
|
||||
if (key <= 1) /* add/delete */
|
||||
return do_change(argv, key ? RTM_DELLINK : RTM_NEWLINK);
|
||||
else if (key == 2) /* set */
|
||||
return do_set(argv);
|
||||
}
|
||||
/* show, lst, list */
|
||||
return ipaddr_list_link(argv);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user