ifenslave: small shrink
text data bss dec hex filename 809731 624 7060 817415 c7907 busybox_old 809629 624 7060 817313 c78a1 busybox_unstripped
This commit is contained in:
		@@ -261,9 +261,7 @@ static void change_active(char *master_ifname, char *slave_ifname)
 | 
			
		||||
	struct ifreq ifr;
 | 
			
		||||
 | 
			
		||||
	if (!(slave.flags.ifr_flags & IFF_SLAVE)) {
 | 
			
		||||
		bb_error_msg_and_die(
 | 
			
		||||
			"%s is not a slave",
 | 
			
		||||
			slave_ifname);
 | 
			
		||||
		bb_error_msg_and_die("%s is not a slave", slave_ifname);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	strncpy_IFNAMSIZ(ifr.ifr_slave, slave_ifname);
 | 
			
		||||
@@ -402,8 +400,7 @@ static int release(char *master_ifname, char *slave_ifname)
 | 
			
		||||
	int res = 0;
 | 
			
		||||
 | 
			
		||||
	if (!(slave.flags.ifr_flags & IFF_SLAVE)) {
 | 
			
		||||
		bb_error_msg("%s is not a slave",
 | 
			
		||||
			slave_ifname);
 | 
			
		||||
		bb_error_msg("%s is not a slave", slave_ifname);
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -462,18 +459,19 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
	};
 | 
			
		||||
#if ENABLE_GETOPT_LONG
 | 
			
		||||
	static const char ifenslave_longopts[] ALIGN1 =
 | 
			
		||||
		"change-active\0" No_argument "c"
 | 
			
		||||
		"detach\0"        No_argument "d"
 | 
			
		||||
		"force\0"         No_argument "f"
 | 
			
		||||
		"change-active\0"  No_argument "c"
 | 
			
		||||
		"detach\0"         No_argument "d"
 | 
			
		||||
		"force\0"          No_argument "f"
 | 
			
		||||
		/* "all-interfaces\0" No_argument "a" */
 | 
			
		||||
		;
 | 
			
		||||
 | 
			
		||||
	applet_long_options = ifenslave_longopts;
 | 
			
		||||
#endif
 | 
			
		||||
	INIT_G();
 | 
			
		||||
 | 
			
		||||
	opt = getopt32(argv, "cdf");
 | 
			
		||||
	opt = getopt32(argv, "cdfa");
 | 
			
		||||
	argv += optind;
 | 
			
		||||
	if (opt & (opt-1)) /* options check */
 | 
			
		||||
	if (opt & (opt-1)) /* Only one option can be given */
 | 
			
		||||
		bb_show_usage();
 | 
			
		||||
 | 
			
		||||
	master_ifname = *argv++;
 | 
			
		||||
@@ -505,25 +503,25 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
		return EXIT_SUCCESS;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	res = get_if_settings(master_ifname, &master);
 | 
			
		||||
	if (res) {
 | 
			
		||||
	if (get_if_settings(master_ifname, &master)) {
 | 
			
		||||
		/* Probably a good reason not to go on */
 | 
			
		||||
		bb_perror_msg_and_die("%s: can't get settings", master_ifname);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* check if master is indeed a master;
 | 
			
		||||
	/* Check if master is indeed a master;
 | 
			
		||||
	 * if not then fail any operation
 | 
			
		||||
	 */
 | 
			
		||||
	if (!(master.flags.ifr_flags & IFF_MASTER))
 | 
			
		||||
		bb_error_msg_and_die("%s is not a master", master_ifname);
 | 
			
		||||
 | 
			
		||||
	/* check if master is up; if not then fail any operation */
 | 
			
		||||
	/* Check if master is up; if not then fail any operation */
 | 
			
		||||
	if (!(master.flags.ifr_flags & IFF_UP))
 | 
			
		||||
		bb_error_msg_and_die("%s is not up", master_ifname);
 | 
			
		||||
 | 
			
		||||
	/* No opts: neither -c[hange] nor -d[etach] -> it's "enslave" then;
 | 
			
		||||
	 * and -f[orce] is not there too */
 | 
			
		||||
	if (!opt) {
 | 
			
		||||
#ifdef WHY_BOTHER
 | 
			
		||||
	/* Neither -c[hange] nor -d[etach] -> it's "enslave" then;
 | 
			
		||||
	 * and -f[orce] is not there too. Check that it's ethernet. */
 | 
			
		||||
	if (!(opt & (OPT_d|OPT_c|OPT_f)) {
 | 
			
		||||
		/* The family '1' is ARPHRD_ETHER for ethernet. */
 | 
			
		||||
		if (master.hwaddr.ifr_hwaddr.sa_family != 1) {
 | 
			
		||||
			bb_error_msg_and_die(
 | 
			
		||||
@@ -531,10 +529,11 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
				master_ifname);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Accepts only one slave */
 | 
			
		||||
	if (opt & OPT_c) {
 | 
			
		||||
		/* change active slave */
 | 
			
		||||
		/* Change active slave */
 | 
			
		||||
		if (get_slave_flags(slave_ifname)) {
 | 
			
		||||
			bb_perror_msg_and_die(
 | 
			
		||||
				"%s: can't get flags", slave_ifname);
 | 
			
		||||
@@ -543,11 +542,11 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
		return EXIT_SUCCESS;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Accept multiple slaves */
 | 
			
		||||
	/* Accepts multiple slaves */
 | 
			
		||||
	res = 0;
 | 
			
		||||
	do {
 | 
			
		||||
		if (opt & OPT_d) {
 | 
			
		||||
			/* detach a slave interface from the master */
 | 
			
		||||
			/* Detach a slave interface from the master */
 | 
			
		||||
			rv = get_slave_flags(slave_ifname);
 | 
			
		||||
			if (rv) {
 | 
			
		||||
				/* Can't work with this slave, */
 | 
			
		||||
@@ -560,14 +559,12 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
			rv = release(master_ifname, slave_ifname);
 | 
			
		||||
			if (rv) {
 | 
			
		||||
				bb_perror_msg(
 | 
			
		||||
					"master %s, slave %s: "
 | 
			
		||||
					"can't release",
 | 
			
		||||
					master_ifname, slave_ifname);
 | 
			
		||||
				bb_perror_msg("can't release %s from %s",
 | 
			
		||||
					slave_ifname, master_ifname);
 | 
			
		||||
				res = rv;
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			/* attach a slave interface to the master */
 | 
			
		||||
			/* Attach a slave interface to the master */
 | 
			
		||||
			rv = get_if_settings(slave_ifname, &slave);
 | 
			
		||||
			if (rv) {
 | 
			
		||||
				/* Can't work with this slave, */
 | 
			
		||||
@@ -580,10 +577,8 @@ int ifenslave_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
			rv = enslave(master_ifname, slave_ifname);
 | 
			
		||||
			if (rv) {
 | 
			
		||||
				bb_perror_msg(
 | 
			
		||||
					"master %s, slave %s: "
 | 
			
		||||
					"can't enslave",
 | 
			
		||||
					master_ifname, slave_ifname);
 | 
			
		||||
				bb_perror_msg("can't enslave %s to %s",
 | 
			
		||||
					slave_ifname, master_ifname);
 | 
			
		||||
				res = rv;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user