diff options
Diffstat (limited to 'networking/ifplugd.c')
-rw-r--r-- | networking/ifplugd.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/networking/ifplugd.c b/networking/ifplugd.c index 1426709cb..fa18edd57 100644 --- a/networking/ifplugd.c +++ b/networking/ifplugd.c | |||
@@ -365,7 +365,7 @@ static void up_iface(void) | |||
365 | if (!(ifrequest.ifr_flags & IFF_UP)) { | 365 | if (!(ifrequest.ifr_flags & IFF_UP)) { |
366 | ifrequest.ifr_flags |= IFF_UP; | 366 | ifrequest.ifr_flags |= IFF_UP; |
367 | /* Let user know we mess up with interface */ | 367 | /* Let user know we mess up with interface */ |
368 | bb_info_msg("upping interface"); | 368 | bb_simple_info_msg("upping interface"); |
369 | if (network_ioctl(SIOCSIFFLAGS, &ifrequest, "setting interface flags") < 0) { | 369 | if (network_ioctl(SIOCSIFFLAGS, &ifrequest, "setting interface flags") < 0) { |
370 | if (errno != ENODEV && errno != EADDRNOTAVAIL) | 370 | if (errno != ENODEV && errno != EADDRNOTAVAIL) |
371 | xfunc_die(); | 371 | xfunc_die(); |
@@ -461,7 +461,7 @@ static smallint detect_link(void) | |||
461 | else if (option_mask32 & FLAG_IGNORE_FAIL_POSITIVE) | 461 | else if (option_mask32 & FLAG_IGNORE_FAIL_POSITIVE) |
462 | status = IFSTATUS_UP; | 462 | status = IFSTATUS_UP; |
463 | else if (G.api_mode[0] == 'a') | 463 | else if (G.api_mode[0] == 'a') |
464 | bb_error_msg("can't detect link status"); | 464 | bb_simple_error_msg("can't detect link status"); |
465 | } | 465 | } |
466 | 466 | ||
467 | if (status != G.iface_last_status) { | 467 | if (status != G.iface_last_status) { |
@@ -493,14 +493,14 @@ static NOINLINE int check_existence_through_netlink(void) | |||
493 | goto ret; | 493 | goto ret; |
494 | if (errno == EINTR) | 494 | if (errno == EINTR) |
495 | continue; | 495 | continue; |
496 | bb_perror_msg("netlink: recv"); | 496 | bb_simple_perror_msg("netlink: recv"); |
497 | return -1; | 497 | return -1; |
498 | } | 498 | } |
499 | 499 | ||
500 | mhdr = (struct nlmsghdr*)replybuf; | 500 | mhdr = (struct nlmsghdr*)replybuf; |
501 | while (bytes > 0) { | 501 | while (bytes > 0) { |
502 | if (!NLMSG_OK(mhdr, bytes)) { | 502 | if (!NLMSG_OK(mhdr, bytes)) { |
503 | bb_error_msg("netlink packet too small or truncated"); | 503 | bb_simple_error_msg("netlink packet too small or truncated"); |
504 | return -1; | 504 | return -1; |
505 | } | 505 | } |
506 | 506 | ||
@@ -509,7 +509,7 @@ static NOINLINE int check_existence_through_netlink(void) | |||
509 | int attr_len; | 509 | int attr_len; |
510 | 510 | ||
511 | if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct ifinfomsg))) { | 511 | if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct ifinfomsg))) { |
512 | bb_error_msg("netlink packet too small or truncated"); | 512 | bb_simple_error_msg("netlink packet too small or truncated"); |
513 | return -1; | 513 | return -1; |
514 | } | 514 | } |
515 | 515 | ||
@@ -591,7 +591,7 @@ int ifplugd_main(int argc UNUSED_PARAM, char **argv) | |||
591 | } | 591 | } |
592 | 592 | ||
593 | if (pid_from_pidfile > 0 && kill(pid_from_pidfile, 0) == 0) | 593 | if (pid_from_pidfile > 0 && kill(pid_from_pidfile, 0) == 0) |
594 | bb_error_msg_and_die("daemon already running"); | 594 | bb_simple_error_msg_and_die("daemon already running"); |
595 | #endif | 595 | #endif |
596 | 596 | ||
597 | api_mode_found = strchr(api_modes, G.api_mode[0]); | 597 | api_mode_found = strchr(api_modes, G.api_mode[0]); |
@@ -604,15 +604,7 @@ int ifplugd_main(int argc UNUSED_PARAM, char **argv) | |||
604 | 604 | ||
605 | xmove_fd(xsocket(AF_INET, SOCK_DGRAM, 0), ioctl_fd); | 605 | xmove_fd(xsocket(AF_INET, SOCK_DGRAM, 0), ioctl_fd); |
606 | if (opts & FLAG_MONITOR) { | 606 | if (opts & FLAG_MONITOR) { |
607 | struct sockaddr_nl addr; | 607 | int fd = create_and_bind_to_netlink(NETLINK_ROUTE, RTMGRP_LINK, 0); |
608 | int fd = xsocket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE); | ||
609 | |||
610 | memset(&addr, 0, sizeof(addr)); | ||
611 | addr.nl_family = AF_NETLINK; | ||
612 | addr.nl_groups = RTMGRP_LINK; | ||
613 | addr.nl_pid = getpid(); | ||
614 | |||
615 | xbind(fd, (struct sockaddr*)&addr, sizeof(addr)); | ||
616 | xmove_fd(fd, netlink_fd); | 608 | xmove_fd(fd, netlink_fd); |
617 | } | 609 | } |
618 | 610 | ||
@@ -698,7 +690,7 @@ int ifplugd_main(int argc UNUSED_PARAM, char **argv) | |||
698 | ) { | 690 | ) { |
699 | if (errno == EINTR) | 691 | if (errno == EINTR) |
700 | continue; | 692 | continue; |
701 | bb_perror_msg("poll"); | 693 | bb_simple_perror_msg("poll"); |
702 | goto exiting; | 694 | goto exiting; |
703 | } | 695 | } |
704 | 696 | ||
@@ -771,5 +763,5 @@ int ifplugd_main(int argc UNUSED_PARAM, char **argv) | |||
771 | 763 | ||
772 | exiting: | 764 | exiting: |
773 | remove_pidfile(pidfile_name); | 765 | remove_pidfile(pidfile_name); |
774 | bb_error_msg_and_die("exiting"); | 766 | bb_simple_error_msg_and_die("exiting"); |
775 | } | 767 | } |