aboutsummaryrefslogtreecommitdiff
path: root/networking/interface.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-12-02 18:18:50 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-12-02 18:18:50 +0000
commit360d9661b6a33b0358104623058f1c3629a469ea (patch)
tree268954b686b38c96428e3b74fc1ebb2ebdfdfb32 /networking/interface.c
parent928b2c0fee65cae10f683ee0f1ea8d0a29a54924 (diff)
downloadbusybox-w32-360d9661b6a33b0358104623058f1c3629a469ea.tar.gz
busybox-w32-360d9661b6a33b0358104623058f1c3629a469ea.tar.bz2
busybox-w32-360d9661b6a33b0358104623058f1c3629a469ea.zip
libbb: add strncpy_IFNAMSIZ
function old new delta ... udhcp_read_interface 225 220 -5 brctl_main 1151 1146 -5 add_interface 109 104 -5 ipaddr_list_or_flush 2174 2167 -7 do_add_ioctl 88 80 -8 vconfig_main 249 240 -9 do_del_ioctl 78 68 -10 do_iplink 1186 1173 -13 do_if_fetch 766 753 -13 buffer_fill_and_print 196 179 -17 parse_args 1709 1684 -25 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/20 up/down: 11/-140) Total: -129 bytes
Diffstat (limited to 'networking/interface.c')
-rw-r--r--networking/interface.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/networking/interface.c b/networking/interface.c
index 00174d496..ef187be1a 100644
--- a/networking/interface.c
+++ b/networking/interface.c
@@ -395,7 +395,7 @@ static struct interface *add_interface(char *name)
395 } 395 }
396 396
397 new = xzalloc(sizeof(*new)); 397 new = xzalloc(sizeof(*new));
398 strncpy(new->name, name, IFNAMSIZ); 398 strncpy_IFNAMSIZ(new->name, name);
399 nextp = ife ? &ife->next : &int_list; 399 nextp = ife ? &ife->next : &int_list;
400 new->prev = ife; 400 new->prev = ife;
401 new->next = *nextp; 401 new->next = *nextp;
@@ -614,39 +614,39 @@ static int if_fetch(struct interface *ife)
614 614
615 skfd = xsocket(AF_INET, SOCK_DGRAM, 0); 615 skfd = xsocket(AF_INET, SOCK_DGRAM, 0);
616 616
617 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 617 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
618 if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) { 618 if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
619 close(skfd); 619 close(skfd);
620 return -1; 620 return -1;
621 } 621 }
622 ife->flags = ifr.ifr_flags; 622 ife->flags = ifr.ifr_flags;
623 623
624 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 624 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
625 memset(ife->hwaddr, 0, 32); 625 memset(ife->hwaddr, 0, 32);
626 if (ioctl(skfd, SIOCGIFHWADDR, &ifr) >= 0) 626 if (ioctl(skfd, SIOCGIFHWADDR, &ifr) >= 0)
627 memcpy(ife->hwaddr, ifr.ifr_hwaddr.sa_data, 8); 627 memcpy(ife->hwaddr, ifr.ifr_hwaddr.sa_data, 8);
628 628
629 ife->type = ifr.ifr_hwaddr.sa_family; 629 ife->type = ifr.ifr_hwaddr.sa_family;
630 630
631 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 631 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
632 ife->metric = 0; 632 ife->metric = 0;
633 if (ioctl(skfd, SIOCGIFMETRIC, &ifr) >= 0) 633 if (ioctl(skfd, SIOCGIFMETRIC, &ifr) >= 0)
634 ife->metric = ifr.ifr_metric; 634 ife->metric = ifr.ifr_metric;
635 635
636 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 636 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
637 ife->mtu = 0; 637 ife->mtu = 0;
638 if (ioctl(skfd, SIOCGIFMTU, &ifr) >= 0) 638 if (ioctl(skfd, SIOCGIFMTU, &ifr) >= 0)
639 ife->mtu = ifr.ifr_mtu; 639 ife->mtu = ifr.ifr_mtu;
640 640
641 memset(&ife->map, 0, sizeof(struct ifmap)); 641 memset(&ife->map, 0, sizeof(struct ifmap));
642#ifdef SIOCGIFMAP 642#ifdef SIOCGIFMAP
643 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 643 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
644 if (ioctl(skfd, SIOCGIFMAP, &ifr) == 0) 644 if (ioctl(skfd, SIOCGIFMAP, &ifr) == 0)
645 ife->map = ifr.ifr_map; 645 ife->map = ifr.ifr_map;
646#endif 646#endif
647 647
648#ifdef HAVE_TXQUEUELEN 648#ifdef HAVE_TXQUEUELEN
649 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 649 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
650 ife->tx_queue_len = -1; /* unknown value */ 650 ife->tx_queue_len = -1; /* unknown value */
651 if (ioctl(skfd, SIOCGIFTXQLEN, &ifr) >= 0) 651 if (ioctl(skfd, SIOCGIFTXQLEN, &ifr) >= 0)
652 ife->tx_queue_len = ifr.ifr_qlen; 652 ife->tx_queue_len = ifr.ifr_qlen;
@@ -654,23 +654,23 @@ static int if_fetch(struct interface *ife)
654 ife->tx_queue_len = -1; /* unknown value */ 654 ife->tx_queue_len = -1; /* unknown value */
655#endif 655#endif
656 656
657 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 657 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
658 ifr.ifr_addr.sa_family = AF_INET; 658 ifr.ifr_addr.sa_family = AF_INET;
659 memset(&ife->addr, 0, sizeof(struct sockaddr)); 659 memset(&ife->addr, 0, sizeof(struct sockaddr));
660 if (ioctl(skfd, SIOCGIFADDR, &ifr) == 0) { 660 if (ioctl(skfd, SIOCGIFADDR, &ifr) == 0) {
661 ife->has_ip = 1; 661 ife->has_ip = 1;
662 ife->addr = ifr.ifr_addr; 662 ife->addr = ifr.ifr_addr;
663 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 663 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
664 memset(&ife->dstaddr, 0, sizeof(struct sockaddr)); 664 memset(&ife->dstaddr, 0, sizeof(struct sockaddr));
665 if (ioctl(skfd, SIOCGIFDSTADDR, &ifr) >= 0) 665 if (ioctl(skfd, SIOCGIFDSTADDR, &ifr) >= 0)
666 ife->dstaddr = ifr.ifr_dstaddr; 666 ife->dstaddr = ifr.ifr_dstaddr;
667 667
668 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 668 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
669 memset(&ife->broadaddr, 0, sizeof(struct sockaddr)); 669 memset(&ife->broadaddr, 0, sizeof(struct sockaddr));
670 if (ioctl(skfd, SIOCGIFBRDADDR, &ifr) >= 0) 670 if (ioctl(skfd, SIOCGIFBRDADDR, &ifr) >= 0)
671 ife->broadaddr = ifr.ifr_broadaddr; 671 ife->broadaddr = ifr.ifr_broadaddr;
672 672
673 strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); 673 strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
674 memset(&ife->netmask, 0, sizeof(struct sockaddr)); 674 memset(&ife->netmask, 0, sizeof(struct sockaddr));
675 if (ioctl(skfd, SIOCGIFNETMASK, &ifr) >= 0) 675 if (ioctl(skfd, SIOCGIFNETMASK, &ifr) >= 0)
676 ife->netmask = ifr.ifr_netmask; 676 ife->netmask = ifr.ifr_netmask;