{
unsigned m_flag = 0;
if (tb[IFLA_LINK]) {
- SPRINT_BUF(b1);
int iflink = *(int*)RTA_DATA(tb[IFLA_LINK]);
if (iflink == 0)
printf("@NONE: ");
else {
- printf("@%s: ", ll_idx_n2a(iflink, b1));
+ printf("@%s: ", ll_index_to_name(iflink));
m_flag = ll_index_to_flags(iflink);
m_flag = !(m_flag & IFF_UP);
}
printf("qdisc %s ", (char*)RTA_DATA(tb[IFLA_QDISC]));
#ifdef IFLA_MASTER
if (tb[IFLA_MASTER]) {
- SPRINT_BUF(b1);
- printf("master %s ", ll_idx_n2a(*(int*)RTA_DATA(tb[IFLA_MASTER]), b1));
+ printf("master %s ", ll_index_to_name(*(int*)RTA_DATA(tb[IFLA_MASTER])));
}
#endif
/* IFLA_OPERSTATE was added to kernel with the same commit as IFF_DORMANT */
int len = n->nlmsg_len;
struct rtattr * rta_tb[IFA_MAX+1];
char abuf[256];
- SPRINT_BUF(b1);
if (n->nlmsg_type != RTM_NEWADDR && n->nlmsg_type != RTM_DELADDR)
return 0;
if (rta_tb[IFA_LABEL])
label = RTA_DATA(rta_tb[IFA_LABEL]);
else
- label = ll_idx_n2a(ifa->ifa_index, b1);
+ label = ll_index_to_name(ifa->ifa_index);
if (fnmatch(G_filter.label, label, 0) != 0)
return 0;
}
abuf, sizeof(abuf))
);
}
- printf("scope %s ", rtnl_rtscope_n2a(ifa->ifa_scope, b1));
+ printf("scope %s ", rtnl_rtscope_n2a(ifa->ifa_scope));
if (ifa->ifa_flags & IFA_F_SECONDARY) {
ifa->ifa_flags &= ~IFA_F_SECONDARY;
printf("secondary ");
continue;
}
if (G_filter.label) {
- SPRINT_BUF(b1);
const char *label;
if (tb[IFA_LABEL])
label = RTA_DATA(tb[IFA_LABEL]);
else
- label = ll_idx_n2a(ifa->ifa_index, b1);
+ label = ll_index_to_name(ifa->ifa_index);
if (fnmatch(G_filter.label, label, 0) != 0)
continue;
}
inet_prefix dst;
inet_prefix src;
int host_len = -1;
- SPRINT_BUF(b1);
if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) {
fprintf(stderr, "Not a route: %08x %08x %08x\n",
printf("Deleted ");
}
if (r->rtm_type != RTN_UNICAST /* && !G_filter.type - always 0 */) {
- printf("%s ", rtnl_rtntype_n2a(r->rtm_type, b1));
+ printf("%s ", rtnl_rtntype_n2a(r->rtm_type));
}
if (tb[RTA_DST]) {
int host_len = -1;
struct rtattr * tb[RTA_MAX+1];
char abuf[256];
- SPRINT_BUF(b1);
if (n->nlmsg_type != RTM_NEWRULE)
return 0;
}
if (r->rtm_tos) {
- printf("tos %s ", rtnl_dsfield_n2a(r->rtm_tos, b1));
+ printf("tos %s ", rtnl_dsfield_n2a(r->rtm_tos));
}
if (tb[RTA_PROTOINFO]) {
printf("fwmark %#x ", *(uint32_t*)RTA_DATA(tb[RTA_PROTOINFO]));
}
if (r->rtm_table)
- printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table, b1));
+ printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table));
if (tb[RTA_FLOW]) {
uint32_t to = *(uint32_t*)RTA_DATA(tb[RTA_FLOW]);
to &= 0xFFFF;
if (from) {
printf("realms %s/",
- rtnl_rtrealm_n2a(from, b1));
+ rtnl_rtrealm_n2a(from));
}
printf("%s ",
- rtnl_rtrealm_n2a(to, b1));
+ rtnl_rtrealm_n2a(to));
}
if (r->rtm_type == RTN_NAT) {
} else
printf("masquerade");
} else if (r->rtm_type != RTN_UNICAST)
- fputs(rtnl_rtntype_n2a(r->rtm_type, b1), stdout);
+ fputs(rtnl_rtntype_n2a(r->rtm_type), stdout);
bb_putchar('\n');
/*fflush_all();*/
else
printf(" ttl inherit ");
if (p->iph.tos) {
- SPRINT_BUF(b1);
printf(" tos");
if (p->iph.tos & 1)
printf(" inherit");
if (p->iph.tos & ~1)
printf("%c%s ", p->iph.tos & 1 ? '/' : ' ',
- rtnl_dsfield_n2a(p->iph.tos & ~1, b1));
+ rtnl_dsfield_n2a(p->iph.tos & ~1));
}
if (!(p->iph.frag_off & htons(IP_DF)))
printf(" nopmtudisc");
return buf;
}
-
const char FAST_FUNC *ll_index_to_name(int idx)
{
static char nbuf[16];
rtnl_tab_initialize("/etc/iproute2/rt_protos", rtnl_rtprot_tab->tab);
}
-const char* FAST_FUNC rtnl_rtprot_n2a(int id, char *buf)
+#if 0 /* UNUSED */
+const char* FAST_FUNC rtnl_rtprot_n2a(int id)
{
if (id < 0 || id >= 256) {
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
rtnl_rtprot_initialize();
if (rtnl_rtprot_tab->tab[id])
return rtnl_rtprot_tab->tab[id];
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
+#endif
int FAST_FUNC rtnl_rtprot_a2n(uint32_t *id, char *arg)
{
rtnl_tab_initialize("/etc/iproute2/rt_scopes", rtnl_rtscope_tab->tab);
}
-const char* FAST_FUNC rtnl_rtscope_n2a(int id, char *buf)
+const char* FAST_FUNC rtnl_rtscope_n2a(int id)
{
if (id < 0 || id >= 256) {
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
rtnl_rtscope_initialize();
if (rtnl_rtscope_tab->tab[id])
return rtnl_rtscope_tab->tab[id];
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
int FAST_FUNC rtnl_rtscope_a2n(uint32_t *id, char *arg)
}
#if ENABLE_FEATURE_IP_RULE
-const char* FAST_FUNC rtnl_rtrealm_n2a(int id, char *buf)
+const char* FAST_FUNC rtnl_rtrealm_n2a(int id)
{
if (id < 0 || id >= 256) {
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
rtnl_rtrealm_initialize();
if (rtnl_rtrealm_tab->tab[id])
return rtnl_rtrealm_tab->tab[id];
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
#endif
rtnl_tab_initialize("/etc/iproute2/rt_dsfield", rtnl_rtdsfield_tab->tab);
}
-const char* FAST_FUNC rtnl_dsfield_n2a(int id, char *buf)
+const char* FAST_FUNC rtnl_dsfield_n2a(int id)
{
if (id < 0 || id >= 256) {
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
rtnl_rtdsfield_initialize();
if (rtnl_rtdsfield_tab->tab[id])
return rtnl_rtdsfield_tab->tab[id];
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "0x%02x", id);
- return buf;
+ return itoa(id);
}
int FAST_FUNC rtnl_dsfield_a2n(uint32_t *id, char *arg)
rtnl_tab_initialize("/etc/iproute2/rt_tables", rtnl_rttable_tab->tab);
}
-const char* FAST_FUNC rtnl_rttable_n2a(int id, char *buf)
+const char* FAST_FUNC rtnl_rttable_n2a(int id)
{
if (id < 0 || id >= 256) {
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
rtnl_rttable_initialize();
if (rtnl_rttable_tab->tab[id])
return rtnl_rttable_tab->tab[id];
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
int FAST_FUNC rtnl_rttable_a2n(uint32_t *id, char *arg)
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
-/* buf is SPRINT_BSIZE big */
-extern const char* rtnl_rtprot_n2a(int id, char *buf) FAST_FUNC;
-extern const char* rtnl_rtscope_n2a(int id, char *buf) FAST_FUNC;
-extern const char* rtnl_rtrealm_n2a(int id, char *buf) FAST_FUNC;
-extern const char* rtnl_dsfield_n2a(int id, char *buf) FAST_FUNC;
-extern const char* rtnl_rttable_n2a(int id, char *buf) FAST_FUNC;
+extern const char* rtnl_rtprot_n2a(int id) FAST_FUNC;
+extern const char* rtnl_rtscope_n2a(int id) FAST_FUNC;
+extern const char* rtnl_rtrealm_n2a(int id) FAST_FUNC;
+extern const char* rtnl_dsfield_n2a(int id) FAST_FUNC;
+extern const char* rtnl_rttable_n2a(int id) FAST_FUNC;
extern int rtnl_rtprot_a2n(uint32_t *id, char *arg) FAST_FUNC;
extern int rtnl_rtscope_a2n(uint32_t *id, char *arg) FAST_FUNC;
extern int rtnl_rtrealm_a2n(uint32_t *id, char *arg) FAST_FUNC;
#include "rt_names.h"
#include "utils.h"
-const char* FAST_FUNC rtnl_rtntype_n2a(int id, char *buf)
+const char* FAST_FUNC rtnl_rtntype_n2a(int id)
{
switch (id) {
case RTN_UNSPEC:
case RTN_XRESOLVE:
return "xresolve";
default:
- /* buf is SPRINT_BSIZE big */
- sprintf(buf, "%d", id);
- return buf;
+ return itoa(id);
}
}
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
-const char *rtnl_rtntype_n2a(int id, char *buf) FAST_FUNC;
+const char *rtnl_rtntype_n2a(int id) FAST_FUNC;
int rtnl_rtntype_a2n(int *id, char *arg) FAST_FUNC;
int get_rt_realms(uint32_t *realms, char *arg) FAST_FUNC;