aboutsummaryrefslogtreecommitdiff
path: root/networking/libiproute/iplink.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-07-14 22:07:14 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-07-14 22:07:14 +0000
commitfb79a2e2cfe33002398f1898c26d8e4f341db006 (patch)
treef5b3ee27db5bc8c9b181fbec171f8fa430a75ba5 /networking/libiproute/iplink.c
parentfcfaf2e18aba06dd90b16958ecfbfcfbf59ceb02 (diff)
downloadbusybox-w32-fb79a2e2cfe33002398f1898c26d8e4f341db006.tar.gz
busybox-w32-fb79a2e2cfe33002398f1898c26d8e4f341db006.tar.bz2
busybox-w32-fb79a2e2cfe33002398f1898c26d8e4f341db006.zip
xioctl and friends by Tito <farmatito@tiscali.it>
function old new delta do_iptunnel 203 977 +774 process_dev 5328 5494 +166 ioctl_or_perror - 54 +54 ioctl_or_perror_and_die - 51 +51 ioctl_alt_func - 49 +49 bb_ioctl_or_warn - 47 +47 do_add_ioctl 102 145 +43 bb_xioctl - 39 +39 print_value_on_off - 31 +31 get_lcm 105 123 +18 arp_main 2155 2167 +12 .................. zcip_main 1576 1566 -10 setlogcons_main 92 82 -10 dumpkmap_main 263 253 -10 do_get_ioctl 85 75 -10 setkeycodes_main 165 154 -11 write_table 244 232 -12 vconfig_main 318 306 -12 do_del_ioctl 93 81 -12 set_address 75 62 -13 maybe_set_utc 30 16 -14 loadfont_main 495 479 -16 slattach_main 712 695 -17 do_loadfont 191 174 -17 do_iplink 1155 1136 -19 getty_main 2583 2562 -21 fbset_main 2058 2035 -23 do_time 588 565 -23 xioctl 25 - -25 read_rtc 186 160 -26 parse_conf 1299 1270 -29 udhcp_read_interface 269 239 -30 bb_ioctl 45 - -45 bb_ioctl_alt 70 - -70 bb_ioctl_on_off 78 - -78 .rodata 129370 129018 -352 do_show 799 - -799 ------------------------------------------------------------------------------ (add/remove: 6/5 grow/shrink: 13/49 up/down: 1316/-1864) Total: -548 bytes text data bss dec hex filename 675352 2740 13968 692060 a8f5c busybox_old 674804 2740 13968 691512 a8d38 busybox_unstripped
Diffstat (limited to 'networking/libiproute/iplink.c')
-rw-r--r--networking/libiproute/iplink.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c
index 7db4d7e15..3d3ea2a23 100644
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -49,14 +49,11 @@ static void do_chflags(char *dev, uint32_t flags, uint32_t mask)
49 49
50 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); 50 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
51 fd = get_ctl_fd(); 51 fd = get_ctl_fd();
52 if (ioctl(fd, SIOCGIFFLAGS, &ifr)) { 52 xioctl(fd, SIOCGIFFLAGS, &ifr);
53 bb_perror_msg_and_die("SIOCGIFFLAGS");
54 }
55 if ((ifr.ifr_flags ^ flags) & mask) { 53 if ((ifr.ifr_flags ^ flags) & mask) {
56 ifr.ifr_flags &= ~mask; 54 ifr.ifr_flags &= ~mask;
57 ifr.ifr_flags |= mask & flags; 55 ifr.ifr_flags |= mask & flags;
58 if (ioctl(fd, SIOCSIFFLAGS, &ifr)) 56 xioctl(fd, SIOCSIFFLAGS, &ifr);
59 bb_perror_msg_and_die("SIOCSIFFLAGS");
60 } 57 }
61 close(fd); 58 close(fd);
62} 59}
@@ -66,15 +63,11 @@ static void do_changename(char *dev, char *newdev)
66{ 63{
67 struct ifreq ifr; 64 struct ifreq ifr;
68 int fd; 65 int fd;
69 int err;
70 66
71 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); 67 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
72 strncpy(ifr.ifr_newname, newdev, sizeof(ifr.ifr_newname)); 68 strncpy(ifr.ifr_newname, newdev, sizeof(ifr.ifr_newname));
73 fd = get_ctl_fd(); 69 fd = get_ctl_fd();
74 err = ioctl(fd, SIOCSIFNAME, &ifr); 70 xioctl(fd, SIOCSIFNAME, &ifr);
75 if (err) {
76 bb_perror_msg_and_die("SIOCSIFNAME");
77 }
78 close(fd); 71 close(fd);
79} 72}
80 73
@@ -88,9 +81,7 @@ static void set_qlen(char *dev, int qlen)
88 memset(&ifr, 0, sizeof(ifr)); 81 memset(&ifr, 0, sizeof(ifr));
89 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); 82 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
90 ifr.ifr_qlen = qlen; 83 ifr.ifr_qlen = qlen;
91 if (ioctl(s, SIOCSIFTXQLEN, &ifr) < 0) { 84 xioctl(s, SIOCSIFTXQLEN, &ifr);
92 bb_perror_msg_and_die("SIOCSIFXQLEN");
93 }
94 close(s); 85 close(s);
95} 86}
96 87
@@ -104,9 +95,7 @@ static void set_mtu(char *dev, int mtu)
104 memset(&ifr, 0, sizeof(ifr)); 95 memset(&ifr, 0, sizeof(ifr));
105 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); 96 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
106 ifr.ifr_mtu = mtu; 97 ifr.ifr_mtu = mtu;
107 if (ioctl(s, SIOCSIFMTU, &ifr) < 0) { 98 xioctl(s, SIOCSIFMTU, &ifr);
108 bb_perror_msg_and_die("SIOCSIFMTU");
109 }
110 close(s); 99 close(s);
111} 100}
112 101
@@ -122,9 +111,7 @@ static int get_address(char *dev, int *htype)
122 111
123 memset(&ifr, 0, sizeof(ifr)); 112 memset(&ifr, 0, sizeof(ifr));
124 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name)); 113 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
125 if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) { 114 xioctl(s, SIOCGIFINDEX, &ifr);
126 bb_perror_msg_and_die("SIOCGIFINDEX");
127 }
128 115
129 memset(&me, 0, sizeof(me)); 116 memset(&me, 0, sizeof(me));
130 me.sll_family = AF_PACKET; 117 me.sll_family = AF_PACKET;
@@ -163,9 +150,10 @@ static void set_address(struct ifreq *ifr, int brd)
163 int s; 150 int s;
164 151
165 s = get_ctl_fd(); 152 s = get_ctl_fd();
166 if (ioctl(s, brd ? SIOCSIFHWBROADCAST :SIOCSIFHWADDR, ifr) < 0) { 153 if (brd)
167 bb_perror_msg_and_die(brd ? "SIOCSIFHWBROADCAST" : "SIOCSIFHWADDR"); 154 xioctl(s, SIOCSIFHWBROADCAST, ifr);
168 } 155 else
156 xioctl(s, SIOCSIFHWADDR, ifr);
169 close(s); 157 close(s);
170} 158}
171 159