41 |
struct ifreq ifr; |
struct ifreq ifr; |
42 |
int fd; |
int fd; |
43 |
|
|
44 |
strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); |
strncpy_IFNAMSIZ(ifr.ifr_name, dev); |
45 |
fd = get_ctl_fd(); |
fd = get_ctl_fd(); |
46 |
xioctl(fd, SIOCGIFFLAGS, &ifr); |
xioctl(fd, SIOCGIFFLAGS, &ifr); |
47 |
if ((ifr.ifr_flags ^ flags) & mask) { |
if ((ifr.ifr_flags ^ flags) & mask) { |
58 |
struct ifreq ifr; |
struct ifreq ifr; |
59 |
int fd; |
int fd; |
60 |
|
|
61 |
strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); |
strncpy_IFNAMSIZ(ifr.ifr_name, dev); |
62 |
strncpy(ifr.ifr_newname, newdev, sizeof(ifr.ifr_newname)); |
strncpy_IFNAMSIZ(ifr.ifr_newname, newdev); |
63 |
fd = get_ctl_fd(); |
fd = get_ctl_fd(); |
64 |
xioctl(fd, SIOCSIFNAME, &ifr); |
xioctl(fd, SIOCSIFNAME, &ifr); |
65 |
close(fd); |
close(fd); |
73 |
|
|
74 |
s = get_ctl_fd(); |
s = get_ctl_fd(); |
75 |
memset(&ifr, 0, sizeof(ifr)); |
memset(&ifr, 0, sizeof(ifr)); |
76 |
strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); |
strncpy_IFNAMSIZ(ifr.ifr_name, dev); |
77 |
ifr.ifr_qlen = qlen; |
ifr.ifr_qlen = qlen; |
78 |
xioctl(s, SIOCSIFTXQLEN, &ifr); |
xioctl(s, SIOCSIFTXQLEN, &ifr); |
79 |
close(s); |
close(s); |
87 |
|
|
88 |
s = get_ctl_fd(); |
s = get_ctl_fd(); |
89 |
memset(&ifr, 0, sizeof(ifr)); |
memset(&ifr, 0, sizeof(ifr)); |
90 |
strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); |
strncpy_IFNAMSIZ(ifr.ifr_name, dev); |
91 |
ifr.ifr_mtu = mtu; |
ifr.ifr_mtu = mtu; |
92 |
xioctl(s, SIOCSIFMTU, &ifr); |
xioctl(s, SIOCSIFMTU, &ifr); |
93 |
close(s); |
close(s); |
104 |
s = xsocket(PF_PACKET, SOCK_DGRAM, 0); |
s = xsocket(PF_PACKET, SOCK_DGRAM, 0); |
105 |
|
|
106 |
memset(&ifr, 0, sizeof(ifr)); |
memset(&ifr, 0, sizeof(ifr)); |
107 |
strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); |
strncpy_IFNAMSIZ(ifr.ifr_name, dev); |
108 |
xioctl(s, SIOCGIFINDEX, &ifr); |
xioctl(s, SIOCGIFINDEX, &ifr); |
109 |
|
|
110 |
memset(&me, 0, sizeof(me)); |
memset(&me, 0, sizeof(me)); |
112 |
me.sll_ifindex = ifr.ifr_ifindex; |
me.sll_ifindex = ifr.ifr_ifindex; |
113 |
me.sll_protocol = htons(ETH_P_LOOP); |
me.sll_protocol = htons(ETH_P_LOOP); |
114 |
xbind(s, (struct sockaddr*)&me, sizeof(me)); |
xbind(s, (struct sockaddr*)&me, sizeof(me)); |
|
|
|
115 |
alen = sizeof(me); |
alen = sizeof(me); |
116 |
if (getsockname(s, (struct sockaddr*)&me, &alen) == -1) { |
getsockname(s, (struct sockaddr*)&me, &alen); |
117 |
bb_perror_msg_and_die("getsockname"); |
//never happens: |
118 |
} |
//if (getsockname(s, (struct sockaddr*)&me, &alen) == -1) |
119 |
|
// bb_perror_msg_and_die("getsockname"); |
120 |
close(s); |
close(s); |
121 |
*htype = me.sll_hatype; |
*htype = me.sll_hatype; |
122 |
return me.sll_halen; |
return me.sll_halen; |
128 |
int alen; |
int alen; |
129 |
|
|
130 |
memset(ifr, 0, sizeof(*ifr)); |
memset(ifr, 0, sizeof(*ifr)); |
131 |
strncpy(ifr->ifr_name, dev, sizeof(ifr->ifr_name)); |
strncpy_IFNAMSIZ(ifr->ifr_name, dev); |
132 |
ifr->ifr_hwaddr.sa_family = hatype; |
ifr->ifr_hwaddr.sa_family = hatype; |
133 |
|
|
134 |
alen = hatype == 1/*ARPHRD_ETHER*/ ? 14/*ETH_HLEN*/ : 19/*INFINIBAND_HLEN*/; |
alen = hatype == 1/*ARPHRD_ETHER*/ ? 14/*ETH_HLEN*/ : 19/*INFINIBAND_HLEN*/; |
202 |
NEXT_ARG(); |
NEXT_ARG(); |
203 |
if (mtu != -1) |
if (mtu != -1) |
204 |
duparg("mtu", *argv); |
duparg("mtu", *argv); |
205 |
if (get_integer(&mtu, *argv, 0)) |
mtu = get_unsigned(*argv, "mtu"); |
|
invarg(*argv, "mtu"); |
|
206 |
} |
} |
207 |
if (key == ARG_multicast) { |
if (key == ARG_multicast) { |
208 |
int param; |
int param; |