static int cfg;
static int s;
-static int count = -1;
-static int timeout;
+static unsigned count = UINT_MAX;
+static unsigned timeout;
static int sent;
static int brd_sent;
static int received;
xsetuid(getuid());
{
- unsigned long opt;
+ unsigned opt;
char *_count, *_timeout;
/* Dad also sets quit_on_reply.
* Advert also sets unsolicited.
*/
- bb_opt_complementally = "Df:AU";
- opt = bb_getopt_ulflags(argc, argv, "DUAqfbc:w:i:s:",
+ opt_complementary = "Df:AU";
+ opt = getopt32(argc, argv, "DUAqfbc:w:i:s:",
&_count, &_timeout, &device, &source);
cfg |= opt & 0x3f; /* set respective flags */
if (opt & 0x40) /* -c: count */
- count = atoi(_count);
+ count = xatou(_count);
if (opt & 0x80) /* -w: timeout */
- timeout = atoi(_timeout);
+ timeout = xatoul_range(_timeout, 0, INT_MAX/2000);
if (opt & 0x100) { /* -i: interface */
if (strlen(device) > IF_NAMESIZE) {
bb_error_msg_and_die("interface name '%s' is too long",
target = *argv;
- bb_default_error_retval = 2;
+ xfunc_error_retval = 2;
{
struct ifreq ifr;
}
}
if (me.sll_halen == 0) {
- bb_error_msg("Interface \"%s\" is not ARPable (no ll address)", device);
+ bb_error_msg("interface \"%s\" is not ARPable (no ll address)", device);
exit(cfg&dad ? 0 : 2);
}
he = me;