.name = "unspec",
.title = "UNSPEC",
.af = AF_UNSPEC,
- .alen = 0,
+ .alen = 0,
.print = UNSPEC_print,
.sprint = UNSPEC_sprint,
};
/* Extract <name> from nul-terminated p where p matches
<name>: after leading whitespace.
If match is not made, set name empty and return unchanged p */
- int namestart=0, nameend=0;
+ int namestart = 0, nameend = 0;
+
while (isspace(p[namestart]))
namestart++;
- nameend=namestart;
- while (p[nameend] && p[nameend]!=':' && !isspace(p[nameend]))
+ nameend = namestart;
+ while (p[nameend] && p[nameend] != ':' && !isspace(p[nameend]))
nameend++;
- if (p[nameend]==':') {
- if ((nameend-namestart)<IFNAMSIZ) {
- memcpy(name,&p[namestart],nameend-namestart);
- name[nameend-namestart]='\0';
- p=&p[nameend];
+ if (p[nameend] == ':') {
+ if ((nameend - namestart) < IFNAMSIZ) {
+ memcpy(name, &p[namestart], nameend - namestart);
+ name[nameend - namestart] = '\0';
+ p = &p[nameend];
} else {
/* Interface name too large */
- name[0]='\0';
+ name[0] = '\0';
}
} else {
/* trailing ':' not found - return empty */
- name[0]='\0';
+ name[0] = '\0';
}
return p + 1;
}
ifc.ifc_len = sizeof(struct ifreq) * numreqs;
ifc.ifc_buf = xrealloc(ifc.ifc_buf, ifc.ifc_len);
- if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0) {
- bb_perror_msg("SIOCGIFCONF");
+ if (ioctl_or_warn(skfd, SIOCGIFCONF, &ifc) < 0) {
goto out;
}
if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) {
.type = ARPHRD_SIT,
.print = UNSPEC_print,
.suppress_null_addr = 1
-} ;
+};
#endif
static const struct hwtype *const hwtypes[] = {
return 1;
}
-static const char TRext[] = "\0\0\0Ki\0Mi\0Gi\0Ti";
+static const char TRext[] ALIGN1 = "\0\0\0Ki\0Mi\0Gi\0Ti";
static void print_bytes_scaled(unsigned long long ull, const char *end)
{
printf("X bytes:%llu (%llu.%u %sB)%s", ull, int_part, frac_part, ext, end);
}
-static const char *const ife_print_flags_strs[] = {
- "UP ",
- "BROADCAST ",
- "DEBUG ",
- "LOOPBACK ",
- "POINTOPOINT ",
- "NOTRAILERS ",
- "RUNNING ",
- "NOARP ",
- "PROMISC ",
- "ALLMULTI ",
- "SLAVE ",
- "MASTER ",
- "MULTICAST ",
-#ifdef HAVE_DYNAMIC
- "DYNAMIC "
-#endif
-};
-
-static const unsigned short ife_print_flags_mask[] = {
- IFF_UP,
- IFF_BROADCAST,
- IFF_DEBUG,
- IFF_LOOPBACK,
- IFF_POINTOPOINT,
- IFF_NOTRAILERS,
- IFF_RUNNING,
- IFF_NOARP,
- IFF_PROMISC,
- IFF_ALLMULTI,
- IFF_SLAVE,
- IFF_MASTER,
- IFF_MULTICAST,
-#ifdef HAVE_DYNAMIC
- IFF_DYNAMIC
-#endif
- 0
-};
-
static void ife_print(struct interface *ptr)
{
const struct aftype *ap;
printf("(auto)");
}
#endif
- puts("");
+ bb_putchar('\n');
if (ptr->has_ip) {
printf(" %s addr:%s ", ap->name,
f = fopen(_PATH_PROCNET_IFINET6, "r");
if (f != NULL) {
while (fscanf
- (f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
+ (f, "%4s%4s%4s%4s%4s%4s%4s%4s %08x %02x %02x %02x %20s\n",
addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4],
addr6p[5], addr6p[6], addr6p[7], &if_idx, &plen, &scope,
&dad_status, devname) != EOF
if (ptr->flags == 0) {
printf("[NO FLAGS] ");
} else {
- int i = 0;
+ static const char ife_print_flags_strs[] ALIGN1 =
+ "UP\0"
+ "BROADCAST\0"
+ "DEBUG\0"
+ "LOOPBACK\0"
+ "POINTOPOINT\0"
+ "NOTRAILERS\0"
+ "RUNNING\0"
+ "NOARP\0"
+ "PROMISC\0"
+ "ALLMULTI\0"
+ "SLAVE\0"
+ "MASTER\0"
+ "MULTICAST\0"
+#ifdef HAVE_DYNAMIC
+ "DYNAMIC\0"
+#endif
+ ;
+ static const unsigned short ife_print_flags_mask[] ALIGN2 = {
+ IFF_UP,
+ IFF_BROADCAST,
+ IFF_DEBUG,
+ IFF_LOOPBACK,
+ IFF_POINTOPOINT,
+ IFF_NOTRAILERS,
+ IFF_RUNNING,
+ IFF_NOARP,
+ IFF_PROMISC,
+ IFF_ALLMULTI,
+ IFF_SLAVE,
+ IFF_MASTER,
+ IFF_MULTICAST
+#ifdef HAVE_DYNAMIC
+ ,IFF_DYNAMIC
+#endif
+ };
+ const unsigned short *mask = ife_print_flags_mask;
+ const char *str = ife_print_flags_strs;
do {
- if (ptr->flags & ife_print_flags_mask[i]) {
- printf(ife_print_flags_strs[i]);
+ if (ptr->flags & *mask) {
+ printf("%s ", str);
}
- } while (ife_print_flags_mask[++i]);
+ mask++;
+ str += strlen(str) + 1;
+ } while (*str);
}
/* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
if (ptr->outfill || ptr->keepalive)
printf(" Outfill:%d Keepalive:%d", ptr->outfill, ptr->keepalive);
#endif
- puts("");
+ bb_putchar('\n');
/* If needed, display the interface statistics. */
}
if (ptr->map.dma)
printf("DMA chan:%x ", ptr->map.dma);
- puts("");
+ bb_putchar('\n');
}
- puts("");
+ bb_putchar('\n');
}