ether-wake: save a few more bytes of code
This commit is contained in:
parent
198714c0dd
commit
517d1aac7f
@ -182,11 +182,10 @@ int ether_wake_main(int argc, char **argv);
|
|||||||
int ether_wake_main(int argc, char **argv)
|
int ether_wake_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
const char *ifname = "eth0";
|
const char *ifname = "eth0";
|
||||||
char *pass = NULL;
|
char *pass;
|
||||||
unsigned flags;
|
unsigned flags;
|
||||||
unsigned char wol_passwd[6];
|
unsigned char wol_passwd[6];
|
||||||
int wol_passwd_sz = 0;
|
int wol_passwd_sz = 0;
|
||||||
|
|
||||||
int s; /* Raw socket */
|
int s; /* Raw socket */
|
||||||
int pktsize;
|
int pktsize;
|
||||||
unsigned char outpack[1000];
|
unsigned char outpack[1000];
|
||||||
@ -195,23 +194,23 @@ int ether_wake_main(int argc, char **argv)
|
|||||||
struct whereto_t whereto; /* who to wake up */
|
struct whereto_t whereto; /* who to wake up */
|
||||||
|
|
||||||
/* handle misc user options */
|
/* handle misc user options */
|
||||||
|
opt_complementary = "=1";
|
||||||
flags = getopt32(argc, argv, "bi:p:", &ifname, &pass);
|
flags = getopt32(argc, argv, "bi:p:", &ifname, &pass);
|
||||||
if (optind == argc)
|
if (flags & 4) /* -p */
|
||||||
bb_show_usage();
|
|
||||||
if (pass)
|
|
||||||
wol_passwd_sz = get_wol_pw(pass, wol_passwd);
|
wol_passwd_sz = get_wol_pw(pass, wol_passwd);
|
||||||
|
flags &= 1; /* we further interested only in -b [bcast] flag */
|
||||||
|
|
||||||
/* create the raw socket */
|
/* create the raw socket */
|
||||||
s = make_socket();
|
s = make_socket();
|
||||||
|
|
||||||
/* now that we have a raw socket we can drop root */
|
/* now that we have a raw socket we can drop root */
|
||||||
xsetuid(getuid());
|
/* xsetuid(getuid()); - but save on code size... */
|
||||||
|
|
||||||
/* look up the dest mac address */
|
/* look up the dest mac address */
|
||||||
get_dest_addr(argv[optind], &eaddr);
|
get_dest_addr(argv[optind], &eaddr);
|
||||||
|
|
||||||
/* fill out the header of the packet */
|
/* fill out the header of the packet */
|
||||||
pktsize = get_fill(outpack, &eaddr, flags & 1 /* OPT_BROADCAST */);
|
pktsize = get_fill(outpack, &eaddr, flags /* & 1 OPT_BROADCAST */);
|
||||||
|
|
||||||
bb_debug_dump_packet(outpack, pktsize);
|
bb_debug_dump_packet(outpack, pktsize);
|
||||||
|
|
||||||
@ -249,7 +248,7 @@ int ether_wake_main(int argc, char **argv)
|
|||||||
bb_debug_dump_packet(outpack, pktsize);
|
bb_debug_dump_packet(outpack, pktsize);
|
||||||
|
|
||||||
/* This is necessary for broadcasts to work */
|
/* This is necessary for broadcasts to work */
|
||||||
if (flags & 1 /* OPT_BROADCAST */) {
|
if (flags /* & 1 OPT_BROADCAST */) {
|
||||||
if (setsockopt_broadcast(s) != 0)
|
if (setsockopt_broadcast(s) != 0)
|
||||||
bb_perror_msg("SO_BROADCAST");
|
bb_perror_msg("SO_BROADCAST");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user