* also needs to check whether they're present in the packet buffer.
*/
const char *
-getname(const u_char *ap)
+getname(netdissect_options *ndo, const u_char *ap)
{
register struct hostent *hp;
u_int32_t addr;
* given, f_netmask and f_localnet are 0 and the test
* evaluates to true)
*/
- if (!nflag &&
+ if (!ndo->ndo_nflag &&
(addr & f_netmask) == f_localnet) {
hp = gethostbyaddr((char *)&addr, 4, AF_INET);
if (hp) {
* is assumed to be in network byte order.
*/
const char *
-getname6(const u_char *ap)
+getname6(netdissect_options *ndo, const u_char *ap)
{
register struct hostent *hp;
union {
/*
* Do not print names if -n was given.
*/
- if (!nflag) {
+ if (!ndo->ndo_nflag) {
hp = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET6);
if (hp) {
char *dotp;
}
const char *
-etheraddr_string(register const u_char *ep)
+etheraddr_string(netdissect_options *ndo, register const u_char *ep)
{
register int i;
register char *cp;
if (tp->e_name)
return (tp->e_name);
#ifdef USE_ETHER_NTOHOST
- if (!nflag) {
+ if (!ndo->ndo_nflag) {
char buf2[BUFSIZE];
/*
*cp++ = hex[*ep++ & 0xf];
}
- if (!nflag) {
+ if (!ndo->ndo_nflag) {
snprintf(cp, BUFSIZE - (2 + 5*3), " (oui %s)",
tok2str(oui_values, "Unknown", oui));
} else
}
const char *
-linkaddr_string(const u_char *ep, const unsigned int type, const unsigned int len)
+linkaddr_string(netdissect_options *ndo, const u_char *ep, const unsigned int type, const unsigned int len)
{
register u_int i;
register char *cp;
return ("<empty>");
if (type == LINKADDR_ETHER && len == ETHER_ADDR_LEN)
- return (etheraddr_string(ep));
+ return (etheraddr_string(ndo, ep));
if (type == LINKADDR_FRELAY)
return (q922_string(ep));
}
static void
-init_servarray(void)
+init_servarray(netdissect_options *ndo)
{
struct servent *sv;
register struct hnamemem *table;
while (table->name)
table = table->nxt;
- if (nflag) {
+ if (ndo->ndo_nflag) {
(void)snprintf(buf, sizeof(buf), "%d", port);
table->name = strdup(buf);
} else
* of the local network. mask is its subnet mask.
*/
void
-init_addrtoname(u_int32_t localnet, u_int32_t mask)
+init_addrtoname(netdissect_options *ndo, u_int32_t localnet, u_int32_t mask)
{
if (fflag) {
f_localnet = localnet;
f_netmask = mask;
}
- if (nflag)
+ if (ndo->ndo_nflag)
/*
* Simplest way to suppress names.
*/
return;
init_etherarray();
- init_servarray();
+ init_servarray(ndo);
init_eprotoarray();
init_protoidarray();
init_ipxsaparray();
}
const char *
-dnaddr_string(u_short dnaddr)
+dnaddr_string(netdissect_options *ndo, u_short dnaddr)
{
register struct hnamemem *tp;
tp->addr = dnaddr;
tp->nxt = newhnamemem();
- if (nflag)
+ if (ndo->ndo_nflag)
tp->name = dnnum_string(dnaddr);
else
tp->name = dnname_string(dnaddr);
#define BUFSIZE 128
-extern const char *linkaddr_string(const u_char *, const unsigned int, const unsigned int);
-extern const char *etheraddr_string(const u_char *);
+extern const char *linkaddr_string(netdissect_options *, const u_char *, const unsigned int, const unsigned int);
+extern const char *etheraddr_string(netdissect_options *, const u_char *);
extern const char *le64addr_string(const u_char *);
extern const char *etherproto_string(u_short);
extern const char *tcpport_string(u_short);
extern const char *udpport_string(u_short);
extern const char *isonsap_string(const u_char *, register u_int);
+extern const char *dnaddr_string(netdissect_options *, u_short);
extern const char *protoid_string(const u_char *);
extern const char *ipxsap_string(u_short);
-extern const char *getname(const u_char *);
+extern const char *getname(netdissect_options *, const u_char *);
#ifdef INET6
-extern const char *getname6(const u_char *);
+extern const char *getname6(netdissect_options *, const u_char *);
#endif
extern const char *intoa(u_int32_t);
-extern void init_addrtoname(u_int32_t, u_int32_t);
+extern void init_addrtoname(netdissect_options *, u_int32_t, u_int32_t);
extern struct hnamemem *newhnamemem(void);
#ifdef INET6
extern struct h6namemem *newh6namemem(void);
#endif
-#define ipaddr_string(p) getname((const u_char *)(p))
+#define ipaddr_string(ndo, p) getname(ndo, (const u_char *)(p))
#ifdef INET6
-#define ip6addr_string(p) getname6((const u_char *)(p))
+#define ip6addr_string(ndo, p) getname6(ndo, (const u_char *)(p))
#endif
extern const char *tok2strary_internal(const char **, int, const char *, int);
#define tok2strary(a,f,i) tok2strary_internal(a, sizeof(a)/sizeof(a[0]),f,i)
-extern const char *dnaddr_string(u_short);
-
extern void error(const char *, ...)
__attribute__((noreturn))
#ifdef __ATTRIBUTE___FORMAT_OK
ret = parse_elements(ndo, &pbody, p, offset, length);
PRINT_SSID(pbody);
- ND_PRINT((ndo, " AP : %s", etheraddr_string( pbody.ap )));
+ ND_PRINT((ndo, " AP : %s", etheraddr_string(ndo, pbody.ap )));
return ret;
}
if (ndo->ndo_eflag) {
ND_PRINT((ndo, ": %s", reason));
} else {
- ND_PRINT((ndo, " (%s): %s", etheraddr_string(pmh->sa), reason));
+ ND_PRINT((ndo, " (%s): %s", etheraddr_string(ndo, pmh->sa), reason));
}
return 1;
}
if (ndo->ndo_eflag) {
ND_PRINT((ndo, ": "));
} else {
- ND_PRINT((ndo, " (%s): ", etheraddr_string(pmh->sa)));
+ ND_PRINT((ndo, " (%s): ", etheraddr_string(ndo, pmh->sa)));
}
switch (p[0]) {
case 0: ND_PRINT((ndo, "Spectrum Management Act#%d", p[1])); break;
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s TA:%s CTL(%x) SEQ(%u) ",
- etheraddr_string(((const struct ctrl_bar_t *)p)->ra),
- etheraddr_string(((const struct ctrl_bar_t *)p)->ta),
+ etheraddr_string(ndo, ((const struct ctrl_bar_t *)p)->ra),
+ etheraddr_string(ndo, ((const struct ctrl_bar_t *)p)->ta),
EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->ctl)),
EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->seq))));
break;
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s ",
- etheraddr_string(((const struct ctrl_ba_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_ba_t *)p)->ra)));
break;
case CTRL_PS_POLL:
ND_PRINT((ndo, "Power Save-Poll"));
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " TA:%s ",
- etheraddr_string(((const struct ctrl_rts_t *)p)->ta)));
+ etheraddr_string(ndo, ((const struct ctrl_rts_t *)p)->ta)));
break;
case CTRL_CTS:
ND_PRINT((ndo, "Clear-To-Send"));
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s ",
- etheraddr_string(((const struct ctrl_cts_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_cts_t *)p)->ra)));
break;
case CTRL_ACK:
ND_PRINT((ndo, "Acknowledgment"));
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s ",
- etheraddr_string(((const struct ctrl_ack_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_ack_t *)p)->ra)));
break;
case CTRL_CF_END:
ND_PRINT((ndo, "CF-End"));
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s ",
- etheraddr_string(((const struct ctrl_end_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_end_t *)p)->ra)));
break;
case CTRL_END_ACK:
ND_PRINT((ndo, "CF-End+CF-Ack"));
return 0;
if (!ndo->ndo_eflag)
ND_PRINT((ndo, " RA:%s ",
- etheraddr_string(((const struct ctrl_end_ack_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_end_ack_t *)p)->ra)));
break;
default:
ND_PRINT((ndo, "Unknown Ctrl Subtype"));
if (!ndo->ndo_eflag)
return;
ND_PRINT((ndo, "DA:%s SA:%s BSSID:%s ",
- etheraddr_string(ADDR1), etheraddr_string(ADDR2),
- etheraddr_string(ADDR3)));
+ etheraddr_string(ndo, ADDR1), etheraddr_string(ndo, ADDR2),
+ etheraddr_string(ndo, ADDR3)));
} else if (!FC_TO_DS(fc) && FC_FROM_DS(fc)) {
if (srcp != NULL)
*srcp = ADDR3;
if (!ndo->ndo_eflag)
return;
ND_PRINT((ndo, "DA:%s BSSID:%s SA:%s ",
- etheraddr_string(ADDR1), etheraddr_string(ADDR2),
- etheraddr_string(ADDR3)));
+ etheraddr_string(ndo, ADDR1), etheraddr_string(ndo, ADDR2),
+ etheraddr_string(ndo, ADDR3)));
} else if (FC_TO_DS(fc) && !FC_FROM_DS(fc)) {
if (srcp != NULL)
*srcp = ADDR2;
if (!ndo->ndo_eflag)
return;
ND_PRINT((ndo, "BSSID:%s SA:%s DA:%s ",
- etheraddr_string(ADDR1), etheraddr_string(ADDR2),
- etheraddr_string(ADDR3)));
+ etheraddr_string(ndo, ADDR1), etheraddr_string(ndo, ADDR2),
+ etheraddr_string(ndo, ADDR3)));
} else if (FC_TO_DS(fc) && FC_FROM_DS(fc)) {
if (srcp != NULL)
*srcp = ADDR4;
if (!ndo->ndo_eflag)
return;
ND_PRINT((ndo, "RA:%s TA:%s DA:%s SA:%s ",
- etheraddr_string(ADDR1), etheraddr_string(ADDR2),
- etheraddr_string(ADDR3), etheraddr_string(ADDR4)));
+ etheraddr_string(ndo, ADDR1), etheraddr_string(ndo, ADDR2),
+ etheraddr_string(ndo, ADDR3), etheraddr_string(ndo, ADDR4)));
}
#undef ADDR1
return;
ND_PRINT((ndo, "BSSID:%s DA:%s SA:%s ",
- etheraddr_string((hp)->bssid), etheraddr_string((hp)->da),
- etheraddr_string((hp)->sa)));
+ etheraddr_string(ndo, (hp)->bssid), etheraddr_string(ndo, (hp)->da),
+ etheraddr_string(ndo, (hp)->sa)));
}
static void
switch (FC_SUBTYPE(fc)) {
case CTRL_BAR:
ND_PRINT((ndo, " RA:%s TA:%s CTL(%x) SEQ(%u) ",
- etheraddr_string(((const struct ctrl_bar_t *)p)->ra),
- etheraddr_string(((const struct ctrl_bar_t *)p)->ta),
+ etheraddr_string(ndo, ((const struct ctrl_bar_t *)p)->ra),
+ etheraddr_string(ndo, ((const struct ctrl_bar_t *)p)->ta),
EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->ctl)),
EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->seq))));
break;
case CTRL_BA:
ND_PRINT((ndo, "RA:%s ",
- etheraddr_string(((const struct ctrl_ba_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_ba_t *)p)->ra)));
break;
case CTRL_PS_POLL:
ND_PRINT((ndo, "BSSID:%s TA:%s ",
- etheraddr_string(((const struct ctrl_ps_poll_t *)p)->bssid),
- etheraddr_string(((const struct ctrl_ps_poll_t *)p)->ta)));
+ etheraddr_string(ndo, ((const struct ctrl_ps_poll_t *)p)->bssid),
+ etheraddr_string(ndo, ((const struct ctrl_ps_poll_t *)p)->ta)));
break;
case CTRL_RTS:
ND_PRINT((ndo, "RA:%s TA:%s ",
- etheraddr_string(((const struct ctrl_rts_t *)p)->ra),
- etheraddr_string(((const struct ctrl_rts_t *)p)->ta)));
+ etheraddr_string(ndo, ((const struct ctrl_rts_t *)p)->ra),
+ etheraddr_string(ndo, ((const struct ctrl_rts_t *)p)->ta)));
break;
case CTRL_CTS:
ND_PRINT((ndo, "RA:%s ",
- etheraddr_string(((const struct ctrl_cts_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_cts_t *)p)->ra)));
break;
case CTRL_ACK:
ND_PRINT((ndo, "RA:%s ",
- etheraddr_string(((const struct ctrl_ack_t *)p)->ra)));
+ etheraddr_string(ndo, ((const struct ctrl_ack_t *)p)->ra)));
break;
case CTRL_CF_END:
ND_PRINT((ndo, "RA:%s BSSID:%s ",
- etheraddr_string(((const struct ctrl_end_t *)p)->ra),
- etheraddr_string(((const struct ctrl_end_t *)p)->bssid)));
+ etheraddr_string(ndo, ((const struct ctrl_end_t *)p)->ra),
+ etheraddr_string(ndo, ((const struct ctrl_end_t *)p)->bssid)));
break;
case CTRL_END_ACK:
ND_PRINT((ndo, "RA:%s BSSID:%s ",
- etheraddr_string(((const struct ctrl_end_ack_t *)p)->ra),
- etheraddr_string(((const struct ctrl_end_ack_t *)p)->bssid)));
+ etheraddr_string(ndo, ((const struct ctrl_end_ack_t *)p)->ra),
+ etheraddr_string(ndo, ((const struct ctrl_end_ack_t *)p)->bssid)));
break;
default:
ND_PRINT((ndo, "(H) Unknown Ctrl Subtype"));
ND_PRINT((ndo, "MeshData (AE %d TTL %u seq %u", ae, mc->ttl,
EXTRACT_LE_32BITS(mc->seq)));
if (ae > 0)
- ND_PRINT((ndo, " A4:%s", etheraddr_string(mc->addr4)));
+ ND_PRINT((ndo, " A4:%s", etheraddr_string(ndo, mc->addr4)));
if (ae > 1)
- ND_PRINT((ndo, " A5:%s", etheraddr_string(mc->addr5)));
+ ND_PRINT((ndo, " A5:%s", etheraddr_string(ndo, mc->addr5)));
if (ae > 2)
- ND_PRINT((ndo, " A6:%s", etheraddr_string(mc->addr6)));
+ ND_PRINT((ndo, " A6:%s", etheraddr_string(ndo, mc->addr6)));
ND_PRINT((ndo, ") "));
}
u_int
-ieee802_15_4_if_print(struct netdissect_options *ndo,
+ieee802_15_4_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
u_int caplen = h->caplen;
goto corrupt;
ND_TCHECK2(*cp, 16);
#ifdef INET6
- ND_PRINT((ndo, "%s%s", sep, ip6addr_string(cp)));
+ ND_PRINT((ndo, "%s%s", sep, ip6addr_string(ndo, cp)));
#else
ND_PRINT((ndo, "%s(compiled w/o IPv6)", sep));
#endif /* INET6 */
if (cp + 4 > ep)
goto corrupt;
ND_TCHECK2(*cp, 4);
- ND_PRINT((ndo, "%s%s", sep, ipaddr_string(cp)));
+ ND_PRINT((ndo, "%s%s", sep, ipaddr_string(ndo, cp)));
cp += 4;
sep = ", ";
}
goto corrupt;
ND_TCHECK2(*cp, 17);
#ifdef INET6
- ND_PRINT((ndo, "%s%s/%u", sep, ip6addr_string(cp), *(cp + 16)));
+ ND_PRINT((ndo, "%s%s/%u", sep, ip6addr_string(ndo, cp), *(cp + 16)));
#else
ND_PRINT((ndo, "%s(compiled w/o IPv6)/%u", sep, *(cp + 16)));
#endif /* INET6 */
if (cp + 5 > ep)
goto corrupt;
ND_TCHECK2(*cp, 5);
- ND_PRINT((ndo, "%s%s/%u", sep, ipaddr_string(cp), *(cp + 4)));
+ ND_PRINT((ndo, "%s%s/%u", sep, ipaddr_string(ndo, cp), *(cp + 4)));
cp += 5;
sep = ", ";
}
cp += 4;
/* Source Id */
ND_TCHECK2(*cp, 8);
- ND_PRINT((ndo, ", Source Id %s", linkaddr_string(cp, 0, 8)));
+ ND_PRINT((ndo, ", Source Id %s", linkaddr_string(ndo, cp, 0, 8)));
cp += 8;
/* Destination Id */
ND_TCHECK2(*cp, 8);
- ND_PRINT((ndo, ", Destination Id %s", linkaddr_string(cp, 0, 8)));
+ ND_PRINT((ndo, ", Destination Id %s", linkaddr_string(ndo, cp, 0, 8)));
cp += 8;
}
/* Body */
ap->rreq.rreq_type & RREQ_UNKNOWN ? "[U] " : " ",
ap->rreq.rreq_hops,
(unsigned long)EXTRACT_32BITS(&ap->rreq.rreq_id),
- ipaddr_string(&ap->rreq.rreq_da),
+ ipaddr_string(ndo, &ap->rreq.rreq_da),
(unsigned long)EXTRACT_32BITS(&ap->rreq.rreq_ds),
- ipaddr_string(&ap->rreq.rreq_oa),
+ ipaddr_string(ndo, &ap->rreq.rreq_oa),
(unsigned long)EXTRACT_32BITS(&ap->rreq.rreq_os)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rreq + 1), i);
ap->rrep.rrep_type & RREP_ACK ? "[A] " : " ",
ap->rrep.rrep_ps & RREP_PREFIX_MASK,
ap->rrep.rrep_hops,
- ipaddr_string(&ap->rrep.rrep_da),
+ ipaddr_string(ndo, &ap->rrep.rrep_da),
(unsigned long)EXTRACT_32BITS(&ap->rrep.rrep_ds),
- ipaddr_string(&ap->rrep.rrep_oa),
+ ipaddr_string(ndo, &ap->rrep.rrep_oa),
(unsigned long)EXTRACT_32BITS(&ap->rrep.rrep_life)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rrep + 1), i);
trunc = n - (i/sizeof(ap->rerr.r.dest[0]));
for (; i >= sizeof(ap->rerr.r.dest[0]);
++dp, i -= sizeof(ap->rerr.r.dest[0])) {
- ND_PRINT((ndo, " {%s}(%ld)", ipaddr_string(&dp->u_da),
+ ND_PRINT((ndo, " {%s}(%ld)", ipaddr_string(ndo, &dp->u_da),
(unsigned long)EXTRACT_32BITS(&dp->u_ds)));
}
if (trunc)
ap->rreq6.rreq_type & RREQ_UNKNOWN ? "[U] " : " ",
ap->rreq6.rreq_hops,
(unsigned long)EXTRACT_32BITS(&ap->rreq6.rreq_id),
- ip6addr_string(&ap->rreq6.rreq_da),
+ ip6addr_string(ndo, &ap->rreq6.rreq_da),
(unsigned long)EXTRACT_32BITS(&ap->rreq6.rreq_ds),
- ip6addr_string(&ap->rreq6.rreq_oa),
+ ip6addr_string(ndo, &ap->rreq6.rreq_oa),
(unsigned long)EXTRACT_32BITS(&ap->rreq6.rreq_os)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rreq6 + 1), i);
ap->rrep6.rrep_type & RREP_ACK ? "[A] " : " ",
ap->rrep6.rrep_ps & RREP_PREFIX_MASK,
ap->rrep6.rrep_hops,
- ip6addr_string(&ap->rrep6.rrep_da),
+ ip6addr_string(ndo, &ap->rrep6.rrep_da),
(unsigned long)EXTRACT_32BITS(&ap->rrep6.rrep_ds),
- ip6addr_string(&ap->rrep6.rrep_oa),
+ ip6addr_string(ndo, &ap->rrep6.rrep_oa),
(unsigned long)EXTRACT_32BITS(&ap->rrep6.rrep_life)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rrep6 + 1), i);
ap->rerr.rerr_dc, length));
trunc = n - (i/j);
for (; i -= j >= 0; ++dp6) {
- ND_PRINT((ndo, " {%s}(%ld)", ip6addr_string(&dp6->u_da),
+ ND_PRINT((ndo, " {%s}(%ld)", ip6addr_string(ndo, &dp6->u_da),
(unsigned long)EXTRACT_32BITS(&dp6->u_ds)));
}
if (trunc)
ap->rreq6_draft_01.rreq_type & RREQ_UNKNOWN ? "[U] " : " ",
ap->rreq6_draft_01.rreq_hops,
(unsigned long)EXTRACT_32BITS(&ap->rreq6_draft_01.rreq_id),
- ip6addr_string(&ap->rreq6_draft_01.rreq_da),
+ ip6addr_string(ndo, &ap->rreq6_draft_01.rreq_da),
(unsigned long)EXTRACT_32BITS(&ap->rreq6_draft_01.rreq_ds),
- ip6addr_string(&ap->rreq6_draft_01.rreq_oa),
+ ip6addr_string(ndo, &ap->rreq6_draft_01.rreq_oa),
(unsigned long)EXTRACT_32BITS(&ap->rreq6_draft_01.rreq_os)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rreq6_draft_01 + 1), i);
ap->rrep6_draft_01.rrep_type & RREP_ACK ? "[A] " : " ",
ap->rrep6_draft_01.rrep_ps & RREP_PREFIX_MASK,
ap->rrep6_draft_01.rrep_hops,
- ip6addr_string(&ap->rrep6_draft_01.rrep_da),
+ ip6addr_string(ndo, &ap->rrep6_draft_01.rrep_da),
(unsigned long)EXTRACT_32BITS(&ap->rrep6_draft_01.rrep_ds),
- ip6addr_string(&ap->rrep6_draft_01.rrep_oa),
+ ip6addr_string(ndo, &ap->rrep6_draft_01.rrep_oa),
(unsigned long)EXTRACT_32BITS(&ap->rrep6_draft_01.rrep_life)));
if (i >= sizeof(struct aodv_ext))
aodv_extension(ndo, (void *)(&ap->rrep6_draft_01 + 1), i);
ap->rerr.rerr_dc, length));
trunc = n - (i/j);
for (; i -= j >= 0; ++dp6) {
- ND_PRINT((ndo, " {%s}(%ld)", ip6addr_string(&dp6->u_da),
+ ND_PRINT((ndo, " {%s}(%ld)", ip6addr_string(ndo, &dp6->u_da),
(unsigned long)EXTRACT_32BITS(&dp6->u_ds)));
}
if (trunc)
fp = (const struct firewire_header *)bp;
ND_PRINT((ndo, "%s > %s",
- linkaddr_string(fp->firewire_dhost, LINKADDR_IEEE1394, FIREWIRE_EUI64_LEN),
- linkaddr_string(fp->firewire_shost, LINKADDR_IEEE1394, FIREWIRE_EUI64_LEN)));
+ linkaddr_string(ndo, fp->firewire_dhost, LINKADDR_IEEE1394, FIREWIRE_EUI64_LEN),
+ linkaddr_string(ndo, fp->firewire_shost, LINKADDR_IEEE1394, FIREWIRE_EUI64_LEN)));
firewire_type = EXTRACT_16BITS(&fp->firewire_type);
if (!ndo->ndo_qflag) {
if (ha_len == 0)
ND_PRINT((ndo, "<No address>"));
else {
- ND_PRINT((ndo, "%s", linkaddr_string(ha, LINKADDR_ATM, ha_len)));
+ ND_PRINT((ndo, "%s", linkaddr_string(ndo, ha, LINKADDR_ATM, ha_len)));
if (srca_len != 0)
ND_PRINT((ndo, ",%s",
- linkaddr_string(srca, LINKADDR_ATM, srca_len)));
+ linkaddr_string(ndo, srca, LINKADDR_ATM, srca_len)));
}
}
switch (op) {
case ARPOP_REQUEST:
- ND_PRINT((ndo, "who-has %s", ipaddr_string(ATMTPA(ap))));
+ ND_PRINT((ndo, "who-has %s", ipaddr_string(ndo, ATMTPA(ap))));
if (ATMTHRD_LEN(ap) != 0) {
ND_PRINT((ndo, " ("));
atmarp_addr_print(ndo, ATMTHA(ap), ATMTHRD_LEN(ap),
ATMTSA(ap), ATMTSLN(ap));
ND_PRINT((ndo, ")"));
}
- ND_PRINT((ndo, "tell %s", ipaddr_string(ATMSPA(ap))));
+ ND_PRINT((ndo, "tell %s", ipaddr_string(ndo, ATMSPA(ap))));
break;
case ARPOP_REPLY:
- ND_PRINT((ndo, "%s is-at ", ipaddr_string(ATMSPA(ap))));
+ ND_PRINT((ndo, "%s is-at ", ipaddr_string(ndo, ATMSPA(ap))));
atmarp_addr_print(ndo, ATMSHA(ap), ATMSHRD_LEN(ap), ATMSSA(ap),
ATMSSLN(ap));
break;
case ARPOP_INVREPLY:
atmarp_addr_print(ndo, ATMSHA(ap), ATMSHRD_LEN(ap), ATMSSA(ap),
ATMSSLN(ap));
- ND_PRINT((ndo, "at %s", ipaddr_string(ATMSPA(ap))));
+ ND_PRINT((ndo, "at %s", ipaddr_string(ndo, ATMSPA(ap))));
break;
case ARPOP_NAK:
- ND_PRINT((ndo, "for %s", ipaddr_string(ATMSPA(ap))));
+ ND_PRINT((ndo, "for %s", ipaddr_string(ndo, ATMSPA(ap))));
break;
default:
/* if its ATM then call the ATM ARP printer
for Frame-relay ARP most of the fields
are similar to Ethernet so overload the Ethernet Printer
- and set the linkaddr type for linkaddr_string() accordingly */
+ and set the linkaddr type for linkaddr_string(ndo, ) accordingly */
switch(hrd) {
case ARPHRD_ATM2225:
switch (op) {
case ARPOP_REQUEST:
- ND_PRINT((ndo, "who-has %s", ipaddr_string(TPA(ap))));
+ ND_PRINT((ndo, "who-has %s", ipaddr_string(ndo, TPA(ap))));
if (memcmp((const char *)ezero, (const char *)THA(ap), HRD_LEN(ap)) != 0)
ND_PRINT((ndo, " (%s)",
- linkaddr_string(THA(ap), linkaddr, HRD_LEN(ap))));
- ND_PRINT((ndo, " tell %s", ipaddr_string(SPA(ap))));
+ linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap))));
+ ND_PRINT((ndo, " tell %s", ipaddr_string(ndo, SPA(ap))));
break;
case ARPOP_REPLY:
ND_PRINT((ndo, "%s is-at %s",
- ipaddr_string(SPA(ap)),
- linkaddr_string(SHA(ap), linkaddr, HRD_LEN(ap))));
+ ipaddr_string(ndo, SPA(ap)),
+ linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap))));
break;
case ARPOP_REVREQUEST:
ND_PRINT((ndo, "who-is %s tell %s",
- linkaddr_string(THA(ap), linkaddr, HRD_LEN(ap)),
- linkaddr_string(SHA(ap), linkaddr, HRD_LEN(ap))));
+ linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
+ linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap))));
break;
case ARPOP_REVREPLY:
ND_PRINT((ndo, "%s at %s",
- linkaddr_string(THA(ap), linkaddr, HRD_LEN(ap)),
- ipaddr_string(TPA(ap))));
+ linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
+ ipaddr_string(ndo, TPA(ap))));
break;
case ARPOP_INVREQUEST:
ND_PRINT((ndo, "who-is %s tell %s",
- linkaddr_string(THA(ap), linkaddr, HRD_LEN(ap)),
- linkaddr_string(SHA(ap), linkaddr, HRD_LEN(ap))));
+ linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
+ linkaddr_string(ndo, SHA(ap), linkaddr, HRD_LEN(ap))));
break;
case ARPOP_INVREPLY:
ND_PRINT((ndo,"%s at %s",
- linkaddr_string(THA(ap), linkaddr, HRD_LEN(ap)),
- ipaddr_string(TPA(ap))));
+ linkaddr_string(ndo, THA(ap), linkaddr, HRD_LEN(ap)),
+ ipaddr_string(ndo, TPA(ap))));
break;
default:
return;
case 2: /* response */
- ND_PRINT((ndo, "reply %s is-at %s", AT(psaddr), etheraddr_string(ap->hsaddr)));
+ ND_PRINT((ndo, "reply %s is-at %s", AT(psaddr), etheraddr_string(ndo, ap->hsaddr)));
return;
case 3: /* probe (oy!) */
#include <stdio.h>
#include <string.h>
-#include "addrtoname.h"
#include "interface.h"
+#include "addrtoname.h"
#include "extract.h"
static const char tstr[] = "[|babel]";
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0, 0, 0, 0 };
static const char *
-format_prefix(const u_char *prefix, unsigned char plen)
+format_prefix(netdissect_options *ndo, const u_char *prefix, unsigned char plen)
{
static char buf[50];
if(plen >= 96 && memcmp(prefix, v4prefix, 12) == 0)
- snprintf(buf, 50, "%s/%u", ipaddr_string(prefix + 12), plen - 96);
+ snprintf(buf, 50, "%s/%u", ipaddr_string(ndo, prefix + 12), plen - 96);
else
#ifdef INET6
- snprintf(buf, 50, "%s/%u", ip6addr_string(prefix), plen);
+ snprintf(buf, 50, "%s/%u", ip6addr_string(ndo, prefix), plen);
#else
snprintf(buf, 50, "IPv6 addresses not supported");
#endif
}
static const char *
-format_address(const u_char *prefix)
+format_address(netdissect_options *ndo, const u_char *prefix)
{
if(memcmp(prefix, v4prefix, 12) == 0)
- return ipaddr_string(prefix + 12);
+ return ipaddr_string(ndo, prefix + 12);
else
#ifdef INET6
- return ip6addr_string(prefix);
+ return ip6addr_string(ndo, prefix);
#else
return "IPv6 addresses not supported";
#endif
rc = network_address(message[2], message + 8, len - 6, address);
if(rc < 0) { ND_PRINT((ndo, "%s", tstr)); break; }
ND_PRINT((ndo, "%s txcost %u interval %s",
- format_address(address), txcost, format_interval(interval)));
+ format_address(ndo, address), txcost, format_interval(interval)));
}
}
break;
if(len < 2) goto corrupt;
rc = network_address(message[2], message + 4, len - 2, nh);
if(rc < 0) goto corrupt;
- ND_PRINT((ndo, " %s", format_address(nh)));
+ ND_PRINT((ndo, " %s", format_address(ndo, nh)));
}
}
break;
(message[3] & 0x80) ? "/prefix": "",
(message[3] & 0x40) ? "/id" : "",
(message[3] & 0x3f) ? "/unknown" : "",
- format_prefix(prefix, plen),
+ format_prefix(ndo, prefix, plen),
metric, seqno, format_interval_update(interval)));
if(message[3] & 0x80) {
if(message[2] == 1)
message + 4, NULL, len - 2, prefix);
if(rc < 0) goto corrupt;
ND_PRINT((ndo, "for %s",
- message[2] == 0 ? "any" : format_prefix(prefix, plen)));
+ message[2] == 0 ? "any" : format_prefix(ndo, prefix, plen)));
}
}
break;
if(rc < 0) goto corrupt;
plen = message[3] + (message[2] == 1 ? 96 : 0);
ND_PRINT((ndo, "(%u hops) for %s seqno %u id %s",
- message[6], format_prefix(prefix, plen),
+ message[6], format_prefix(ndo, prefix, plen),
seqno, format_id(message + 8)));
}
}
((u_char *)&addr)[plenbytes - 1] &=
((0xff00 >> (plen % 8)) & 0xff);
}
- snprintf(buf, buflen, "%s/%d", getname((u_char *)&addr), plen);
+ snprintf(buf, buflen, "%s/%d", getname(ndo, (u_char *)&addr), plen);
return 1 + plenbytes;
trunc:
}
/* the label may get offsetted by 4 bits so lets shift it right */
snprintf(buf, buflen, "%s/%d, label:%u %s",
- getname((u_char *)&addr),
+ getname(ndo, (u_char *)&addr),
plen,
EXTRACT_24BITS(pptr+1)>>4,
((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
switch(addr_length) {
case (sizeof(struct in_addr) << 3): /* 32 */
ND_TCHECK2(pptr[0], sizeof(struct in_addr));
- snprintf(pos, sizeof(addr), "%s", ipaddr_string(pptr));
+ snprintf(pos, sizeof(addr), "%s", ipaddr_string(ndo, pptr));
break;
#ifdef INET6
case (sizeof(struct in6_addr) << 3): /* 128 */
ND_TCHECK2(pptr[0], sizeof(struct in6_addr));
- snprintf(pos, sizeof(addr), "%s", ip6addr_string(pptr));
+ snprintf(pos, sizeof(addr), "%s", ip6addr_string(ndo, pptr));
break;
#endif
default:
/* the label may get offsetted by 4 bits so lets shift it right */
snprintf(buf, buflen, "RD: %s, %s/%d, label:%u %s",
bgp_vpn_rd_print(ndo, pptr+4),
- getname((u_char *)&addr),
+ getname(ndo, (u_char *)&addr),
plen,
EXTRACT_24BITS(pptr+1)>>4,
((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
ND_TCHECK2(pptr[0], sizeof(struct in_addr));
snprintf(buf, buflen, "RD: %s, VPN IP Address: %s, MC Group Address: %s",
- bgp_vpn_rd_print(ndo, rd), ipaddr_string(vpn_ip), ipaddr_string(pptr));
+ bgp_vpn_rd_print(ndo, rd), ipaddr_string(ndo, vpn_ip), ipaddr_string(ndo, pptr));
return MDT_VPN_NLRI_LEN + 1;
buf[0]='\0';
strlen=snprintf(buf, buflen, "RD: %s, BGPNH: %s",
bgp_vpn_rd_print(ndo, pptr),
- /* need something like getname() here */
- getname(pptr+8)
+ /* need something like getname(ndo, ) here */
+ getname(ndo, pptr+8)
);
UPDATE_BUF_BUFLEN(buf, buflen, strlen);
pptr+=12;
addr.s6_addr[plenbytes - 1] &=
((0xff00 >> (plen % 8)) & 0xff);
}
- snprintf(buf, buflen, "%s/%d", getname6((u_char *)&addr), plen);
+ snprintf(buf, buflen, "%s/%d", getname6(ndo, (u_char *)&addr), plen);
return 1 + plenbytes;
trunc:
}
/* the label may get offsetted by 4 bits so lets shift it right */
snprintf(buf, buflen, "%s/%d, label:%u %s",
- getname6((u_char *)&addr),
+ getname6(ndo, (u_char *)&addr),
plen,
EXTRACT_24BITS(pptr+1)>>4,
((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
/* the label may get offsetted by 4 bits so lets shift it right */
snprintf(buf, buflen, "RD: %s, %s/%d, label:%u %s",
bgp_vpn_rd_print(ndo, pptr+4),
- getname6((u_char *)&addr),
+ getname6(ndo, (u_char *)&addr),
plen,
EXTRACT_24BITS(pptr+1)>>4,
((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
ND_PRINT((ndo, "invalid len"));
else {
ND_TCHECK2(tptr[0], 4);
- ND_PRINT((ndo, "%s", getname(tptr)));
+ ND_PRINT((ndo, "%s", getname(ndo, tptr)));
}
break;
case BGPTYPE_MULTI_EXIT_DISC:
if (len == 6) {
ND_PRINT((ndo, " AS #%s, origin %s",
as_printf(ndo, astostr, sizeof(astostr), EXTRACT_16BITS(tptr)),
- getname(tptr + 2)));
+ getname(ndo, tptr + 2)));
} else {
ND_PRINT((ndo, " AS #%s, origin %s",
as_printf(ndo, astostr, sizeof(astostr),
- EXTRACT_32BITS(tptr)), getname(tptr + 4)));
+ EXTRACT_32BITS(tptr)), getname(ndo, tptr + 4)));
}
break;
case BGPTYPE_AGGREGATOR4:
ND_TCHECK2(tptr[0], 8);
ND_PRINT((ndo, " AS #%s, origin %s",
as_printf(ndo, astostr, sizeof(astostr), EXTRACT_32BITS(tptr)),
- getname(tptr + 4)));
+ getname(ndo, tptr + 4)));
break;
case BGPTYPE_COMMUNITIES:
if (len % 4) {
break;
}
ND_TCHECK2(tptr[0], 4);
- ND_PRINT((ndo, "%s",getname(tptr)));
+ ND_PRINT((ndo, "%s",getname(ndo, tptr)));
break;
case BGPTYPE_CLUSTER_LIST:
if (len % 4) {
while (tlen>0) {
ND_TCHECK2(tptr[0], 4);
ND_PRINT((ndo, "%s%s",
- getname(tptr),
+ getname(ndo, tptr),
(tlen>4) ? ", " : ""));
tlen -=4;
tptr +=4;
tlen = 0;
} else {
ND_TCHECK2(tptr[0], sizeof(struct in_addr));
- ND_PRINT((ndo, "%s",getname(tptr)));
+ ND_PRINT((ndo, "%s",getname(ndo, tptr)));
tlen -= sizeof(struct in_addr);
tptr += sizeof(struct in_addr);
}
ND_TCHECK2(tptr[0], sizeof(struct in_addr)+BGP_VPN_RD_LEN);
ND_PRINT((ndo, "RD: %s, %s",
bgp_vpn_rd_print(ndo, tptr),
- getname(tptr+BGP_VPN_RD_LEN)));
+ getname(ndo, tptr+BGP_VPN_RD_LEN)));
tlen -= (sizeof(struct in_addr)+BGP_VPN_RD_LEN);
tptr += (sizeof(struct in_addr)+BGP_VPN_RD_LEN);
}
tlen = 0;
} else {
ND_TCHECK2(tptr[0], sizeof(struct in6_addr));
- ND_PRINT((ndo, "%s", getname6(tptr)));
+ ND_PRINT((ndo, "%s", getname6(ndo, tptr)));
tlen -= sizeof(struct in6_addr);
tptr += sizeof(struct in6_addr);
}
ND_TCHECK2(tptr[0], sizeof(struct in6_addr)+BGP_VPN_RD_LEN);
ND_PRINT((ndo, "RD: %s, %s",
bgp_vpn_rd_print(ndo, tptr),
- getname6(tptr+BGP_VPN_RD_LEN)));
+ getname6(ndo, tptr+BGP_VPN_RD_LEN)));
tlen -= (sizeof(struct in6_addr)+BGP_VPN_RD_LEN);
tptr += (sizeof(struct in6_addr)+BGP_VPN_RD_LEN);
}
tlen = 0;
} else {
ND_TCHECK2(tptr[0], sizeof(struct in_addr));
- ND_PRINT((ndo, "%s", getname(tptr)));
+ ND_PRINT((ndo, "%s", getname(ndo, tptr)));
tlen -= (sizeof(struct in_addr));
tptr += (sizeof(struct in_addr));
}
isonsap_string(tptr+BGP_VPN_RD_LEN,tlen-BGP_VPN_RD_LEN)));
/* rfc986 mapped IPv4 address ? */
if (EXTRACT_32BITS(tptr+BGP_VPN_RD_LEN) == 0x47000601)
- ND_PRINT((ndo, " = %s", getname(tptr+BGP_VPN_RD_LEN+4)));
+ ND_PRINT((ndo, " = %s", getname(ndo, tptr+BGP_VPN_RD_LEN+4)));
#ifdef INET6
/* rfc1888 mapped IPv6 address ? */
else if (EXTRACT_24BITS(tptr+BGP_VPN_RD_LEN) == 0x350000)
- ND_PRINT((ndo, " = %s", getname6(tptr+BGP_VPN_RD_LEN+3)));
+ ND_PRINT((ndo, " = %s", getname6(ndo, tptr+BGP_VPN_RD_LEN+3)));
#endif
tptr += tlen;
tlen = 0;
ND_PRINT((ndo, ": %u:%u (= %s)",
EXTRACT_16BITS(tptr+2),
EXTRACT_32BITS(tptr+4),
- getname(tptr+4)));
+ getname(ndo, tptr+4)));
break;
case BGP_EXT_COM_RT_1:
case BGP_EXT_COM_RO_1:
case BGP_EXT_COM_L2VPN_RT_1:
case BGP_EXT_COM_VRF_RT_IMP:
ND_PRINT((ndo, ": %s:%u",
- getname(tptr+2),
+ getname(ndo, tptr+2),
EXTRACT_16BITS(tptr+6)));
break;
case BGP_EXT_COM_RT_2:
case BGP_EXT_COM_VPN_ORIGIN4:
case BGP_EXT_COM_OSPF_RID:
case BGP_EXT_COM_OSPF_RID2:
- ND_PRINT((ndo, "%s", getname(tptr+2)));
+ ND_PRINT((ndo, "%s", getname(ndo, tptr+2)));
break;
case BGP_EXT_COM_OSPF_RTYPE:
case BGP_EXT_COM_OSPF_RTYPE2:
ND_PRINT((ndo, ": area:%s, router-type:%s, metric-type:%s%s",
- getname(tptr+2),
+ getname(ndo, tptr+2),
tok2strbuf(bgp_extd_comm_ospf_rtype_values,
"unknown (0x%02x)",
*(tptr+6),
case BGP_PMSI_TUNNEL_PIM_BIDIR:
ND_TCHECK2(tptr[0], 8);
ND_PRINT((ndo, "\n\t Sender %s, P-Group %s",
- ipaddr_string(tptr),
- ipaddr_string(tptr+4)));
+ ipaddr_string(ndo, tptr),
+ ipaddr_string(ndo, tptr+4)));
break;
case BGP_PMSI_TUNNEL_PIM_SSM:
ND_TCHECK2(tptr[0], 8);
ND_PRINT((ndo, "\n\t Root-Node %s, P-Group %s",
- ipaddr_string(tptr),
- ipaddr_string(tptr+4)));
+ ipaddr_string(ndo, tptr),
+ ipaddr_string(ndo, tptr+4)));
break;
case BGP_PMSI_TUNNEL_INGRESS:
ND_TCHECK2(tptr[0], 4);
ND_PRINT((ndo, "\n\t Tunnel-Endpoint %s",
- ipaddr_string(tptr)));
+ ipaddr_string(ndo, tptr)));
break;
case BGP_PMSI_TUNNEL_LDP_P2MP: /* fall through */
case BGP_PMSI_TUNNEL_LDP_MP2MP:
ND_TCHECK2(tptr[0], 8);
ND_PRINT((ndo, "\n\t Root-Node %s, LSP-ID 0x%08x",
- ipaddr_string(tptr),
+ ipaddr_string(ndo, tptr),
EXTRACT_32BITS(tptr+4)));
break;
case BGP_PMSI_TUNNEL_RSVP_P2MP:
ND_TCHECK2(tptr[0], 8);
ND_PRINT((ndo, "\n\t Extended-Tunnel-ID %s, P2MP-ID 0x%08x",
- ipaddr_string(tptr),
+ ipaddr_string(ndo, tptr),
EXTRACT_32BITS(tptr+4)));
break;
default:
ND_PRINT((ndo, "my AS %s, ",
as_printf(ndo, astostr, sizeof(astostr), ntohs(bgpo.bgpo_myas))));
ND_PRINT((ndo, "Holdtime %us, ", ntohs(bgpo.bgpo_holdtime)));
- ND_PRINT((ndo, "ID %s", getname((u_char *)&bgpo.bgpo_id)));
+ ND_PRINT((ndo, "ID %s", getname(ndo, (u_char *)&bgpo.bgpo_id)));
ND_PRINT((ndo, "\n\t Optional parameters, length: %u", bgpo.bgpo_optlen));
/* some little sanity checking */
if (bp->bp_htype == 1 && bp->bp_hlen == 6 && bp->bp_op == BOOTPREQUEST) {
ND_TCHECK2(bp->bp_chaddr[0], 6);
- ND_PRINT((ndo, " from %s", etheraddr_string(bp->bp_chaddr)));
+ ND_PRINT((ndo, " from %s", etheraddr_string(ndo, bp->bp_chaddr)));
}
ND_PRINT((ndo, ", length %u", length));
/* Client's ip address */
ND_TCHECK(bp->bp_ciaddr);
if (EXTRACT_32BITS(&bp->bp_ciaddr.s_addr))
- ND_PRINT((ndo, "\n\t Client-IP %s", ipaddr_string(&bp->bp_ciaddr)));
+ ND_PRINT((ndo, "\n\t Client-IP %s", ipaddr_string(ndo, &bp->bp_ciaddr)));
/* 'your' ip address (bootp client) */
ND_TCHECK(bp->bp_yiaddr);
if (EXTRACT_32BITS(&bp->bp_yiaddr.s_addr))
- ND_PRINT((ndo, "\n\t Your-IP %s", ipaddr_string(&bp->bp_yiaddr)));
+ ND_PRINT((ndo, "\n\t Your-IP %s", ipaddr_string(ndo, &bp->bp_yiaddr)));
/* Server's ip address */
ND_TCHECK(bp->bp_siaddr);
if (EXTRACT_32BITS(&bp->bp_siaddr.s_addr))
- ND_PRINT((ndo, "\n\t Server-IP %s", ipaddr_string(&bp->bp_siaddr)));
+ ND_PRINT((ndo, "\n\t Server-IP %s", ipaddr_string(ndo, &bp->bp_siaddr)));
/* Gateway's ip address */
ND_TCHECK(bp->bp_giaddr);
if (EXTRACT_32BITS(&bp->bp_giaddr.s_addr))
- ND_PRINT((ndo, "\n\t Gateway-IP %s", ipaddr_string(&bp->bp_giaddr)));
+ ND_PRINT((ndo, "\n\t Gateway-IP %s", ipaddr_string(ndo, &bp->bp_giaddr)));
/* Client's Ethernet address */
if (bp->bp_htype == 1 && bp->bp_hlen == 6) {
ND_TCHECK2(bp->bp_chaddr[0], 6);
- ND_PRINT((ndo, "\n\t Client-Ethernet-Address %s", etheraddr_string(bp->bp_chaddr)));
+ ND_PRINT((ndo, "\n\t Client-Ethernet-Address %s", etheraddr_string(ndo, bp->bp_chaddr)));
}
ND_TCHECK2(bp->bp_sname[0], 1); /* check first char only */
ul = EXTRACT_32BITS(bp);
if (c == 'i') {
ul = htonl(ul);
- ND_PRINT((ndo, "%s", ipaddr_string(&ul)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, &ul)));
} else if (c == 'L')
ND_PRINT((ndo, "%d", ul));
else
if (!first)
ND_PRINT((ndo, ","));
memcpy((char *)&ul, (const char *)bp, sizeof(ul));
- ND_PRINT((ndo, "(%s:", ipaddr_string(&ul)));
+ ND_PRINT((ndo, "(%s:", ipaddr_string(ndo, &ul)));
bp += sizeof(ul);
memcpy((char *)&ul, (const char *)bp, sizeof(ul));
- ND_PRINT((ndo, "%s)", ipaddr_string(&ul)));
+ ND_PRINT((ndo, "%s)", ipaddr_string(ndo, &ul)));
bp += sizeof(ul);
len -= 2*sizeof(ul);
first = 0;
ND_PRINT((ndo, "/%d", mask_width));
}
memcpy((char *)&ul, (const char *)bp, sizeof(ul));
- ND_PRINT((ndo, ":%s)", ipaddr_string(&ul)));
+ ND_PRINT((ndo, ":%s)", ipaddr_string(ndo, &ul)));
bp += sizeof(ul);
len -= (significant_octets + 4);
first = 0;
#define PRINTCMUADDR(m, s) { ND_TCHECK(cmu->m); \
if (cmu->m.s_addr != 0) \
- ND_PRINT((ndo, " %s:%s", s, ipaddr_string(&cmu->m.s_addr))); }
+ ND_PRINT((ndo, " %s:%s", s, ipaddr_string(ndo, &cmu->m.s_addr))); }
ND_PRINT((ndo, " vend-cmu"));
cmu = (const struct cmu_vend *)bp;
length -= 2;
bp += 2;
- ND_PRINT((ndo, "CALM FAST src:%s; ", etheraddr_string(eth+6)));
+ ND_PRINT((ndo, "CALM FAST src:%s; ", etheraddr_string(ndo, eth+6)));
ND_PRINT((ndo, "SrcNwref:%d; ", srcNwref));
ND_PRINT((ndo, "DstNwref:%d; ", dstNwref));
ND_TCHECK2(*p, 4);
if (p + 4 > endp)
goto trunc;
- ND_PRINT((ndo, "IPv4 (%u) %s", num, ipaddr_string(p)));
+ ND_PRINT((ndo, "IPv4 (%u) %s", num, ipaddr_string(ndo, p)));
p += 4;
}
#ifdef INET6
if (p + al > endp)
goto trunc;
- ND_PRINT((ndo, "IPv6 (%u) %s", num, ip6addr_string(p)));
+ ND_PRINT((ndo, "IPv6 (%u) %s", num, ip6addr_string(ndo, p)));
p += al;
}
#endif
*/
switch(mgmt_addr_type) {
case AFNUM_INET:
- ND_PRINT((ndo, ", %s", ipaddr_string(tptr + 1)));
+ ND_PRINT((ndo, ", %s", ipaddr_string(ndo, tptr + 1)));
break;
#ifdef INET6
case AFNUM_INET6:
- ND_PRINT((ndo, ", %s", ip6addr_string(tptr + 1)));
+ ND_PRINT((ndo, ", %s", ip6addr_string(ndo, tptr + 1)));
break;
#endif
* The egress-ID string is a 16-Bit string plus a MAC address.
*/
static const char *
-cfm_egress_id_string(register const u_char *tptr) {
+cfm_egress_id_string(netdissect_options *ndo, register const u_char *tptr) {
static char egress_id_buffer[80];
snprintf(egress_id_buffer, sizeof(egress_id_buffer),
"MAC 0x%4x-%s",
EXTRACT_16BITS(tptr),
- etheraddr_string(tptr+2));
+ etheraddr_string(ndo, tptr+2));
return egress_id_buffer;
}
break;
case CFM_CCM_MD_FORMAT_MAC:
- ND_PRINT((ndo, "\n\t MAC %s", etheraddr_string(
+ ND_PRINT((ndo, "\n\t MAC %s", etheraddr_string(ndo,
msg_ptr.cfm_ccm->md_name)));
break;
ND_PRINT((ndo, "\n\t Transaction-ID 0x%08x, Egress-ID %s, ttl %u",
EXTRACT_32BITS(msg_ptr.cfm_ltm->transaction_id),
- cfm_egress_id_string(msg_ptr.cfm_ltm->egress_id),
+ cfm_egress_id_string(ndo, msg_ptr.cfm_ltm->egress_id),
msg_ptr.cfm_ltm->ttl));
ND_PRINT((ndo, "\n\t Original-MAC %s, Target-MAC %s",
- etheraddr_string(msg_ptr.cfm_ltm->original_mac),
- etheraddr_string(msg_ptr.cfm_ltm->target_mac)));
+ etheraddr_string(ndo, msg_ptr.cfm_ltm->original_mac),
+ etheraddr_string(ndo, msg_ptr.cfm_ltm->target_mac)));
break;
case CFM_OPCODE_LTR:
ND_PRINT((ndo, "\n\t Transaction-ID 0x%08x, Last-Egress-ID %s",
EXTRACT_32BITS(msg_ptr.cfm_ltr->transaction_id),
- cfm_egress_id_string(msg_ptr.cfm_ltr->last_egress_id)));
+ cfm_egress_id_string(ndo, msg_ptr.cfm_ltr->last_egress_id)));
ND_PRINT((ndo, "\n\t Next-Egress-ID %s, ttl %u",
- cfm_egress_id_string(msg_ptr.cfm_ltr->next_egress_id),
+ cfm_egress_id_string(ndo, msg_ptr.cfm_ltr->next_egress_id),
msg_ptr.cfm_ltr->ttl));
ND_PRINT((ndo, "\n\t Replay-Action %s (%u)",
switch (chassis_id_type) {
case CFM_CHASSIS_ID_MAC_ADDRESS:
- ND_PRINT((ndo, "\n\t MAC %s", etheraddr_string(tptr + 1)));
+ ND_PRINT((ndo, "\n\t MAC %s", etheraddr_string(ndo, tptr + 1)));
break;
case CFM_CHASSIS_ID_NETWORK_ADDRESS:
break;
case SLARP_REPLY:
ND_PRINT((ndo, "reply %s/%s",
- ipaddr_string(&slarp->un.addr.addr),
- ipaddr_string(&slarp->un.addr.mask)));
+ ipaddr_string(ndo, &slarp->un.addr.addr),
+ ipaddr_string(ndo, &slarp->un.addr.mask)));
break;
case SLARP_KEEPALIVE:
ND_PRINT((ndo, "keepalive: mineseen=0x%08x, yourseen=0x%08x, reliability=0x%04x",
#ifdef INET6
if (ip6) {
ND_PRINT((ndo, "%s.%d > %s.%d: ",
- ip6addr_string(&ip6->ip6_src), sport,
- ip6addr_string(&ip6->ip6_dst), dport));
+ ip6addr_string(ndo, &ip6->ip6_src), sport,
+ ip6addr_string(ndo, &ip6->ip6_dst), dport));
} else
#endif /*INET6*/
{
ND_PRINT((ndo, "%s.%d > %s.%d: ",
- ipaddr_string(&ip->ip_src), sport,
- ipaddr_string(&ip->ip_dst), dport));
+ ipaddr_string(ndo, &ip->ip_src), sport,
+ ipaddr_string(ndo, &ip->ip_dst), dport));
}
if (ndo->ndo_qflag) {
}
ND_PRINT((ndo, "%s > %s %d ",
- dnaddr_string(src), dnaddr_string(dst), pktlen));
+ dnaddr_string(ndo, src), dnaddr_string(ndo, dst), pktlen));
if (ndo->ndo_vflag) {
if (mflags & RMF_RQR)
ND_PRINT((ndo, "RQR "));
print_t_info(ndo, info);
ND_PRINT((ndo,
"src %sblksize %d vers %d eco %d ueco %d hello %d",
- dnaddr_string(src), blksize, vers, eco, ueco,
+ dnaddr_string(ndo, src), blksize, vers, eco, ueco,
hello));
ret = 1;
break;
ND_TCHECK(cmp->cm_ver);
src = EXTRACT_LE_16BITS(cmp->cm_ver.ve_src);
other = EXTRACT_LE_8BITS(cmp->cm_ver.ve_fcnval);
- ND_PRINT((ndo, "src %s fcnval %o", dnaddr_string(src), other));
+ ND_PRINT((ndo, "src %s fcnval %o", dnaddr_string(ndo, src), other));
ret = 1;
break;
case RMF_TEST:
ND_TCHECK(cmp->cm_test);
src = EXTRACT_LE_16BITS(cmp->cm_test.te_src);
other = EXTRACT_LE_8BITS(cmp->cm_test.te_data);
- ND_PRINT((ndo, "src %s data %o", dnaddr_string(src), other));
+ ND_PRINT((ndo, "src %s data %o", dnaddr_string(ndo, src), other));
ret = 1;
break;
case RMF_L1ROUT:
goto trunc;
ND_TCHECK(cmp->cm_l1rou);
src = EXTRACT_LE_16BITS(cmp->cm_l1rou.r1_src);
- ND_PRINT((ndo, "src %s ", dnaddr_string(src)));
+ ND_PRINT((ndo, "src %s ", dnaddr_string(ndo, src)));
ret = print_l1_routes(ndo, &(rhpx[sizeof(struct l1rout)]),
length - sizeof(struct l1rout));
break;
goto trunc;
ND_TCHECK(cmp->cm_l2rout);
src = EXTRACT_LE_16BITS(cmp->cm_l2rout.r2_src);
- ND_PRINT((ndo, "src %s ", dnaddr_string(src)));
+ ND_PRINT((ndo, "src %s ", dnaddr_string(ndo, src)));
ret = print_l2_routes(ndo, &(rhpx[sizeof(struct l2rout)]),
length - sizeof(struct l2rout));
break;
print_i_info(ndo, info);
ND_PRINT((ndo,
"vers %d eco %d ueco %d src %s blksize %d pri %d hello %d",
- vers, eco, ueco, dnaddr_string(src),
+ vers, eco, ueco, dnaddr_string(ndo, src),
blksize, priority, hello));
ret = print_elist(&(rhpx[sizeof(struct rhellomsg)]),
length - sizeof(struct rhellomsg));
print_i_info(ndo, info);
ND_PRINT((ndo,
"vers %d eco %d ueco %d src %s blksize %d rtr %s hello %d data %o",
- vers, eco, ueco, dnaddr_string(src),
- blksize, dnaddr_string(dst), hello, other));
+ vers, eco, ueco, dnaddr_string(ndo, src),
+ blksize, dnaddr_string(ndo, dst), hello, other));
ret = 1;
break;
break;
}
tp = (u_char *)(dh6o + 1);
- ND_PRINT((ndo, " %s", ip6addr_string(&tp[0])));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, &tp[0])));
ND_PRINT((ndo, " pltime:%u vltime:%u",
EXTRACT_32BITS(&tp[16]),
EXTRACT_32BITS(&tp[20])));
}
tp = (u_char *)(dh6o + 1);
for (i = 0; i < optlen; i += 16)
- ND_PRINT((ndo, " %s", ip6addr_string(&tp[i])));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, &tp[i])));
ND_PRINT((ndo, ")"));
break;
case DH6OPT_SIP_SERVER_D:
break;
}
tp = (u_char *)(dh6o + 1);
- ND_PRINT((ndo, " %s/%d", ip6addr_string(&tp[9]), tp[8]));
+ ND_PRINT((ndo, " %s/%d", ip6addr_string(ndo, &tp[9]), tp[8]));
ND_PRINT((ndo, " pltime:%u vltime:%u",
EXTRACT_32BITS(&tp[0]),
EXTRACT_32BITS(&tp[4])));
ND_PRINT((ndo, " type_%d", (int)*tp));
break;
}
- ND_PRINT((ndo, " %s", ip6addr_string(&tp[1])));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, &tp[1])));
if (optlen > 17) {
/* there are query-options */
dhcp6opt_print(ndo, tp + 17, tp + optlen);
break;
}
tp = (u_char *)(dh6o + 1);
- ND_PRINT((ndo, " %s ", ip6addr_string(&tp[0])));
+ ND_PRINT((ndo, " %s ", ip6addr_string(ndo, &tp[0])));
/*
* Print hex dump first 10 characters.
*/
ND_PRINT((ndo, " ?"));
break;
}
- ND_PRINT((ndo, " %s", ip6addr_string(&tp[0])));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, &tp[0])));
break;
case DH6OPT_NTP_SUBOPTION_SRV_FQDN:
ND_PRINT((ndo, " "));
ND_TCHECK(dh6relay->dh6relay_peeraddr);
memcpy(&addr6, dh6relay->dh6relay_linkaddr, sizeof (addr6));
- ND_PRINT((ndo, "linkaddr=%s", ip6addr_string(&addr6)));
+ ND_PRINT((ndo, "linkaddr=%s", ip6addr_string(ndo, &addr6)));
memcpy(&addr6, dh6relay->dh6relay_peeraddr, sizeof (addr6));
- ND_PRINT((ndo, " peeraddr=%s", ip6addr_string(&addr6)));
+ ND_PRINT((ndo, " peeraddr=%s", ip6addr_string(ndo, &addr6)));
dhcp6opt_print(ndo, (u_char *)(dh6relay + 1), ep);
}
break;
case DTP_NEIGHBOR_TLV:
- ND_PRINT((ndo, ", %s", etheraddr_string(tptr+4)));
+ ND_PRINT((ndo, ", %s", etheraddr_string(ndo, tptr+4)));
break;
default:
while ((len > 0) && (bp < ep)) {
ND_TCHECK2(bp[0], 4);
- ND_PRINT((ndo, "\n\tneighbor %s", ipaddr_string(bp)));
+ ND_PRINT((ndo, "\n\tneighbor %s", ipaddr_string(ndo, bp)));
bp += 4; len -= 4;
}
return (0);
len -= 7;
while (--ncount >= 0) {
ND_TCHECK2(bp[0], 4);
- ND_PRINT((ndo, " [%s ->", ipaddr_string(laddr)));
+ ND_PRINT((ndo, " [%s ->", ipaddr_string(ndo, laddr)));
ND_PRINT((ndo, " %s, (%d/%d)]",
- ipaddr_string(bp), metric, thresh));
+ ipaddr_string(ndo, bp), metric, thresh));
bp += 4;
len -= 4;
}
ncount = *bp++;
len -= 8;
while (--ncount >= 0 && (len >= 4) && (bp + 4) <= ep) {
- ND_PRINT((ndo, " [%s -> ", ipaddr_string(laddr)));
- ND_PRINT((ndo, "%s (%d/%d", ipaddr_string(bp),
+ ND_PRINT((ndo, " [%s -> ", ipaddr_string(ndo, laddr)));
+ ND_PRINT((ndo, "%s (%d/%d", ipaddr_string(ndo, bp),
metric, thresh));
if (flags & DVMRP_NF_TUNNEL)
ND_PRINT((ndo, "/tunnel"));
register const u_char *bp)
{
ND_TCHECK2(bp[0], 12);
- ND_PRINT((ndo, " src %s grp %s", ipaddr_string(bp), ipaddr_string(bp + 4)));
+ ND_PRINT((ndo, " src %s grp %s", ipaddr_string(ndo, bp), ipaddr_string(ndo, bp + 4)));
bp += 8;
ND_PRINT((ndo, " timer "));
relts_print(ndo, EXTRACT_32BITS(bp));
register const u_char *bp)
{
ND_TCHECK2(bp[0], 8);
- ND_PRINT((ndo, " src %s grp %s", ipaddr_string(bp), ipaddr_string(bp + 4)));
+ ND_PRINT((ndo, " src %s grp %s", ipaddr_string(ndo, bp), ipaddr_string(ndo, bp + 4)));
return (0);
trunc:
return (-1);
register const u_char *bp)
{
ND_TCHECK2(bp[0], 8);
- ND_PRINT((ndo, " src %s grp %s", ipaddr_string(bp), ipaddr_string(bp + 4)));
+ ND_PRINT((ndo, " src %s grp %s", ipaddr_string(ndo, bp), ipaddr_string(ndo, bp + 4)));
return (0);
trunc:
return (-1);
distances = *cp++;
ND_PRINT((ndo, " %s %s ",
gateways < (int)egp->egp_intgw ? "int" : "ext",
- ipaddr_string(&addr)));
+ ipaddr_string(ndo, &addr)));
comma = "";
ND_PRINT((ndo, "("));
addr |= (u_int32_t)*cp++ << 16;
addr |= (u_int32_t)*cp++ << 8;
}
- ND_PRINT((ndo, " %s", ipaddr_string(&addr)));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, &addr)));
}
}
ND_PRINT((ndo, ")"));
ND_PRINT((ndo, " state:%s", egp_status_updown[status]));
else
ND_PRINT((ndo, " [status %d]", status));
- ND_PRINT((ndo, " net:%s", ipaddr_string(&egp->egp_sourcenet)));
+ ND_PRINT((ndo, " net:%s", ipaddr_string(ndo, &egp->egp_sourcenet)));
break;
case EGPT_UPDATE:
else
ND_PRINT((ndo, " [status %d]", status));
ND_PRINT((ndo, " %s int %d ext %d",
- ipaddr_string(&egp->egp_sourcenet),
+ ipaddr_string(ndo, &egp->egp_sourcenet),
egp->egp_intgw,
egp->egp_extgw));
if (ndo->ndo_vflag)
memcpy(prefix,&tlv_ptr.eigrp_tlv_ip_int->destination,byte_length);
ND_PRINT((ndo, "\n\t IPv4 prefix: %15s/%u, nexthop: ",
- ipaddr_string(prefix),
+ ipaddr_string(ndo, prefix),
bit_length));
if (EXTRACT_32BITS(&tlv_ptr.eigrp_tlv_ip_int->nexthop) == 0)
ND_PRINT((ndo, "self"));
else
- ND_PRINT((ndo, "%s",ipaddr_string(&tlv_ptr.eigrp_tlv_ip_int->nexthop)));
+ ND_PRINT((ndo, "%s",ipaddr_string(ndo, &tlv_ptr.eigrp_tlv_ip_int->nexthop)));
ND_PRINT((ndo, "\n\t delay %u ms, bandwidth %u Kbps, mtu %u, hop %u, reliability %u, load %u",
(EXTRACT_32BITS(&tlv_ptr.eigrp_tlv_ip_int->delay)/100),
memcpy(prefix,&tlv_ptr.eigrp_tlv_ip_ext->destination,byte_length);
ND_PRINT((ndo, "\n\t IPv4 prefix: %15s/%u, nexthop: ",
- ipaddr_string(prefix),
+ ipaddr_string(ndo, prefix),
bit_length));
if (EXTRACT_32BITS(&tlv_ptr.eigrp_tlv_ip_ext->nexthop) == 0)
ND_PRINT((ndo, "self"));
else
- ND_PRINT((ndo, "%s",ipaddr_string(&tlv_ptr.eigrp_tlv_ip_ext->nexthop)));
+ ND_PRINT((ndo, "%s",ipaddr_string(ndo, &tlv_ptr.eigrp_tlv_ip_ext->nexthop)));
ND_PRINT((ndo, "\n\t origin-router %s, origin-as %u, origin-proto %s, flags [0x%02x], tag 0x%08x, metric %u",
- ipaddr_string(tlv_ptr.eigrp_tlv_ip_ext->origin_router),
+ ipaddr_string(ndo, tlv_ptr.eigrp_tlv_ip_ext->origin_router),
EXTRACT_32BITS(tlv_ptr.eigrp_tlv_ip_ext->origin_as),
tok2str(eigrp_ext_proto_id_values,"unknown",tlv_ptr.eigrp_tlv_ip_ext->proto_id),
tlv_ptr.eigrp_tlv_ip_ext->flags,
ep = (const struct ether_header *)bp;
ND_PRINT((ndo, "%s > %s",
- etheraddr_string(ESRC(ep)),
- etheraddr_string(EDST(ep))));
+ etheraddr_string(ndo, ESRC(ep)),
+ etheraddr_string(ndo, EDST(ep))));
ether_type = EXTRACT_16BITS(&ep->ether_type);
if (!ndo->ndo_qflag) {
{
const char *srcname, *dstname;
- srcname = etheraddr_string(fsrc);
- dstname = etheraddr_string(fdst);
+ srcname = etheraddr_string(ndo, fsrc);
+ dstname = etheraddr_string(ndo, fdst);
if (ndo->ndo_vflag)
ND_PRINT((ndo, "%02x %s %s %d: ",
#include <stdio.h>
#include <string.h>
-#include "addrtoname.h"
#include "interface.h"
+#include "addrtoname.h"
#include "ethertype.h"
#include "nlpid.h"
#include "extract.h"
{
u_int32_t lat, lon;
- ND_PRINT((ndo, "GN_ADDR:%s ", linkaddr_string (bp, 0, GEONET_ADDR_LEN)));
+ ND_PRINT((ndo, "GN_ADDR:%s ", linkaddr_string (ndo, bp, 0, GEONET_ADDR_LEN)));
lat = EXTRACT_32BITS(bp+12);
ND_PRINT((ndo, "lat:%d ", lat));
void
geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int length)
{
- ND_PRINT((ndo, "GeoNet src:%s; ", etheraddr_string(eth+6)));
+ ND_PRINT((ndo, "GeoNet src:%s; ", etheraddr_string(ndo, eth+6)));
if (length >= 36) {
/* Process Common Header */
ND_PRINT((ndo, "[reserved=%d!] ", hp->hsrp_reserved));
}
ND_TCHECK(hp->hsrp_virtaddr);
- ND_PRINT((ndo, "addr=%s", ipaddr_string(&hp->hsrp_virtaddr)));
+ ND_PRINT((ndo, "addr=%s", ipaddr_string(ndo, &hp->hsrp_virtaddr)));
if (ndo->ndo_vflag) {
ND_PRINT((ndo, " hellotime="));
relts_print(ndo, hp->hsrp_hellotime);
ND_TCHECK(dp->icmp_ip.ip_p);
(void)snprintf(buf, sizeof(buf),
"%s protocol %d unreachable",
- ipaddr_string(&dp->icmp_ip.ip_dst),
+ ipaddr_string(ndo, &dp->icmp_ip.ip_dst),
dp->icmp_ip.ip_p);
break;
case IPPROTO_TCP:
(void)snprintf(buf, sizeof(buf),
"%s tcp port %s unreachable",
- ipaddr_string(&oip->ip_dst),
+ ipaddr_string(ndo, &oip->ip_dst),
tcpport_string(dport));
break;
case IPPROTO_UDP:
(void)snprintf(buf, sizeof(buf),
"%s udp port %s unreachable",
- ipaddr_string(&oip->ip_dst),
+ ipaddr_string(ndo, &oip->ip_dst),
udpport_string(dport));
break;
default:
(void)snprintf(buf, sizeof(buf),
"%s protocol %d port %d unreachable",
- ipaddr_string(&oip->ip_dst),
+ ipaddr_string(ndo, &oip->ip_dst),
oip->ip_p, dport);
break;
}
if (mtu) {
(void)snprintf(buf, sizeof(buf),
"%s unreachable - need to frag (mtu %d)",
- ipaddr_string(&dp->icmp_ip.ip_dst), mtu);
+ ipaddr_string(ndo, &dp->icmp_ip.ip_dst), mtu);
} else {
(void)snprintf(buf, sizeof(buf),
"%s unreachable - need to frag",
- ipaddr_string(&dp->icmp_ip.ip_dst));
+ ipaddr_string(ndo, &dp->icmp_ip.ip_dst));
}
}
break;
fmt = tok2str(unreach2str, "#%d %%s unreachable",
dp->icmp_code);
(void)snprintf(buf, sizeof(buf), fmt,
- ipaddr_string(&dp->icmp_ip.ip_dst));
+ ipaddr_string(ndo, &dp->icmp_ip.ip_dst));
break;
}
break;
fmt = tok2str(type2str, "redirect-#%d %%s to net %%s",
dp->icmp_code);
(void)snprintf(buf, sizeof(buf), fmt,
- ipaddr_string(&dp->icmp_ip.ip_dst),
- ipaddr_string(&dp->icmp_gwaddr));
+ ipaddr_string(ndo, &dp->icmp_ip.ip_dst),
+ ipaddr_string(ndo, &dp->icmp_gwaddr));
break;
case ICMP_ROUTERADVERT:
while (num-- > 0) {
ND_TCHECK(*idp);
(void)snprintf(cp, sizeof(buf) - (cp - buf), " {%s %u}",
- ipaddr_string(&idp->ird_addr),
+ ipaddr_string(ndo, &idp->ird_addr),
EXTRACT_32BITS(&idp->ird_pref));
cp = buf + strlen(buf);
++idp;
case ICMP6_DST_UNREACH_NOROUTE: /* fall through */
case ICMP6_DST_UNREACH_ADMIN:
case ICMP6_DST_UNREACH_ADDR:
- ND_PRINT((ndo," %s",ip6addr_string(&oip->ip6_dst)));
+ ND_PRINT((ndo," %s",ip6addr_string(ndo, &oip->ip6_dst)));
break;
case ICMP6_DST_UNREACH_BEYONDSCOPE:
ND_PRINT((ndo," %s, source address %s",
- ip6addr_string(&oip->ip6_dst),
- ip6addr_string(&oip->ip6_src)));
+ ip6addr_string(ndo, &oip->ip6_dst),
+ ip6addr_string(ndo, &oip->ip6_src)));
break;
case ICMP6_DST_UNREACH_NOPORT:
if ((ouh = get_upperlayer(ndo, (u_char *)oip, &prot))
switch (prot) {
case IPPROTO_TCP:
ND_PRINT((ndo,", %s tcp port %s",
- ip6addr_string(&oip->ip6_dst),
+ ip6addr_string(ndo, &oip->ip6_dst),
tcpport_string(dport)));
break;
case IPPROTO_UDP:
ND_PRINT((ndo,", %s udp port %s",
- ip6addr_string(&oip->ip6_dst),
+ ip6addr_string(ndo, &oip->ip6_dst),
udpport_string(dport)));
break;
default:
ND_PRINT((ndo,", %s protocol %d port %d unreachable",
- ip6addr_string(&oip->ip6_dst),
+ ip6addr_string(ndo, &oip->ip6_dst),
oip->ip6_nxt, dport));
break;
}
switch (dp->icmp6_code) {
case ICMP6_TIME_EXCEED_TRANSIT:
ND_PRINT((ndo," for %s",
- ip6addr_string(&oip->ip6_dst)));
+ ip6addr_string(ndo, &oip->ip6_dst)));
break;
case ICMP6_TIME_EXCEED_REASSEMBLY:
ND_PRINT((ndo," (reassembly)"));
struct nd_neighbor_solicit *p;
p = (struct nd_neighbor_solicit *)dp;
ND_TCHECK(p->nd_ns_target);
- ND_PRINT((ndo,", who has %s", ip6addr_string(&p->nd_ns_target)));
+ ND_PRINT((ndo,", who has %s", ip6addr_string(ndo, &p->nd_ns_target)));
if (ndo->ndo_vflag) {
#define NDSOLLEN 24
icmp6_opt_print(ndo, (const u_char *)dp + NDSOLLEN,
p = (struct nd_neighbor_advert *)dp;
ND_TCHECK(p->nd_na_target);
ND_PRINT((ndo,", tgt is %s",
- ip6addr_string(&p->nd_na_target)));
+ ip6addr_string(ndo, &p->nd_na_target)));
if (ndo->ndo_vflag) {
ND_PRINT((ndo,", Flags [%s]",
bittok2str(icmp6_nd_na_flag_values,
case ND_REDIRECT:
#define RDR(i) ((struct nd_redirect *)(i))
ND_TCHECK(RDR(dp)->nd_rd_dst);
- ND_PRINT((ndo,", %s", getname6((const u_char *)&RDR(dp)->nd_rd_dst)));
+ ND_PRINT((ndo,", %s", getname6(ndo, (const u_char *)&RDR(dp)->nd_rd_dst)));
ND_TCHECK(RDR(dp)->nd_rd_target);
ND_PRINT((ndo," to %s",
- getname6((const u_char*)&RDR(dp)->nd_rd_target)));
+ getname6(ndo, (const u_char*)&RDR(dp)->nd_rd_target)));
#define REDIRECTLEN 40
if (ndo->ndo_vflag) {
icmp6_opt_print(ndo, (const u_char *)dp + REDIRECTLEN,
in6 = (struct in6_addr *)(dp + 1);
for (; (u_char *)in6 < cp; in6++) {
ND_TCHECK(*in6);
- ND_PRINT((ndo,", %s", ip6addr_string(in6)));
+ ND_PRINT((ndo,", %s", ip6addr_string(ndo, in6)));
}
}
break;
opp = (struct nd_opt_prefix_info *)op;
ND_TCHECK(opp->nd_opt_pi_prefix);
ND_PRINT((ndo,"%s/%u%s, Flags [%s], valid time %s",
- ip6addr_string(&opp->nd_opt_pi_prefix),
+ ip6addr_string(ndo, &opp->nd_opt_pi_prefix),
opp->nd_opt_pi_prefix_len,
(op->nd_opt_len != 4) ? "badlen" : "",
bittok2str(icmp6_opt_pi_flag_values, "none", opp->nd_opt_pi_flags_reserved),
for (i = 0; i < l; i++) {
ND_TCHECK(oprd->nd_opt_rdnss_addr[i]);
ND_PRINT((ndo," addr: %s",
- ip6addr_string(&oprd->nd_opt_rdnss_addr[i])));
+ ip6addr_string(ndo, &oprd->nd_opt_rdnss_addr[i])));
}
break;
case ND_OPT_DNSSL:
default:
goto trunc;
}
- ND_PRINT((ndo," %s/%u", ip6addr_string(&in6),
+ ND_PRINT((ndo," %s/%u", ip6addr_string(ndo, &in6),
opri->nd_opt_rti_prefixlen));
ND_PRINT((ndo,", pref=%s", get_rtpref(opri->nd_opt_rti_flags)));
ND_PRINT((ndo,", lifetime=%s",
return;
ND_PRINT((ndo,"max resp delay: %d ", EXTRACT_16BITS(&mp->mld6_maxdelay)));
- ND_PRINT((ndo,"addr: %s", ip6addr_string(&mp->mld6_addr)));
+ ND_PRINT((ndo,"addr: %s", ip6addr_string(ndo, &mp->mld6_addr)));
}
static void
return;
}
ND_TCHECK2(bp[group + 4], sizeof(struct in6_addr));
- ND_PRINT((ndo," [gaddr %s", ip6addr_string(&bp[group + 4])));
+ ND_PRINT((ndo," [gaddr %s", ip6addr_string(ndo, &bp[group + 4])));
ND_PRINT((ndo," %s", tok2str(mldv2report2str, " [v2-report-#%d]",
bp[group])));
nsrcs = (bp[group + 2] << 8) + bp[group + 3];
for (j = 0; j < nsrcs; j++) {
ND_TCHECK2(bp[group + 20 + j * sizeof(struct in6_addr)],
sizeof(struct in6_addr));
- ND_PRINT((ndo," %s", ip6addr_string(&bp[group + 20 + j * sizeof(struct in6_addr)])));
+ ND_PRINT((ndo," %s", ip6addr_string(ndo, &bp[group + 20 + j * sizeof(struct in6_addr)])));
}
ND_PRINT((ndo," }"));
}
ND_PRINT((ndo," [max resp delay=%d]", mrt));
}
ND_TCHECK2(bp[8], sizeof(struct in6_addr));
- ND_PRINT((ndo," [gaddr %s", ip6addr_string(&bp[8])));
+ ND_PRINT((ndo," [gaddr %s", ip6addr_string(ndo, &bp[8])));
if (ndo->ndo_vflag) {
ND_TCHECK(bp[25]);
for (i = 0; i < nsrcs; i++) {
ND_TCHECK2(bp[28 + i * sizeof(struct in6_addr)],
sizeof(struct in6_addr));
- ND_PRINT((ndo," %s", ip6addr_string(&bp[28 + i * sizeof(struct in6_addr)])));
+ ND_PRINT((ndo," %s", ip6addr_string(ndo, &bp[28 + i * sizeof(struct in6_addr)])));
}
ND_PRINT((ndo," }"));
} else
break;
}
ND_PRINT((ndo,", subject=%s",
- getname6((const u_char *)(ni6 + 1))));
+ getname6(ndo, (const u_char *)(ni6 + 1))));
break;
case ICMP6_NI_SUBJ_FQDN:
ND_PRINT((ndo,", subject=DNS name"));
break;
}
ND_PRINT((ndo,", subject=%s",
- getname((const u_char *)(ni6 + 1))));
+ getname(ndo, (const u_char *)(ni6 + 1))));
break;
default:
ND_PRINT((ndo,", unknown subject"));
while (i < siz) {
if (i + sizeof(struct in6_addr) + sizeof(int32_t) > siz)
break;
- ND_PRINT((ndo," %s", getname6(bp + i)));
+ ND_PRINT((ndo," %s", getname6(ndo, bp + i)));
i += sizeof(struct in6_addr);
ND_PRINT((ndo,"(%d)", (int32_t)EXTRACT_32BITS(bp + i)));
i += sizeof(int32_t);
}
ND_PRINT((ndo, "mtrace %u: %s to %s reply-to %s",
TR_GETQID(EXTRACT_32BITS(&tr->tr_rttlqid)),
- ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
- ipaddr_string(&tr->tr_raddr)));
+ ipaddr_string(ndo, &tr->tr_src), ipaddr_string(ndo, &tr->tr_dst),
+ ipaddr_string(ndo, &tr->tr_raddr)));
if (IN_CLASSD(EXTRACT_32BITS(&tr->tr_raddr)))
ND_PRINT((ndo, " with-ttl %d", TR_GETTTL(EXTRACT_32BITS(&tr->tr_rttlqid))));
return;
}
ND_PRINT((ndo, "mresp %lu: %s to %s reply-to %s",
(u_long)TR_GETQID(EXTRACT_32BITS(&tr->tr_rttlqid)),
- ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
- ipaddr_string(&tr->tr_raddr)));
+ ipaddr_string(ndo, &tr->tr_src), ipaddr_string(ndo, &tr->tr_dst),
+ ipaddr_string(ndo, &tr->tr_raddr)));
if (IN_CLASSD(EXTRACT_32BITS(&tr->tr_raddr)))
ND_PRINT((ndo, " with-ttl %d", TR_GETTTL(EXTRACT_32BITS(&tr->tr_rttlqid))));
return;
return;
}
ND_TCHECK2(bp[group+4], 4);
- ND_PRINT((ndo, " [gaddr %s", ipaddr_string(&bp[group+4])));
+ ND_PRINT((ndo, " [gaddr %s", ipaddr_string(ndo, &bp[group+4])));
ND_PRINT((ndo, " %s", tok2str(igmpv3report2str, " [v3-report-#%d]",
bp[group])));
nsrcs = EXTRACT_16BITS(&bp[group+2]);
ND_PRINT((ndo, " {"));
for (j=0; j<nsrcs; j++) {
ND_TCHECK2(bp[group+8+(j<<2)], 4);
- ND_PRINT((ndo, " %s", ipaddr_string(&bp[group+8+(j<<2)])));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, &bp[group+8+(j<<2)])));
}
ND_PRINT((ndo, " }"));
}
ND_TCHECK2(bp[4], 4);
if (EXTRACT_32BITS(&bp[4]) == 0)
return;
- ND_PRINT((ndo, " [gaddr %s", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, " [gaddr %s", ipaddr_string(ndo, &bp[4])));
ND_TCHECK2(bp[10], 2);
nsrcs = EXTRACT_16BITS(&bp[10]);
if (nsrcs > 0) {
ND_PRINT((ndo, " {"));
for (i=0; i<nsrcs; i++) {
ND_TCHECK2(bp[12+(i<<2)], 4);
- ND_PRINT((ndo, " %s", ipaddr_string(&bp[12+(i<<2)])));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, &bp[12+(i<<2)])));
}
ND_PRINT((ndo, " }"));
} else
ND_PRINT((ndo, " v1"));
ND_TCHECK2(bp[4], 4);
if (EXTRACT_32BITS(&bp[4]))
- ND_PRINT((ndo, " [gaddr %s]", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, " [gaddr %s]", ipaddr_string(ndo, &bp[4])));
if (len != 8)
ND_PRINT((ndo, " [len %d]", len));
}
break;
case 0x12:
ND_TCHECK2(bp[4], 4);
- ND_PRINT((ndo, "igmp v1 report %s", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, "igmp v1 report %s", ipaddr_string(ndo, &bp[4])));
if (len != 8)
ND_PRINT((ndo, " [len %d]", len));
break;
case 0x16:
ND_TCHECK2(bp[4], 4);
- ND_PRINT((ndo, "igmp v2 report %s", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, "igmp v2 report %s", ipaddr_string(ndo, &bp[4])));
break;
case 0x22:
ND_PRINT((ndo, "igmp v3 report"));
break;
case 0x17:
ND_TCHECK2(bp[4], 4);
- ND_PRINT((ndo, "igmp leave %s", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, "igmp leave %s", ipaddr_string(ndo, &bp[4])));
break;
case 0x13:
ND_PRINT((ndo, "igmp dvmrp"));
#include <string.h>
-#include "addrtoname.h"
#include "interface.h"
+#include "addrtoname.h"
#include "extract.h" /* must come after interface.h */
#include "ip.h"
ND_PRINT((ndo, " [bad ptr %u]", cp[2]));
for (len = 3; len < length; len += 4) {
- ND_PRINT((ndo, " %s", ipaddr_string(&cp[len])));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, &cp[len])));
if (ptr > len)
ND_PRINT((ndo, ","));
}
if (ptr == len)
type = " ^ ";
ND_PRINT((ndo, "%s%d@%s", type, EXTRACT_32BITS(&cp[len+hoplen-4]),
- hoplen!=8 ? "" : ipaddr_string(&cp[len])));
+ hoplen!=8 ? "" : ipaddr_string(ndo, &cp[len])));
type = " ";
}
if (ndo->ndo_packettype == PT_CARP) {
if (ndo->ndo_vflag)
ND_PRINT((ndo, "carp %s > %s: ",
- ipaddr_string(&ipds->ip->ip_src),
- ipaddr_string(&ipds->ip->ip_dst)));
+ ipaddr_string(ndo, &ipds->ip->ip_src),
+ ipaddr_string(ndo, &ipds->ip->ip_dst)));
carp_print(ndo, ipds->cp, ipds->len, ipds->ip->ip_ttl);
} else {
if (ndo->ndo_vflag)
ND_PRINT((ndo, "vrrp %s > %s: ",
- ipaddr_string(&ipds->ip->ip_src),
- ipaddr_string(&ipds->ip->ip_dst)));
+ ipaddr_string(ndo, &ipds->ip->ip_src),
+ ipaddr_string(ndo, &ipds->ip->ip_dst)));
vrrp_print(ndo, ipds->cp, ipds->len,
(const u_char *)ipds->ip, ipds->ip->ip_ttl);
}
if (ipds->nh != IPPROTO_TCP && ipds->nh != IPPROTO_UDP &&
ipds->nh != IPPROTO_SCTP && ipds->nh != IPPROTO_DCCP) {
ND_PRINT((ndo, "%s > %s: ",
- ipaddr_string(&ipds->ip->ip_src),
- ipaddr_string(&ipds->ip->ip_dst)));
+ ipaddr_string(ndo, &ipds->ip->ip_src),
+ ipaddr_string(ndo, &ipds->ip->ip_dst)));
}
ip_print_demux(ndo, ipds);
} else {
* and the protocol.
*/
if (ipds->off & 0x1fff) {
- ND_PRINT((ndo, "%s > %s:", ipaddr_string(&ipds->ip->ip_src),
- ipaddr_string(&ipds->ip->ip_dst)));
+ ND_PRINT((ndo, "%s > %s:", ipaddr_string(ndo, &ipds->ip->ip_src),
+ ipaddr_string(ndo, &ipds->ip->ip_dst)));
if (!ndo->ndo_nflag && (proto = getprotobynumber(ipds->ip->ip_p)) != NULL)
ND_PRINT((ndo, " %s", proto->p_name));
else
if (cp == (const u_char *)(ip6 + 1) &&
nh != IPPROTO_TCP && nh != IPPROTO_UDP &&
nh != IPPROTO_DCCP && nh != IPPROTO_SCTP) {
- ND_PRINT((ndo, "%s > %s: ", ip6addr_string(&ip6->ip6_src),
- ip6addr_string(&ip6->ip6_dst)));
+ ND_PRINT((ndo, "%s > %s: ", ip6addr_string(ndo, &ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_dst)));
}
switch (nh) {
ND_PRINT((ndo, "(homeaddr: invalid len %d)", bp[i + 1]));
goto trunc;
}
- ND_PRINT((ndo, "(homeaddr: %s", ip6addr_string(&bp[i + 2])));
+ ND_PRINT((ndo, "(homeaddr: %s", ip6addr_string(ndo, &bp[i + 2])));
if (bp[i + 1] > IP6OPT_HOMEADDR_MINLEN - 2) {
ip6_sopt_print(ndo, &bp[i + IP6OPT_HOMEADDR_MINLEN],
(optlen - IP6OPT_HOMEADDR_MINLEN));
{
const char *srcname, *dstname;
- srcname = etheraddr_string(ipfcsrc);
- dstname = etheraddr_string(ipfcdst);
+ srcname = etheraddr_string(ndo, ipfcsrc);
+ dstname = etheraddr_string(ndo, ipfcdst);
/*
* XXX - show the upper 16 bits? Do so only if "vflag" is set?
};
static inline void
-ipnet_hdr_print(struct netdissect_options *ndo, const u_char *bp, u_int length)
+ipnet_hdr_print(netdissect_options *ndo, const u_char *bp, u_int length)
{
const ipnet_hdr_t *hdr;
hdr = (const ipnet_hdr_t *)bp;
}
static void
-ipnet_print(struct netdissect_options *ndo, const u_char *p, u_int length, u_int caplen)
+ipnet_print(netdissect_options *ndo, const u_char *p, u_int length, u_int caplen)
{
ipnet_hdr_t *hdr;
* is the number of bytes actually captured.
*/
u_int
-ipnet_if_print(struct netdissect_options *ndo,
+ipnet_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
ipnet_print(ndo, p, h->len, h->caplen);
/*
* returns false if we run out of data buffer
*/
-static int ike_show_somedata(struct netdissect_options *ndo,
+static int ike_show_somedata(netdissect_options *ndo,
const u_char *cp, const u_char *ep)
{
/* there is too much data, just show some of it */
if (len < 4)
ND_PRINT((ndo," len=%d [bad: < 4]", len));
else
- ND_PRINT((ndo," len=%d %s", len, ipaddr_string(data)));
+ ND_PRINT((ndo," len=%d %s", len, ipaddr_string(ndo, data)));
len = 0;
break;
case IPSECDOI_ID_FQDN:
else {
mask = data + sizeof(struct in_addr);
ND_PRINT((ndo," len=%d %s/%u.%u.%u.%u", len,
- ipaddr_string(data),
+ ipaddr_string(ndo, data),
mask[0], mask[1], mask[2], mask[3]));
}
len = 0;
if (len < 16)
ND_PRINT((ndo," len=%d [bad: < 16]", len));
else
- ND_PRINT((ndo," len=%d %s", len, ip6addr_string(data)));
+ ND_PRINT((ndo," len=%d %s", len, ip6addr_string(ndo, data)));
len = 0;
break;
case IPSECDOI_ID_IPV6_ADDR_SUBNET:
mask = (u_char *)(data + sizeof(struct in6_addr));
/*XXX*/
ND_PRINT((ndo," len=%d %s/0x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", len,
- ip6addr_string(data),
+ ip6addr_string(ndo, data),
mask[0], mask[1], mask[2], mask[3],
mask[4], mask[5], mask[6], mask[7],
mask[8], mask[9], mask[10], mask[11],
ND_PRINT((ndo," len=%d [bad: < 8]", len));
else {
ND_PRINT((ndo," len=%d %s-%s", len,
- ipaddr_string(data),
- ipaddr_string(data + sizeof(struct in_addr))));
+ ipaddr_string(ndo, data),
+ ipaddr_string(ndo, data + sizeof(struct in_addr))));
}
len = 0;
break;
ND_PRINT((ndo," len=%d [bad: < 32]", len));
else {
ND_PRINT((ndo," len=%d %s-%s", len,
- ip6addr_string(data),
- ip6addr_string(data + sizeof(struct in6_addr))));
+ ip6addr_string(ndo, data),
+ ip6addr_string(ndo, data + sizeof(struct in6_addr))));
}
len = 0;
break;
li -= netal;
if (netal == 0)
- ND_PRINT((ndo, "\n\t %s", etheraddr_string(snpa)));
+ ND_PRINT((ndo, "\n\t %s", etheraddr_string(ndo, snpa)));
else
ND_PRINT((ndo, "\n\t %s", isonsap_string(neta, netal)));
break;
if (prefix_len == -1)
ND_PRINT((ndo, "%sIPv4 prefix: %s mask %s",
ident,
- ipaddr_string((tlv_ip_reach->prefix)),
- ipaddr_string((tlv_ip_reach->mask))));
+ ipaddr_string(ndo, (tlv_ip_reach->prefix)),
+ ipaddr_string(ndo, (tlv_ip_reach->mask))));
else
ND_PRINT((ndo, "%sIPv4 prefix: %15s/%u",
ident,
- ipaddr_string((tlv_ip_reach->prefix)),
+ ipaddr_string(ndo, (tlv_ip_reach->prefix)),
prefix_len));
ND_PRINT((ndo, ", Distribution: %s, Metric: %u, %s",
case ISIS_SUBTLV_EXT_IS_REACH_IPV4_INTF_ADDR:
case ISIS_SUBTLV_EXT_IS_REACH_IPV4_NEIGHBOR_ADDR:
if (subl >= sizeof(struct in_addr))
- ND_PRINT((ndo, ", %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, ", %s", ipaddr_string(ndo, tptr)));
break;
case ISIS_SUBTLV_EXT_IS_REACH_MAX_LINK_BW :
case ISIS_SUBTLV_EXT_IS_REACH_RESERVABLE_BW:
if (afi == AF_INET)
ND_PRINT((ndo, "%sIPv4 prefix: %15s/%u",
ident,
- ipaddr_string(prefix),
+ ipaddr_string(ndo, prefix),
bit_length));
#ifdef INET6
if (afi == AF_INET6)
ND_PRINT((ndo, "%sIPv6 prefix: %s/%u",
ident,
- ip6addr_string(prefix),
+ ip6addr_string(ndo, prefix),
bit_length));
#endif
goto trunctlv;
ND_PRINT((ndo, "\n\t IPv6 interface address: %s",
- ip6addr_string(tptr)));
+ ip6addr_string(ndo, tptr)));
tptr += sizeof(struct in6_addr);
tmp -= sizeof(struct in6_addr);
case ISIS_TLV_TE_ROUTER_ID:
if (!ND_TTEST2(*pptr, sizeof(struct in_addr)))
goto trunctlv;
- ND_PRINT((ndo, "\n\t Traffic Engineering Router ID: %s", ipaddr_string(pptr)));
+ ND_PRINT((ndo, "\n\t Traffic Engineering Router ID: %s", ipaddr_string(ndo, pptr)));
break;
case ISIS_TLV_IPADDR:
while (tmp>=sizeof(struct in_addr)) {
if (!ND_TTEST2(*tptr, sizeof(struct in_addr)))
goto trunctlv;
- ND_PRINT((ndo, "\n\t IPv4 interface address: %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, "\n\t IPv4 interface address: %s", ipaddr_string(ndo, tptr)));
tptr += sizeof(struct in_addr);
tmp -= sizeof(struct in_addr);
}
break;
if (!ND_TTEST2(*tptr, sizeof(struct in_addr)))
goto trunctlv;
- ND_PRINT((ndo, "\n\t IPv4 interface address: %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, "\n\t IPv4 interface address: %s", ipaddr_string(ndo, tptr)));
tptr+=sizeof(struct in_addr);
tmp-=sizeof(struct in_addr);
break;
if (!ND_TTEST2(*tptr, sizeof(struct in_addr)))
goto trunctlv;
- ND_PRINT((ndo, "\n\t IPv4 neighbor address: %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, "\n\t IPv4 neighbor address: %s", ipaddr_string(ndo, tptr)));
tptr+=sizeof(struct in_addr);
tmp-=sizeof(struct in_addr);
tok2str(juniper_ipsec_type_values,"Unknown",ih->type),
ih->type,
EXTRACT_32BITS(&ih->spi),
- ipaddr_string(&ih->src_ip),
- ipaddr_string(&ih->dst_ip),
+ ipaddr_string(ndo, &ih->src_ip),
+ ipaddr_string(ndo, &ih->dst_ip),
l2info.length));
} else {
ND_PRINT((ndo, "ES SA, index %u, ttl %u type %s (%u), length %u\n",
case LDP_TLV_IPV4_TRANSPORT_ADDR:
TLV_TCHECK(4);
- ND_PRINT((ndo, "\n\t IPv4 Transport Address: %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, "\n\t IPv4 Transport Address: %s", ipaddr_string(ndo, tptr)));
break;
#ifdef INET6
case LDP_TLV_IPV6_TRANSPORT_ADDR:
TLV_TCHECK(16);
- ND_PRINT((ndo, "\n\t IPv6 Transport Address: %s", ip6addr_string(tptr)));
+ ND_PRINT((ndo, "\n\t IPv6 Transport Address: %s", ip6addr_string(ndo, tptr)));
break;
#endif
case LDP_TLV_CONFIG_SEQ_NUMBER:
case AFNUM_INET:
while(tlv_tlen >= sizeof(struct in_addr)) {
ND_TCHECK2(*tptr, sizeof(struct in_addr));
- ND_PRINT((ndo, " %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, tptr)));
tlv_tlen-=sizeof(struct in_addr);
tptr+=sizeof(struct in_addr);
}
case AFNUM_INET6:
while(tlv_tlen >= sizeof(struct in6_addr)) {
ND_TCHECK2(*tptr, sizeof(struct in6_addr));
- ND_PRINT((ndo, " %s", ip6addr_string(tptr)));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, tptr)));
tlv_tlen-=sizeof(struct in6_addr);
tptr+=sizeof(struct in6_addr);
}
pdu_len = EXTRACT_16BITS(&ldp_com_header->pdu_length);
ND_PRINT((ndo, "%sLDP, Label-Space-ID: %s:%u, pdu-length: %u",
(ndo->ndo_vflag < 1) ? "" : "\n\t",
- ipaddr_string(&ldp_com_header->lsr_id),
+ ipaddr_string(ndo, &ldp_com_header->lsr_id),
EXTRACT_16BITS(&ldp_com_header->label_space),
pdu_len));
ND_PRINT((ndo, "%s ", tok2str(llc_values, "Unknown DSAP 0x%02x", dsap)));
else
ND_PRINT((ndo, "%s > %s %s ",
- etheraddr_string(esrc),
- etheraddr_string(edst),
+ etheraddr_string(ndo, esrc),
+ etheraddr_string(ndo, edst),
tok2str(llc_values, "Unknown DSAP 0x%02x", dsap)));
} else {
if (esrc == NULL || edst == NULL)
tok2str(llc_values, "Unknown DSAP 0x%02x", dsap)));
else
ND_PRINT((ndo, "%s %s > %s %s ",
- etheraddr_string(esrc),
+ etheraddr_string(ndo, esrc),
tok2str(llc_values, "Unknown SSAP 0x%02x", ssap),
- etheraddr_string(edst),
+ etheraddr_string(ndo, edst),
tok2str(llc_values, "Unknown DSAP 0x%02x", dsap)));
}
}
}
static char *
-lldp_network_addr_print(const u_char *tptr, u_int len) {
+lldp_network_addr_print(netdissect_options *ndo, const u_char *tptr, u_int len) {
u_int8_t af;
static char buf[BUFSIZE];
- const char * (*pfunc)(const u_char *);
+ const char * (*pfunc)(netdissect_options *, const u_char *);
if (len < 1)
return NULL;
tok2str(af_values, "Unknown", af), af);
} else {
snprintf(buf, sizeof(buf), "AFI %s (%u): %s",
- tok2str(af_values, "Unknown", af), af, (*pfunc)(tptr+1));
+ tok2str(af_values, "Unknown", af), af, (*pfunc)(ndo, tptr+1));
}
return buf;
return 0;
}
- mgmt_addr = lldp_network_addr_print(tptr, mgmt_addr_len);
+ mgmt_addr = lldp_network_addr_print(ndo, tptr, mgmt_addr_len);
if (mgmt_addr == NULL) {
return 0;
}
if (tlv_len < 1+6) {
goto trunc;
}
- ND_PRINT((ndo, "%s", etheraddr_string(tptr + 1)));
+ ND_PRINT((ndo, "%s", etheraddr_string(ndo, tptr + 1)));
break;
case LLDP_CHASSIS_INTF_NAME_SUBTYPE: /* fall through */
break;
case LLDP_CHASSIS_NETWORK_ADDR_SUBTYPE:
- network_addr = lldp_network_addr_print(tptr+1, tlv_len-1);
+ network_addr = lldp_network_addr_print(ndo, tptr+1, tlv_len-1);
if (network_addr == NULL) {
goto trunc;
}
if (tlv_len < 1+6) {
goto trunc;
}
- ND_PRINT((ndo, "%s", etheraddr_string(tptr + 1)));
+ ND_PRINT((ndo, "%s", etheraddr_string(ndo, tptr + 1)));
break;
case LLDP_PORT_INTF_NAME_SUBTYPE: /* fall through */
break;
case LLDP_PORT_NETWORK_ADDR_SUBTYPE:
- network_addr = lldp_network_addr_print(tptr+1, tlv_len-1);
+ network_addr = lldp_network_addr_print(ndo, tptr+1, tlv_len-1);
if (network_addr == NULL) {
goto trunc;
}
case LMP_CTYPE_IPV4_LOC:
case LMP_CTYPE_IPV4_RMT:
ND_PRINT((ndo, "\n\t IPv4 Link ID: %s (0x%08x)",
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_32BITS(obj_tptr)));
break;
#ifdef INET6
case LMP_CTYPE_IPV6_LOC:
case LMP_CTYPE_IPV6_RMT:
ND_PRINT((ndo, "\n\t IPv6 Link ID: %s (0x%08x)",
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_32BITS(obj_tptr)));
break;
#endif
case LMP_CTYPE_LOC:
case LMP_CTYPE_RMT:
ND_PRINT((ndo, "\n\t Node ID: %s (0x%08x)",
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_32BITS(obj_tptr)));
break;
case LMP_CTYPE_IPV4:
ND_PRINT((ndo, "\n\t Local Link-ID: %s (0x%08x)"
"\n\t Remote Link-ID: %s (0x%08x)",
- ipaddr_string(obj_tptr+4),
+ ipaddr_string(ndo, obj_tptr+4),
EXTRACT_32BITS(obj_tptr+4),
- ipaddr_string(obj_tptr+8),
+ ipaddr_string(ndo, obj_tptr+8),
EXTRACT_32BITS(obj_tptr+8)));
break;
case LMP_CTYPE_UNMD:
ND_PRINT((ndo, "\n\t Local Interface ID: %s (0x%08x)"
"\n\t Remote Interface ID: %s (0x%08x)",
- ipaddr_string(obj_tptr+4),
+ ipaddr_string(ndo, obj_tptr+4),
EXTRACT_32BITS(obj_tptr+4),
- ipaddr_string(obj_tptr+8),
+ ipaddr_string(ndo, obj_tptr+8),
EXTRACT_32BITS(obj_tptr+8)));
total_subobj_len = lmp_obj_len - 16;
/* Decode pairs: <Interface_ID (4 bytes), Channel_status (4 bytes)> */
while (offset < (lmp_obj_len-(int)sizeof(struct lmp_object_header)) ) {
ND_PRINT((ndo, "\n\t Interface ID: %s (0x%08x)",
- ipaddr_string(obj_tptr+offset),
+ ipaddr_string(ndo, obj_tptr+offset),
EXTRACT_32BITS(obj_tptr+offset)));
ND_PRINT((ndo, "\n\t\t Active: %s (%u)", (EXTRACT_32BITS(obj_tptr+offset+4)>>31) ?
offset = 0;
while (offset < (lmp_obj_len-(int)sizeof(struct lmp_object_header)) ) {
ND_PRINT((ndo, "\n\t Interface ID: %s (0x%08x)",
- ipaddr_string(obj_tptr+offset),
+ ipaddr_string(ndo, obj_tptr+offset),
EXTRACT_32BITS(obj_tptr+offset)));
offset+=4;
}
EXTRACT_16BITS(obj_tptr+10)));
ND_PRINT((ndo, "\n\t Local Interface ID: %s (0x%08x)",
- ipaddr_string(obj_tptr+12),
+ ipaddr_string(ndo, obj_tptr+12),
EXTRACT_32BITS(obj_tptr+12)));
break;
goto corrupt;
/* forwarding address */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
- ND_PRINT((ndo, ", forwarding address %s", etheraddr_string(cp)));
+ ND_PRINT((ndo, ", forwarding address %s", etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* data */
ND_PRINT((ndo, ", data (%u octets)", len - 8));
subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv4 = \
(const struct lspping_tlv_targetfec_subtlv_ldp_ipv4_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t %s/%u",
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv4->prefix),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv4->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv4->prefix_len));
break;
subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv6 = \
(const struct lspping_tlv_targetfec_subtlv_ldp_ipv6_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t %s/%u",
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv6->prefix),
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv6->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_ldp_ipv6->prefix_len));
break;
#endif
subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4 = \
(const struct lspping_tlv_targetfec_subtlv_bgp_ipv4_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t %s/%u, sender-id %s",
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4->prefix),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4->prefix_len,
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4->sender_id)));
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv4->sender_id)));
break;
#ifdef INET6
subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6 = \
(const struct lspping_tlv_targetfec_subtlv_bgp_ipv6_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t %s/%u, sender-id %s",
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6->prefix),
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6->prefix_len,
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6->sender_id)));
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_bgp_ipv6->sender_id)));
break;
#endif
(const struct lspping_tlv_targetfec_subtlv_rsvp_ipv4_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x" \
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_endpoint),
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_sender),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_endpoint),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_sender),
EXTRACT_16BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->lsp_id),
EXTRACT_16BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_id),
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->extended_tunnel_id)));
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->extended_tunnel_id)));
break;
#ifdef INET6
(const struct lspping_tlv_targetfec_subtlv_rsvp_ipv6_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x" \
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_endpoint),
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_sender),
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_endpoint),
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_sender),
EXTRACT_16BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->lsp_id),
EXTRACT_16BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_id),
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->extended_tunnel_id)));
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->extended_tunnel_id)));
break;
#endif
(const struct lspping_tlv_targetfec_subtlv_l3vpn_ipv4_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t RD: %s, %s/%u",
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->rd),
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->prefix),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->prefix_len));
break;
(const struct lspping_tlv_targetfec_subtlv_l3vpn_ipv6_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t RD: %s, %s/%u",
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->rd),
- ip6addr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->prefix),
+ ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->prefix),
subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->prefix_len));
break;
#endif
(const struct lspping_tlv_targetfec_subtlv_l2vpn_vcid_old_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t Remote PE: %s" \
"\n\t VC-ID: 0x%08x, Encapsulation Type: %s (%u)",
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->remote_pe_address),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->remote_pe_address),
EXTRACT_32BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->vc_id),
tok2str(l2vpn_encaps_values,
"unknown",
(const struct lspping_tlv_targetfec_subtlv_l2vpn_vcid_t *)subtlv_tptr;
ND_PRINT((ndo, "\n\t Sender PE: %s, Remote PE: %s" \
"\n\t VC-ID: 0x%08x, Encapsulation Type: %s (%u)",
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->sender_pe_address),
- ipaddr_string(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->remote_pe_address),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->sender_pe_address),
+ ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->remote_pe_address),
EXTRACT_32BITS(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->vc_id),
tok2str(l2vpn_encaps_values,
"unknown",
case LSPPING_AFI_IPV4:
ND_PRINT((ndo, "\n\t Downstream IP: %s" \
"\n\t Downstream Interface IP: %s",
- ipaddr_string(tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
- ipaddr_string(tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_interface)));
+ ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
+ ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_interface)));
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
break;
case LSPPING_AFI_IPV6:
ND_PRINT((ndo, "\n\t Downstream IP: %s" \
"\n\t Downstream Interface IP: %s",
- ip6addr_string(tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_ip),
- ip6addr_string(tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_interface)));
+ ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_ip),
+ ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_interface)));
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
break;
case LSPPING_AFI_UNMB:
ND_PRINT((ndo, "\n\t Downstream IP: %s" \
"\n\t Downstream Interface Index: 0x%08x",
- ipaddr_string(tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
+ ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
EXTRACT_32BITS(tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_interface)));
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
tlen));
if (has_ap_ident) {
- ND_PRINT((ndo, "\n\tAP identity: %s", etheraddr_string(tptr)));
+ ND_PRINT((ndo, "\n\tAP identity: %s", etheraddr_string(ndo, tptr)));
tptr+=sizeof(const struct lwapp_transport_header)+6;
} else {
tptr+=sizeof(const struct lwapp_transport_header);
case 1: /* IPv4 */
if (l < 4)
return -1;
- ND_PRINT((ndo, " %s", ipaddr_string(p)));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, p)));
p += sizeof(struct in_addr);
break;
#ifdef INET6
case 2: /* IPv6 */
if (l < 16)
return -1;
- ND_PRINT((ndo, " %s", ip6addr_string(p)));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, p)));
p += sizeof(struct in6_addr);
break;
#endif
if (osp) {
ND_PRINT((ndo, "[S] "));
if (ndo->ndo_vflag)
- ND_PRINT((ndo, "%s ", ipaddr_string(&mob->osrc)));
+ ND_PRINT((ndo, "%s ", ipaddr_string(ndo, &mob->osrc)));
} else {
ND_PRINT((ndo, "[] "));
}
if (ndo->ndo_vflag) {
- ND_PRINT((ndo, "> %s ", ipaddr_string(&mob->odst)));
+ ND_PRINT((ndo, "> %s ", ipaddr_string(ndo, &mob->odst)));
ND_PRINT((ndo, "(oproto=%d)", proto>>8));
}
vec[0].ptr = (const u_int8_t *)(void *)mob;
ND_PRINT((ndo, "(altcoa: trunc)"));
goto trunc;
}
- ND_PRINT((ndo, "(alt-CoA: %s)", ip6addr_string(&bp[i+2])));
+ ND_PRINT((ndo, "(alt-CoA: %s)", ip6addr_string(ndo, &bp[i+2])));
break;
case IP6MOPT_NONCEID:
if (len - i < IP6MOPT_NONCEID_MINLEN) {
/* Reserved */
hlen = IP6M_MINLEN;
ND_TCHECK2(*mh, hlen + 16);
- ND_PRINT((ndo, " homeaddr %s", ip6addr_string(&bp[hlen])));
+ ND_PRINT((ndo, " homeaddr %s", ip6addr_string(ndo, &bp[hlen])));
hlen += 16;
break;
default:
ND_PRINT((ndo, " id %u", add_addr->addr_id));
switch (ipver) {
case 4:
- ND_PRINT((ndo, " %s", ipaddr_string(add_addr->u.v4.addr)));
+ ND_PRINT((ndo, " %s", ipaddr_string(ndo, add_addr->u.v4.addr)));
if (opt_len == 10)
ND_PRINT((ndo, ":%u", EXTRACT_16BITS(add_addr->u.v4.port)));
break;
case 6:
#ifdef INET6
- ND_PRINT((ndo, " %s", ip6addr_string(add_addr->u.v6.addr)));
+ ND_PRINT((ndo, " %s", ip6addr_string(ndo, add_addr->u.v6.addr)));
#endif
if (opt_len == 22)
ND_PRINT((ndo, ":%u", EXTRACT_16BITS(add_addr->u.v6.port)));
case 2:
ND_PRINT((ndo, " SA-Request"));
ND_TCHECK2(*sp, 5);
- ND_PRINT((ndo, " for %s", ipaddr_string(sp + 1)));
+ ND_PRINT((ndo, " for %s", ipaddr_string(ndo, sp + 1)));
break;
case 4:
ND_PRINT((ndo, " Keepalive"));
ND_PRINT((ndo, "MS NLB heartbeat, host priority: %u,",
EXTRACT_LE_32BITS(&(hb->host_prio))));
- ND_PRINT((ndo, " cluster IP: %s,", ipaddr_string(&(hb->virtual_ip))));
- ND_PRINT((ndo, " host IP: %s", ipaddr_string(&(hb->host_ip))));
+ ND_PRINT((ndo, " cluster IP: %s,", ipaddr_string(ndo, &(hb->virtual_ip))));
+ ND_PRINT((ndo, " host IP: %s", ipaddr_string(ndo, &(hb->host_ip))));
return;
trunc:
ND_PRINT((ndo, "[|MS NLB]"));
};
static inline void
-nflog_hdr_print(struct netdissect_options *ndo, const nflog_hdr_t *hdr, u_int length)
+nflog_hdr_print(netdissect_options *ndo, const nflog_hdr_t *hdr, u_int length)
{
ND_PRINT((ndo, "version %d, resource ID %d", hdr->nflog_version, ntohs(hdr->nflog_rid)));
}
u_int
-nflog_if_print(struct netdissect_options *ndo,
+nflog_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
const nflog_hdr_t *hdr = (const nflog_hdr_t *)p;
switch (IP_V((struct ip *)bp)) {
case 4:
ip = (struct ip *)bp;
- strlcpy(srcaddr, ipaddr_string(&ip->ip_src), sizeof(srcaddr));
- strlcpy(dstaddr, ipaddr_string(&ip->ip_dst), sizeof(dstaddr));
+ strlcpy(srcaddr, ipaddr_string(ndo, &ip->ip_src), sizeof(srcaddr));
+ strlcpy(dstaddr, ipaddr_string(ndo, &ip->ip_dst), sizeof(dstaddr));
break;
#ifdef INET6
case 6:
ip6 = (struct ip6_hdr *)bp;
- strlcpy(srcaddr, ip6addr_string(&ip6->ip6_src),
+ strlcpy(srcaddr, ip6addr_string(ndo, &ip6->ip6_src),
sizeof(srcaddr));
- strlcpy(dstaddr, ip6addr_string(&ip6->ip6_dst),
+ strlcpy(dstaddr, ip6addr_string(ndo, &ip6->ip6_dst),
sizeof(dstaddr));
break;
#endif
break;
case INFO_QUERY:
- ND_PRINT((ndo, "%s INFO_QUERY", ipaddr_string(&(bp->refid))));
+ ND_PRINT((ndo, "%s INFO_QUERY", ipaddr_string(ndo, &(bp->refid))));
/* this doesn't have more content */
return;
case INFO_REPLY:
- ND_PRINT((ndo, "%s INFO_REPLY", ipaddr_string(&(bp->refid))));
+ ND_PRINT((ndo, "%s INFO_REPLY", ipaddr_string(ndo, &(bp->refid))));
/* this is too complex to be worth printing */
return;
default:
- ND_PRINT((ndo, "%s", ipaddr_string(&(bp->refid))));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, &(bp->refid))));
break;
}
ND_PRINT((ndo, "\n\t neighbor %s, link-quality %.2lf%%"
", neighbor-link-quality %.2lf%%",
- ipaddr_string(lq_neighbor->neighbor),
+ ipaddr_string(ndo, lq_neighbor->neighbor),
((double)lq_neighbor->link_quality/2.55),
((double)lq_neighbor->neighbor_link_quality/2.55)));
ND_PRINT((ndo, "\n\t neighbor %s, link-quality %.2lf%%"
", neighbor-link-quality %.2lf%%",
- ip6addr_string(lq_neighbor->neighbor),
+ ip6addr_string(ndo, lq_neighbor->neighbor),
((double)lq_neighbor->link_quality/2.55),
((double)lq_neighbor->neighbor_link_quality/2.55)));
/* print 4 neighbors per line */
- ND_PRINT((ndo, "%s%s", ipaddr_string(msg_data),
+ ND_PRINT((ndo, "%s%s", ipaddr_string(ndo, msg_data),
neighbor % 4 == 0 ? "\n\t\t" : " "));
msg_data += sizeof(struct in_addr);
ND_PRINT((ndo, "\n\t%s Message (%#04x), originator %s, ttl %u, hop %u"
"\n\t vtime %.3lfs, msg-seq 0x%04x, length %u%s",
tok2str(olsr_msg_values, "Unknown", msg_type),
- msg_type, ip6addr_string(msgptr.v6->originator),
+ msg_type, ip6addr_string(ndo, msgptr.v6->originator),
msgptr.v6->ttl,
msgptr.v6->hopcount,
ME_TO_DOUBLE(msgptr.v6->vtime),
ND_PRINT((ndo, "\n\t%s Message (%#04x), originator %s, ttl %u, hop %u"
"\n\t vtime %.3lfs, msg-seq 0x%04x, length %u%s",
tok2str(olsr_msg_values, "Unknown", msg_type),
- msg_type, ipaddr_string(msgptr.v4->originator),
+ msg_type, ipaddr_string(ndo, msgptr.v4->originator),
msgptr.v4->ttl,
msgptr.v4->hopcount,
ME_TO_DOUBLE(msgptr.v4->vtime),
goto trunc;
#if INET6
ND_PRINT((ndo, "\n\t interface address %s",
- is_ipv6 ? ip6addr_string(msg_data) :
- ipaddr_string(msg_data)));
+ is_ipv6 ? ip6addr_string(ndo, msg_data) :
+ ipaddr_string(ndo, msg_data)));
#else
ND_PRINT((ndo, "\n\t interface address %s",
- ipaddr_string(msg_data)));
+ ipaddr_string(ndo, msg_data)));
#endif
msg_data += addr_size;
hna6 = (struct olsr_hna6 *)msg_data;
ND_PRINT((ndo, "\n\t #%i: %s/%u",
- i, ip6addr_string(hna6->network),
+ i, ip6addr_string(ndo, hna6->network),
mask62plen (hna6->mask)));
msg_data += sizeof(struct olsr_hna6);
/* print 4 prefixes per line */
ND_PRINT((ndo, "%s%s/%u",
col == 0 ? "\n\t " : ", ",
- ipaddr_string(ptr.hna->network),
+ ipaddr_string(ndo, ptr.hna->network),
mask2plen(EXTRACT_32BITS(ptr.hna->mask))));
msg_data += sizeof(struct olsr_hna4);
#if INET6
if (is_ipv6)
ND_PRINT((ndo, ", address %s, name \"",
- ip6addr_string(msg_data)));
+ ip6addr_string(ndo, msg_data)));
else
#endif
ND_PRINT((ndo, ", address %s, name \"",
- ipaddr_string(msg_data)));
+ ipaddr_string(ndo, msg_data)));
fn_printn(msg_data + addr_size, name_entry_len, NULL);
ND_PRINT((ndo, "\""));
cp += 2;
/* hw_addr */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
- ND_PRINT((ndo, ", hw_addr %s", etheraddr_string(cp)));
+ ND_PRINT((ndo, ", hw_addr %s", etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* name */
ND_TCHECK2(*cp, OFP_MAX_PORT_NAME_LEN);
/* dl_src */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
if (! (wildcards & OFPFW_DL_SRC))
- ND_PRINT((ndo, "%smatch dl_src %s", pfx, etheraddr_string(cp)));
+ ND_PRINT((ndo, "%smatch dl_src %s", pfx, etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* dl_dst */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
if (! (wildcards & OFPFW_DL_DST))
- ND_PRINT((ndo, "%smatch dl_dst %s", pfx, etheraddr_string(cp)));
+ ND_PRINT((ndo, "%smatch dl_dst %s", pfx, etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* dl_vlan */
ND_TCHECK2(*cp, 2);
ND_TCHECK2(*cp, 4);
nw_bits = (wildcards & OFPFW_NW_SRC_MASK) >> OFPFW_NW_SRC_SHIFT;
if (nw_bits < 32)
- ND_PRINT((ndo, "%smatch nw_src %s/%u", pfx, ipaddr_string(cp), 32 - nw_bits));
+ ND_PRINT((ndo, "%smatch nw_src %s/%u", pfx, ipaddr_string(ndo, cp), 32 - nw_bits));
cp += 4;
/* nw_dst */
ND_TCHECK2(*cp, 4);
nw_bits = (wildcards & OFPFW_NW_DST_MASK) >> OFPFW_NW_DST_SHIFT;
if (nw_bits < 32)
- ND_PRINT((ndo, "%smatch nw_dst %s/%u", pfx, ipaddr_string(cp), 32 - nw_bits));
+ ND_PRINT((ndo, "%smatch nw_dst %s/%u", pfx, ipaddr_string(ndo, cp), 32 - nw_bits));
cp += 4;
/* tp_src */
ND_TCHECK2(*cp, 2);
case OFPAT_SET_DL_DST:
/* dl_addr */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
- ND_PRINT((ndo, ", dl_addr %s", etheraddr_string(cp)));
+ ND_PRINT((ndo, ", dl_addr %s", etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* pad */
ND_TCHECK2(*cp, 6);
case OFPAT_SET_NW_DST:
/* nw_addr */
ND_TCHECK2(*cp, 4);
- ND_PRINT((ndo, ", nw_addr %s", ipaddr_string(cp)));
+ ND_PRINT((ndo, ", nw_addr %s", ipaddr_string(ndo, cp)));
cp += 4;
break;
case OFPAT_SET_NW_TOS:
cp += 2;
/* hw_addr */
ND_TCHECK2(*cp, ETHER_ADDR_LEN);
- ND_PRINT((ndo, ", hw_addr %s", etheraddr_string(cp)));
+ ND_PRINT((ndo, ", hw_addr %s", etheraddr_string(ndo, cp)));
cp += ETHER_ADDR_LEN;
/* config */
ND_TCHECK2(*cp, 4);
ND_PRINT((ndo, "\n\t Bogus length %u != 4", tlv_length));
return -1;
}
- ND_PRINT((ndo, "%s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, tptr)));
break;
default:
case LS_OPAQUE_TE_LINK_SUBTLV_LINK_ID:
case LS_OPAQUE_TE_LINK_SUBTLV_LINK_LOCAL_REMOTE_ID:
ND_PRINT((ndo, ", %s (0x%08x)",
- ipaddr_string(tptr),
+ ipaddr_string(ndo, tptr),
EXTRACT_32BITS(tptr)));
if (subtlv_length == 8) /* rfc4203 */
ND_PRINT((ndo, ", %s (0x%08x)",
- ipaddr_string(tptr+4),
+ ipaddr_string(ndo, tptr+4),
EXTRACT_32BITS(tptr + 4)));
break;
case LS_OPAQUE_TE_LINK_SUBTLV_LOCAL_IP:
case LS_OPAQUE_TE_LINK_SUBTLV_REMOTE_IP:
- ND_PRINT((ndo, ", %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, ", %s", ipaddr_string(ndo, tptr)));
break;
case LS_OPAQUE_TE_LINK_SUBTLV_MAX_BW:
case LS_OPAQUE_TE_LINK_SUBTLV_MAX_RES_BW:
return -1;
}
ND_TCHECK2(*tptr, 4);
- ND_PRINT((ndo, ", %s", ipaddr_string(tptr)));
+ ND_PRINT((ndo, ", %s", ipaddr_string(ndo, tptr)));
break;
default:
ND_TCHECK(lshp->ls_seq); /* XXX - ls_length check checked this */
ND_PRINT((ndo, "\n\t Advertising Router %s, seq 0x%08x, age %us, length %u",
- ipaddr_string(&lshp->ls_router),
+ ipaddr_string(ndo, &lshp->ls_router),
EXTRACT_32BITS(&lshp->ls_seq),
EXTRACT_16BITS(&lshp->ls_age),
ls_length - (u_int)sizeof(struct lsa_hdr)));
ND_PRINT((ndo, "\n\t %s LSA (%d), LSA-ID: %s",
tok2str(lsa_values,"unknown",lshp->ls_type),
lshp->ls_type,
- ipaddr_string(&lshp->un_lsa_id.lsa_id)));
+ ipaddr_string(ndo, &lshp->un_lsa_id.lsa_id)));
break;
}
case RLA_TYPE_VIRTUAL:
ND_PRINT((ndo, "\n\t Virtual Link: Neighbor Router-ID: %s, Interface Address: %s",
- ipaddr_string(&rlp->link_id),
- ipaddr_string(&rlp->link_data)));
+ ipaddr_string(ndo, &rlp->link_id),
+ ipaddr_string(ndo, &rlp->link_data)));
break;
case RLA_TYPE_ROUTER:
ND_PRINT((ndo, "\n\t Neighbor Router-ID: %s, Interface Address: %s",
- ipaddr_string(&rlp->link_id),
- ipaddr_string(&rlp->link_data)));
+ ipaddr_string(ndo, &rlp->link_id),
+ ipaddr_string(ndo, &rlp->link_data)));
break;
case RLA_TYPE_TRANSIT:
ND_PRINT((ndo, "\n\t Neighbor Network-ID: %s, Interface Address: %s",
- ipaddr_string(&rlp->link_id),
- ipaddr_string(&rlp->link_data)));
+ ipaddr_string(ndo, &rlp->link_id),
+ ipaddr_string(ndo, &rlp->link_data)));
break;
case RLA_TYPE_STUB:
ND_PRINT((ndo, "\n\t Stub Network: %s, Mask: %s",
- ipaddr_string(&rlp->link_id),
- ipaddr_string(&rlp->link_data)));
+ ipaddr_string(ndo, &rlp->link_id),
+ ipaddr_string(ndo, &rlp->link_data)));
break;
default:
case LS_TYPE_NETWORK:
ND_TCHECK(lsap->lsa_un.un_nla.nla_mask);
ND_PRINT((ndo, "\n\t Mask %s\n\t Connected Routers:",
- ipaddr_string(&lsap->lsa_un.un_nla.nla_mask)));
+ ipaddr_string(ndo, &lsap->lsa_un.un_nla.nla_mask)));
ap = lsap->lsa_un.un_nla.nla_router;
while ((u_char *)ap < ls_end) {
ND_TCHECK(*ap);
- ND_PRINT((ndo, "\n\t %s", ipaddr_string(ap)));
+ ND_PRINT((ndo, "\n\t %s", ipaddr_string(ndo, ap)));
++ap;
}
break;
case LS_TYPE_SUM_IP:
ND_TCHECK(lsap->lsa_un.un_nla.nla_mask);
ND_PRINT((ndo, "\n\t Mask %s",
- ipaddr_string(&lsap->lsa_un.un_sla.sla_mask)));
+ ipaddr_string(ndo, &lsap->lsa_un.un_sla.sla_mask)));
ND_TCHECK(lsap->lsa_un.un_sla.sla_tosmetric);
lp = lsap->lsa_un.un_sla.sla_tosmetric;
while ((u_char *)lp < ls_end) {
case LS_TYPE_NSSA: /* fall through - those LSAs share the same format */
ND_TCHECK(lsap->lsa_un.un_nla.nla_mask);
ND_PRINT((ndo, "\n\t Mask %s",
- ipaddr_string(&lsap->lsa_un.un_asla.asla_mask)));
+ ipaddr_string(ndo, &lsap->lsa_un.un_asla.asla_mask)));
ND_TCHECK(lsap->lsa_un.un_sla.sla_tosmetric);
almp = lsap->lsa_un.un_asla.asla_metric;
ND_TCHECK(almp->asla_forward);
if (almp->asla_forward.s_addr) {
- ND_PRINT((ndo, ", forward %s", ipaddr_string(&almp->asla_forward)));
+ ND_PRINT((ndo, ", forward %s", ipaddr_string(ndo, &almp->asla_forward)));
}
ND_TCHECK(almp->asla_tag);
if (almp->asla_tag.s_addr) {
- ND_PRINT((ndo, ", tag %s", ipaddr_string(&almp->asla_tag)));
+ ND_PRINT((ndo, ", tag %s", ipaddr_string(ndo, &almp->asla_tag)));
}
++almp;
}
case MCLA_VERTEX_ROUTER:
ND_PRINT((ndo, "\n\t Router Router-ID %s",
- ipaddr_string(&mcp->mcla_vid)));
+ ipaddr_string(ndo, &mcp->mcla_vid)));
break;
case MCLA_VERTEX_NETWORK:
ND_PRINT((ndo, "\n\t Network Designated Router %s",
- ipaddr_string(&mcp->mcla_vid)));
+ ipaddr_string(ndo, &mcp->mcla_vid)));
break;
default:
ND_PRINT((ndo, "\n\t Hello Timer %us, Dead Timer %us, Mask %s, Priority %u",
EXTRACT_16BITS(&op->ospf_hello.hello_helloint),
EXTRACT_32BITS(&op->ospf_hello.hello_deadint),
- ipaddr_string(&op->ospf_hello.hello_mask),
+ ipaddr_string(ndo, &op->ospf_hello.hello_mask),
op->ospf_hello.hello_priority));
ND_TCHECK(op->ospf_hello.hello_dr);
if (op->ospf_hello.hello_dr.s_addr != 0)
ND_PRINT((ndo, "\n\t Designated Router %s",
- ipaddr_string(&op->ospf_hello.hello_dr)));
+ ipaddr_string(ndo, &op->ospf_hello.hello_dr)));
ND_TCHECK(op->ospf_hello.hello_bdr);
if (op->ospf_hello.hello_bdr.s_addr != 0)
ND_PRINT((ndo, ", Backup Designated Router %s",
- ipaddr_string(&op->ospf_hello.hello_bdr)));
+ ipaddr_string(ndo, &op->ospf_hello.hello_bdr)));
ap = op->ospf_hello.hello_neighbor;
if ((u_char *)ap < dataend)
ND_PRINT((ndo, "\n\t Neighbor List:"));
while ((u_char *)ap < dataend) {
ND_TCHECK(*ap);
- ND_PRINT((ndo, "\n\t %s", ipaddr_string(ap)));
+ ND_PRINT((ndo, "\n\t %s", ipaddr_string(ndo, ap)));
++ap;
}
break; /* HELLO */
ND_TCHECK(*lsrp);
ND_PRINT((ndo, "\n\t Advertising Router: %s, %s LSA (%u)",
- ipaddr_string(&lsrp->ls_router),
+ ipaddr_string(ndo, &lsrp->ls_router),
tok2str(lsa_values,"unknown",EXTRACT_32BITS(lsrp->ls_type)),
EXTRACT_32BITS(&lsrp->ls_type)));
break;
default:
ND_PRINT((ndo, ", LSA-ID: %s",
- ipaddr_string(&lsrp->un_ls_stateid.ls_stateid)));
+ ipaddr_string(ndo, &lsrp->un_ls_stateid.ls_stateid)));
break;
}
}
ND_TCHECK(op->ospf_routerid);
- ND_PRINT((ndo, "\n\tRouter-ID %s", ipaddr_string(&op->ospf_routerid)));
+ ND_PRINT((ndo, "\n\tRouter-ID %s", ipaddr_string(ndo, &op->ospf_routerid)));
ND_TCHECK(op->ospf_areaid);
if (op->ospf_areaid.s_addr != 0)
- ND_PRINT((ndo, ", Area %s", ipaddr_string(&op->ospf_areaid)));
+ ND_PRINT((ndo, ", Area %s", ipaddr_string(ndo, &op->ospf_areaid)));
else
ND_PRINT((ndo, ", Backbone Area"));
ls_type & LS_TYPE_MASK,
tok2str(ospf6_ls_scope_values, "Unknown", ls_type & LS_SCOPE_MASK),
ls_type &0x8000 ? ", transitive" : "", /* U-bit */
- ipaddr_string(ls_stateid)));
+ ipaddr_string(ndo, ls_stateid)));
}
static int
ND_TCHECK(lshp->ls_seq);
ND_PRINT((ndo, "\n\t Advertising Router %s, seq 0x%08x, age %us, length %u",
- ipaddr_string(&lshp->ls_router),
+ ipaddr_string(ndo, &lshp->ls_router),
EXTRACT_32BITS(&lshp->ls_seq),
EXTRACT_16BITS(&lshp->ls_age),
EXTRACT_16BITS(&lshp->ls_length)-(u_int)sizeof(struct lsa6_hdr)));
ND_TCHECK2(lsapp->lsa_p_prefix, wordlen * 4);
memset(&prefix, 0, sizeof(prefix));
memcpy(&prefix, lsapp->lsa_p_prefix, wordlen * 4);
- ND_PRINT((ndo, "\n\t\t%s/%d", ip6addr_string(&prefix),
+ ND_PRINT((ndo, "\n\t\t%s/%d", ip6addr_string(ndo, &prefix),
lsapp->lsa_p_len));
if (lsapp->lsa_p_opt) {
ND_PRINT((ndo, ", Options [%s]",
case RLA_TYPE_VIRTUAL:
ND_PRINT((ndo, "\n\t Virtual Link: Neighbor Router-ID %s"
"\n\t Neighbor Interface-ID %s, Interface %s",
- ipaddr_string(&rlp->link_nrtid),
- ipaddr_string(&rlp->link_nifid),
- ipaddr_string(&rlp->link_ifid)));
+ ipaddr_string(ndo, &rlp->link_nrtid),
+ ipaddr_string(ndo, &rlp->link_nifid),
+ ipaddr_string(ndo, &rlp->link_ifid)));
break;
case RLA_TYPE_ROUTER:
ND_PRINT((ndo, "\n\t Neighbor Router-ID %s"
"\n\t Neighbor Interface-ID %s, Interface %s",
- ipaddr_string(&rlp->link_nrtid),
- ipaddr_string(&rlp->link_nifid),
- ipaddr_string(&rlp->link_ifid)));
+ ipaddr_string(ndo, &rlp->link_nrtid),
+ ipaddr_string(ndo, &rlp->link_nifid),
+ ipaddr_string(ndo, &rlp->link_ifid)));
break;
case RLA_TYPE_TRANSIT:
ND_PRINT((ndo, "\n\t Neighbor Network-ID %s"
"\n\t Neighbor Interface-ID %s, Interface %s",
- ipaddr_string(&rlp->link_nrtid),
- ipaddr_string(&rlp->link_nifid),
- ipaddr_string(&rlp->link_ifid)));
+ ipaddr_string(ndo, &rlp->link_nrtid),
+ ipaddr_string(ndo, &rlp->link_nifid),
+ ipaddr_string(ndo, &rlp->link_ifid)));
break;
default:
return (1);
lsa_length -= sizeof (*ap);
ND_TCHECK(*ap);
- ND_PRINT((ndo, "\n\t\t%s", ipaddr_string(ap)));
+ ND_PRINT((ndo, "\n\t\t%s", ipaddr_string(ndo, ap)));
++ap;
}
break;
lsa_length -= sizeof (*fwdaddr6);
ND_TCHECK(*fwdaddr6);
ND_PRINT((ndo, " forward %s",
- ip6addr_string(fwdaddr6)));
+ ip6addr_string(ndo, fwdaddr6)));
tptr += sizeof(*fwdaddr6);
}
lsa_length -= sizeof (u_int32_t);
ND_TCHECK(*(u_int32_t *)tptr);
ND_PRINT((ndo, " tag %s",
- ipaddr_string((u_int32_t *)tptr)));
+ ipaddr_string(ndo, (u_int32_t *)tptr)));
tptr += sizeof(u_int32_t);
}
lsa_length -= sizeof (u_int32_t);
ND_TCHECK(*(u_int32_t *)tptr);
ND_PRINT((ndo, " RefLSID: %s",
- ipaddr_string((u_int32_t *)tptr)));
+ ipaddr_string(ndo, (u_int32_t *)tptr)));
tptr += sizeof(u_int32_t);
}
break;
prefixes = EXTRACT_32BITS(&llsap->llsa_nprefix);
ND_PRINT((ndo, "\n\t Priority %d, Link-local address %s, Prefixes %d:",
llsap->llsa_priority,
- ip6addr_string(&llsap->llsa_lladdr),
+ ip6addr_string(ndo, &llsap->llsa_lladdr),
prefixes));
tptr = (u_int8_t *)llsap->llsa_prefix;
ND_PRINT((ndo, "\n\t Hello Timer %us, Dead Timer %us, Interface-ID %s, Priority %u",
EXTRACT_16BITS(&op->ospf6_hello.hello_helloint),
EXTRACT_16BITS(&op->ospf6_hello.hello_deadint),
- ipaddr_string(&op->ospf6_hello.hello_ifid),
+ ipaddr_string(ndo, &op->ospf6_hello.hello_ifid),
op->ospf6_hello.hello_priority));
ND_TCHECK(op->ospf6_hello.hello_dr);
if (op->ospf6_hello.hello_dr != 0)
ND_PRINT((ndo, "\n\t Designated Router %s",
- ipaddr_string(&op->ospf6_hello.hello_dr)));
+ ipaddr_string(ndo, &op->ospf6_hello.hello_dr)));
ND_TCHECK(op->ospf6_hello.hello_bdr);
if (op->ospf6_hello.hello_bdr != 0)
ND_PRINT((ndo, ", Backup Designated Router %s",
- ipaddr_string(&op->ospf6_hello.hello_bdr)));
+ ipaddr_string(ndo, &op->ospf6_hello.hello_bdr)));
if (ndo->ndo_vflag > 1) {
ND_PRINT((ndo, "\n\t Neighbor List:"));
ap = op->ospf6_hello.hello_neighbor;
while ((u_char *)ap < dataend) {
ND_TCHECK(*ap);
- ND_PRINT((ndo, "\n\t %s", ipaddr_string(ap)));
+ ND_PRINT((ndo, "\n\t %s", ipaddr_string(ndo, ap)));
++ap;
}
}
while ((u_char *)lsrp < dataend) {
ND_TCHECK(*lsrp);
ND_PRINT((ndo, "\n\t Advertising Router %s",
- ipaddr_string(&lsrp->ls_router)));
+ ipaddr_string(ndo, &lsrp->ls_router)));
ospf6_print_ls_type(ndo, EXTRACT_16BITS(&lsrp->ls_type),
&lsrp->ls_stateid);
++lsrp;
dataend = bp + datalen;
ND_TCHECK(op->ospf6_routerid);
- ND_PRINT((ndo, "\n\tRouter-ID %s", ipaddr_string(&op->ospf6_routerid)));
+ ND_PRINT((ndo, "\n\tRouter-ID %s", ipaddr_string(ndo, &op->ospf6_routerid)));
ND_TCHECK(op->ospf6_areaid);
if (op->ospf6_areaid != 0)
- ND_PRINT((ndo, ", Area %s", ipaddr_string(&op->ospf6_areaid)));
+ ND_PRINT((ndo, ", Area %s", ipaddr_string(ndo, &op->ospf6_areaid)));
else
ND_PRINT((ndo, ", Backbone Area"));
ND_TCHECK(op->ospf6_instanceid);
#ifdef INET6
if (ip6) {
ND_PRINT((ndo, "%s > %s: [|pgm]",
- ip6addr_string(&ip6->ip6_src),
- ip6addr_string(&ip6->ip6_dst)));
+ ip6addr_string(ndo, &ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_dst)));
return;
} else
#endif /* INET6 */
{
ND_PRINT((ndo, "%s > %s: [|pgm]",
- ipaddr_string(&ip->ip_src),
- ipaddr_string(&ip->ip_dst)));
+ ipaddr_string(ndo, &ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_dst)));
return;
}
}
if (ip6) {
if (ip6->ip6_nxt == IPPROTO_PGM) {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ip6addr_string(&ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_src),
tcpport_string(sport),
- ip6addr_string(&ip6->ip6_dst),
+ ip6addr_string(ndo, &ip6->ip6_dst),
tcpport_string(dport)));
} else {
ND_PRINT((ndo, "%s > %s: ",
{
if (ip->ip_p == IPPROTO_PGM) {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ipaddr_string(&ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_src),
tcpport_string(sport),
- ipaddr_string(&ip->ip_dst),
+ ipaddr_string(ndo, &ip->ip_dst),
tcpport_string(dport)));
} else {
ND_PRINT((ndo, "%s > %s: ",
((njoin = EXTRACT_16BITS(&bp[20])) + EXTRACT_16BITS(&bp[22])) == 1) {
int hold;
- ND_PRINT((ndo, " RPF %s ", ipaddr_string(bp)));
+ ND_PRINT((ndo, " RPF %s ", ipaddr_string(ndo, bp)));
hold = EXTRACT_16BITS(&bp[6]);
if (hold != 180) {
ND_PRINT((ndo, "Hold "));
relts_print(ndo, hold);
}
ND_PRINT((ndo, "%s (%s/%d, %s", njoin ? "Join" : "Prune",
- ipaddr_string(&bp[26]), bp[25] & 0x3f,
- ipaddr_string(&bp[12])));
+ ipaddr_string(ndo, &bp[26]), bp[25] & 0x3f,
+ ipaddr_string(ndo, &bp[12])));
if (EXTRACT_32BITS(&bp[16]) != 0xffffffff)
- ND_PRINT((ndo, "/%s", ipaddr_string(&bp[16])));
+ ND_PRINT((ndo, "/%s", ipaddr_string(ndo, &bp[16])));
ND_PRINT((ndo, ") %s%s %s",
(bp[24] & 0x01) ? "Sparse" : "Dense",
(bp[25] & 0x80) ? " WC" : "",
ND_TCHECK2(bp[0], sizeof(struct in_addr));
if (ndo->ndo_vflag > 1)
ND_PRINT((ndo, "\n"));
- ND_PRINT((ndo, " Upstream Nbr: %s", ipaddr_string(bp)));
+ ND_PRINT((ndo, " Upstream Nbr: %s", ipaddr_string(ndo, bp)));
ND_TCHECK2(bp[6], 2);
if (ndo->ndo_vflag > 1)
ND_PRINT((ndo, "\n"));
* mask length "maddrlen"?
*/
ND_TCHECK2(bp[0], sizeof(struct in_addr));
- ND_PRINT((ndo, "\n\tGroup: %s", ipaddr_string(bp)));
+ ND_PRINT((ndo, "\n\tGroup: %s", ipaddr_string(ndo, bp)));
ND_TCHECK2(bp[4], sizeof(struct in_addr));
if (EXTRACT_32BITS(&bp[4]) != 0xffffffff)
- ND_PRINT((ndo, "/%s", ipaddr_string(&bp[4])));
+ ND_PRINT((ndo, "/%s", ipaddr_string(ndo, &bp[4])));
ND_TCHECK2(bp[8], 4);
njoin = EXTRACT_16BITS(&bp[8]);
nprune = EXTRACT_16BITS(&bp[10]);
(bp[0] & 0x01) ? "Sparse " : "Dense ",
(bp[1] & 0x80) ? "WC " : "",
(bp[1] & 0x40) ? "RP " : "SPT ",
- ipaddr_string(&bp[2]), bp[1] & 0x3f));
+ ipaddr_string(ndo, &bp[2]), bp[1] & 0x3f));
bp += 6;
len -= 6;
}
case 1:
ND_PRINT((ndo, " Register"));
ND_TCHECK2(bp[8], 20); /* ip header */
- ND_PRINT((ndo, " for %s > %s", ipaddr_string(&bp[20]),
- ipaddr_string(&bp[24])));
+ ND_PRINT((ndo, " for %s > %s", ipaddr_string(ndo, &bp[20]),
+ ipaddr_string(ndo, &bp[24])));
break;
case 2:
ND_PRINT((ndo, " Register-Stop"));
ND_TCHECK2(bp[12], sizeof(struct in_addr));
- ND_PRINT((ndo, " for %s > %s", ipaddr_string(&bp[8]),
- ipaddr_string(&bp[12])));
+ ND_PRINT((ndo, " for %s > %s", ipaddr_string(ndo, &bp[8]),
+ ipaddr_string(ndo, &bp[12])));
break;
case 3:
ND_PRINT((ndo, " Join/Prune"));
ND_PRINT((ndo, " RP-reachable"));
if (ndo->ndo_vflag) {
ND_TCHECK2(bp[22], 2);
- ND_PRINT((ndo, " group %s", ipaddr_string(&bp[8])));
+ ND_PRINT((ndo, " group %s", ipaddr_string(ndo, &bp[8])));
if (EXTRACT_32BITS(&bp[12]) != 0xffffffff)
- ND_PRINT((ndo, "/%s", ipaddr_string(&bp[12])));
- ND_PRINT((ndo, " RP %s hold ", ipaddr_string(&bp[16])));
+ ND_PRINT((ndo, "/%s", ipaddr_string(ndo, &bp[12])));
+ ND_PRINT((ndo, " RP %s hold ", ipaddr_string(ndo, &bp[16])));
relts_print(ndo, EXTRACT_16BITS(&bp[22]));
}
break;
case 5:
ND_PRINT((ndo, " Assert"));
ND_TCHECK2(bp[16], sizeof(struct in_addr));
- ND_PRINT((ndo, " for %s > %s", ipaddr_string(&bp[16]),
- ipaddr_string(&bp[8])));
+ ND_PRINT((ndo, " for %s > %s", ipaddr_string(ndo, &bp[16]),
+ ipaddr_string(ndo, &bp[8])));
if (EXTRACT_32BITS(&bp[12]) != 0xffffffff)
- ND_PRINT((ndo, "/%s", ipaddr_string(&bp[12])));
+ ND_PRINT((ndo, "/%s", ipaddr_string(ndo, &bp[12])));
ND_TCHECK2(bp[24], 4);
ND_PRINT((ndo, " %s pref %d metric %d",
(bp[20] & 0x80) ? "RP-tree" : "SPT",
char s;
ND_TCHECK2(bp[0], 4);
- ND_PRINT((ndo, " RP %s", ipaddr_string(bp)));
+ ND_PRINT((ndo, " RP %s", ipaddr_string(ndo, bp)));
ND_TCHECK(bp[4]);
switch (bp[4] & 0x3) {
case 0: ND_PRINT((ndo, " PIMv?"));
for (; nentries; nentries--) {
ND_TCHECK2(bp[0], 6);
ND_PRINT((ndo, "%c%s%s/%d", s, bp[0] & 1 ? "!" : "",
- ipaddr_string(&bp[2]), bp[1]));
+ ipaddr_string(ndo, &bp[2]), bp[1]));
if (bp[0] & 0x02) {
ND_PRINT((ndo, " bidir"));
}
ND_TCHECK2(bp[0], len);
if (af == AF_INET) {
if (!silent)
- ND_PRINT((ndo, "%s", ipaddr_string(bp)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, bp)));
}
#ifdef INET6
else if (af == AF_INET6) {
if (!silent)
- ND_PRINT((ndo, "%s", ip6addr_string(bp)));
+ ND_PRINT((ndo, "%s", ip6addr_string(ndo, bp)));
}
#endif
return hdrlen + len;
ND_TCHECK2(bp[0], len + 2);
if (af == AF_INET) {
if (!silent) {
- ND_PRINT((ndo, "%s", ipaddr_string(bp + 2)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, bp + 2)));
if (bp[1] != 32)
ND_PRINT((ndo, "/%u", bp[1]));
}
#ifdef INET6
else if (af == AF_INET6) {
if (!silent) {
- ND_PRINT((ndo, "%s", ip6addr_string(bp + 2)));
+ ND_PRINT((ndo, "%s", ip6addr_string(ndo, bp + 2)));
if (bp[1] != 128)
ND_PRINT((ndo, "/%u", bp[1]));
}
switch (IP_V(ip)) {
case 0: /* Null header */
ND_PRINT((ndo, "IP-Null-header %s > %s",
- ipaddr_string(&ip->ip_src),
- ipaddr_string(&ip->ip_dst)));
+ ipaddr_string(ndo, &ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_dst)));
break;
case 4: /* IPv4 */
#define PKT_REC_PACKET 1 /* a packet follows the header */
static inline void
-pktap_header_print(struct netdissect_options *ndo, const u_char *bp, u_int length)
+pktap_header_print(netdissect_options *ndo, const u_char *bp, u_int length)
{
const pktap_header_t *hdr;
uint32_t dlt, hdrlen;
* is the number of bytes actually captured.
*/
u_int
-pktap_if_print(struct netdissect_options *ndo,
+pktap_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
uint32_t dlt, hdrlen, rectype;
#ifdef DLT_PPI
static inline void
-ppi_header_print(struct netdissect_options *ndo, const u_char *bp, u_int length)
+ppi_header_print(netdissect_options *ndo, const u_char *bp, u_int length)
{
const ppi_header_t *hdr;
u_int32_t dlt;
}
static void
-ppi_print(struct netdissect_options *ndo,
+ppi_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
if_ndo_printer ndo_printer;
* is the number of bytes actually captured.
*/
u_int
-ppi_if_print(struct netdissect_options *ndo,
+ppi_if_print(netdissect_options *ndo,
const struct pcap_pkthdr *h, const u_char *p)
{
ppi_print(ndo, h, p);
return 0;
}
ND_TCHECK2(*(p + 3), 4);
- ND_PRINT((ndo, ": IPv4 %s", ipaddr_string(p + 3)));
+ ND_PRINT((ndo, ": IPv4 %s", ipaddr_string(ndo, p + 3)));
break;
case MEDCLASS_MAC:
if (len != 9) {
}
ND_TCHECK2(*(p + 6), 4);
ND_PRINT((ndo, ": src %s, dst %s",
- ipaddr_string(p + 2),
- ipaddr_string(p + 6)));
+ ipaddr_string(ndo, p + 2),
+ ipaddr_string(ndo, p + 6)));
break;
case IPCPOPT_IPCOMP:
if (len < 4) {
return 0;
}
ND_TCHECK2(*(p + 2), 4);
- ND_PRINT((ndo, ": %s", ipaddr_string(p + 2)));
+ ND_PRINT((ndo, ": %s", ipaddr_string(ndo, p + 2)));
break;
default:
/*
if (EXTRACT_32BITS(data) == 0xFFFFFFFE )
ND_PRINT((ndo, "NAS Select"));
else
- ND_PRINT((ndo, "%s",ipaddr_string(data)));
+ ND_PRINT((ndo, "%s",ipaddr_string(ndo, data)));
break;
default:
- ND_PRINT((ndo, "%s", ipaddr_string(data)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, data)));
break;
}
}
if (family == 0) {
ND_PRINT((ndo, "\n\t AFI 0, %s, metric: %u",
- ipaddr_string(&ni->rip_dest),
+ ipaddr_string(ndo, &ni->rip_dest),
EXTRACT_32BITS(&ni->rip_metric)));
return;
} /* BSD_AFNUM_INET */
ND_PRINT((ndo, "\n\t %s, metric: %u",
- ipaddr_string(&ni->rip_dest),
+ ipaddr_string(ndo, &ni->rip_dest),
EXTRACT_32BITS(&ni->rip_metric)));
}
} else { /* BSD_AFNUM_INET or AFI 0 */
ND_PRINT((ndo, "\n\t AFI %s, %15s/%-2d, tag 0x%04x, metric: %u, next-hop: ",
tok2str(bsd_af_values, "%u", family),
- ipaddr_string(&ni->rip_dest),
+ ipaddr_string(ndo, &ni->rip_dest),
mask2plen(EXTRACT_32BITS(&ni->rip_dest_mask)),
EXTRACT_16BITS(&ni->rip_tag),
EXTRACT_32BITS(&ni->rip_metric)));
if (EXTRACT_32BITS(&ni->rip_router))
- ND_PRINT((ndo, "%s", ipaddr_string(&ni->rip_router)));
+ ND_PRINT((ndo, "%s", ipaddr_string(ndo, &ni->rip_router)));
else
ND_PRINT((ndo, "self"));
}
rip6_entry_print(netdissect_options *ndo, register const struct netinfo6 *ni, int metric)
{
int l;
- l = ND_PRINT((ndo, "%s/%d", ip6addr_string(&ni->rip6_dest), ni->rip6_plen));
+ l = ND_PRINT((ndo, "%s/%d", ip6addr_string(ndo, &ni->rip6_dest), ni->rip6_plen));
if (ni->rip6_tag)
l += ND_PRINT((ndo, " [%d]", EXTRACT_16BITS(&ni->rip6_tag)));
if (metric)
pdu = (rpki_rtr_pdu_ipv4_prefix *)tptr;
ND_PRINT((ndo, "%sIPv4 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
indent_string(indent+2),
- ipaddr_string(pdu->prefix),
+ ipaddr_string(ndo, pdu->prefix),
pdu->prefix_length, pdu->max_length,
EXTRACT_32BITS(pdu->as), pdu->flags));
}
pdu = (rpki_rtr_pdu_ipv6_prefix *)tptr;
ND_PRINT((ndo, "%sIPv6 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
indent_string(indent+2),
- ip6addr_string(pdu->prefix),
+ ip6addr_string(ndo, pdu->prefix),
pdu->prefix_length, pdu->max_length,
EXTRACT_32BITS(pdu->as), pdu->flags));
}
ND_TCHECK(*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET));
rrcp_opcode = (*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_OPCODE_MASK;
ND_PRINT((ndo, "%s > %s, %s %s",
- etheraddr_string(ESRC(ep)),
- etheraddr_string(EDST(ep)),
+ etheraddr_string(ndo, ESRC(ep)),
+ etheraddr_string(ndo, EDST(ep)),
tok2strbuf(proto_values,"RRCP-0x%02x",rrcp_proto,proto_str,sizeof(proto_str)),
((*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY) ? "reply" : "query"));
if (rrcp_proto==1){
ND_PRINT((ndo, " downlink_port=%d, uplink_port=%d, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ",
*(rrcp + RRCP_DOWNLINK_PORT_OFFSET),
*(rrcp + RRCP_UPLINK_PORT_OFFSET),
- etheraddr_string(rrcp + RRCP_UPLINK_MAC_OFFSET),
+ etheraddr_string(ndo, rrcp + RRCP_UPLINK_MAC_OFFSET),
EXTRACT_32BITS(rrcp + RRCP_VENDOR_ID_OFFSET),
EXTRACT_16BITS(rrcp + RRCP_CHIP_ID_OFFSET)));
}else if (rrcp_opcode==1 || rrcp_opcode==2 || rrcp_proto==2){
return -1;
ND_PRINT((ndo, "%s IPv4 DestAddress: %s, Protocol ID: 0x%02x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
*(obj_tptr + sizeof(struct in_addr))));
ND_PRINT((ndo, "%s Flags: [0x%02x], DestPort %u",
ident,
return -1;
ND_PRINT((ndo, "%s IPv6 DestAddress: %s, Protocol ID: 0x%02x",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
*(obj_tptr + sizeof(struct in6_addr))));
ND_PRINT((ndo, "%s Flags: [0x%02x], DestPort %u",
ident,
return -1;
ND_PRINT((ndo, "%s IPv6 Tunnel EndPoint: %s, Tunnel ID: 0x%04x, Extended Tunnel ID: %s",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+18),
- ip6addr_string(obj_tptr + 20)));
+ ip6addr_string(ndo, obj_tptr + 20)));
obj_tlen-=36;
obj_tptr+=36;
break;
ident,
EXTRACT_32BITS(obj_tptr),
EXTRACT_16BITS(obj_tptr+6),
- ip6addr_string(obj_tptr + 8)));
+ ip6addr_string(ndo, obj_tptr + 8)));
obj_tlen-=26;
obj_tptr+=26;
break;
return -1;
ND_PRINT((ndo, "%s IPv4 P2MP LSP ID: %s, Tunnel ID: 0x%04x, Extended Tunnel ID: %s",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+6),
- ipaddr_string(obj_tptr + 8)));
+ ipaddr_string(ndo, obj_tptr + 8)));
obj_tlen-=12;
obj_tptr+=12;
break;
return -1;
ND_PRINT((ndo, "%s IPv4 Tunnel EndPoint: %s, Tunnel ID: 0x%04x, Extended Tunnel ID: %s",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+6),
- ipaddr_string(obj_tptr + 8)));
+ ipaddr_string(ndo, obj_tptr + 8)));
obj_tlen-=12;
obj_tptr+=12;
break;
return -1;
ND_PRINT((ndo, "%s IPv4 Receiver Address: %s",
ident,
- ipaddr_string(obj_tptr)));
+ ipaddr_string(ndo, obj_tptr)));
obj_tlen-=sizeof(struct in_addr);
obj_tptr+=sizeof(struct in_addr);
break;
return -1;
ND_PRINT((ndo, "%s IPv6 Receiver Address: %s",
ident,
- ip6addr_string(obj_tptr)));
+ ip6addr_string(ndo, obj_tptr)));
obj_tlen-=sizeof(struct in6_addr);
obj_tptr+=sizeof(struct in6_addr);
break;
return -1;
ND_PRINT((ndo, "%s IPv4 Notify Node Address: %s",
ident,
- ipaddr_string(obj_tptr)));
+ ipaddr_string(ndo, obj_tptr)));
obj_tlen-=sizeof(struct in_addr);
obj_tptr+=sizeof(struct in_addr);
break;
return-1;
ND_PRINT((ndo, "%s IPv6 Notify Node Address: %s",
ident,
- ip6addr_string(obj_tptr)));
+ ip6addr_string(ndo, obj_tptr)));
obj_tlen-=sizeof(struct in6_addr);
obj_tptr+=sizeof(struct in6_addr);
break;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, Source Port: %u",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 6)));
obj_tlen-=8;
obj_tptr+=8;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, Source Port: %u",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 18)));
obj_tlen-=20;
obj_tptr+=20;
ND_PRINT((ndo, "%s IPv6 Tunnel Sender Address: %s, LSP ID: 0x%04x"
"%s Sub-Group Originator ID: %s, Sub-Group ID: 0x%04x",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+18),
ident,
- ip6addr_string(obj_tptr+20),
+ ip6addr_string(ndo, obj_tptr+20),
EXTRACT_16BITS(obj_tptr + 38)));
obj_tlen-=40;
obj_tptr+=40;
return-1;
ND_PRINT((ndo, "%s IPv4 Tunnel Sender Address: %s, LSP-ID: 0x%04x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 6)));
obj_tlen-=8;
obj_tptr+=8;
ND_PRINT((ndo, "%s IPv4 Tunnel Sender Address: %s, LSP ID: 0x%04x"
"%s Sub-Group Originator ID: %s, Sub-Group ID: 0x%04x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+6),
ident,
- ipaddr_string(obj_tptr+8),
+ ipaddr_string(ndo, obj_tptr+8),
EXTRACT_16BITS(obj_tptr + 12)));
obj_tlen-=16;
obj_tptr+=16;
case RSVP_OBJ_XRO_IPV4:
ND_PRINT((ndo, ", %s, %s/%u, Flags: [%s]",
RSVP_OBJ_XRO_MASK_LOOSE(*obj_tptr) ? "Loose" : "Strict",
- ipaddr_string(obj_tptr+2),
+ ipaddr_string(ndo, obj_tptr+2),
*(obj_tptr+6),
bittok2str(rsvp_obj_rro_flag_values,
"none",
if (subobj_len < 8)
return -1;
ND_PRINT((ndo, "%s UNI IPv4 TNA address: %s",
- ident, ipaddr_string(obj_tptr + 4)));
+ ident, ipaddr_string(ndo, obj_tptr + 4)));
break;
#ifdef INET6
case AFNUM_INET6:
if (subobj_len < 20)
return -1;
ND_PRINT((ndo, "%s UNI IPv6 TNA address: %s",
- ident, ip6addr_string(obj_tptr + 4)));
+ ident, ip6addr_string(ndo, obj_tptr + 4)));
break;
#endif
case AFNUM_NSAP:
return-1;
ND_PRINT((ndo, "%s Previous/Next Interface: %s, Logical Interface Handle: 0x%08x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_32BITS(obj_tptr + 4)));
obj_tlen-=8;
obj_tptr+=8;
return-1;
ND_PRINT((ndo, "%s Previous/Next Interface: %s, Logical Interface Handle: 0x%08x",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_32BITS(obj_tptr + 16)));
obj_tlen-=20;
obj_tptr+=20;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, Source Port: %u",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 6)));
obj_tlen-=8;
obj_tptr+=8;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, Source Port: %u",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 18)));
obj_tlen-=20;
obj_tptr+=20;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, Flow Label: %u",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_24BITS(obj_tptr + 17)));
obj_tlen-=20;
obj_tptr+=20;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, LSP-ID: 0x%04x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 18)));
obj_tlen-=20;
obj_tptr+=20;
ND_PRINT((ndo, "%s IPv6 Tunnel Sender Address: %s, LSP ID: 0x%04x"
"%s Sub-Group Originator ID: %s, Sub-Group ID: 0x%04x",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+18),
ident,
- ip6addr_string(obj_tptr+20),
+ ip6addr_string(ndo, obj_tptr+20),
EXTRACT_16BITS(obj_tptr + 38)));
obj_tlen-=40;
obj_tptr+=40;
return-1;
ND_PRINT((ndo, "%s Source Address: %s, LSP-ID: 0x%04x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr + 6)));
obj_tlen-=8;
obj_tptr+=8;
ND_PRINT((ndo, "%s IPv4 Tunnel Sender Address: %s, LSP ID: 0x%04x"
"%s Sub-Group Originator ID: %s, Sub-Group ID: 0x%04x",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
EXTRACT_16BITS(obj_tptr+6),
ident,
- ipaddr_string(obj_tptr+8),
+ ipaddr_string(ndo, obj_tptr+8),
EXTRACT_16BITS(obj_tptr + 12)));
obj_tlen-=16;
obj_tptr+=16;
while(obj_tlen >= 8) {
ND_PRINT((ndo, "%s PLR-ID: %s, Avoid-Node-ID: %s",
ident,
- ipaddr_string(obj_tptr),
- ipaddr_string(obj_tptr + 4)));
+ ipaddr_string(ndo, obj_tptr),
+ ipaddr_string(ndo, obj_tptr + 4)));
obj_tlen-=8;
obj_tptr+=8;
}
error_value=EXTRACT_16BITS(obj_tptr+6);
ND_PRINT((ndo, "%s Error Node Address: %s, Flags: [0x%02x]%s Error Code: %s (%u)",
ident,
- ipaddr_string(obj_tptr),
+ ipaddr_string(ndo, obj_tptr),
*(obj_tptr+4),
ident,
tok2str(rsvp_obj_error_code_values,"unknown",error_code),
error_value=EXTRACT_16BITS(obj_tptr+18);
ND_PRINT((ndo, "%s Error Node Address: %s, Flags: [0x%02x]%s Error Code: %s (%u)",
ident,
- ip6addr_string(obj_tptr),
+ ip6addr_string(ndo, obj_tptr),
*(obj_tptr+16),
ident,
tok2str(rsvp_obj_error_code_values,"unknown",error_code),
if (obj_tlen < 4)
return-1;
ND_PRINT((ndo, "%s Sub-LSP destination address: %s",
- ident, ipaddr_string(obj_tptr)));
+ ident, ipaddr_string(ndo, obj_tptr)));
obj_tlen-=4;
obj_tptr+=4;
if (obj_tlen < 16)
return-1;
ND_PRINT((ndo, "%s Sub-LSP destination address: %s",
- ident, ip6addr_string(obj_tptr)));
+ ident, ip6addr_string(ndo, obj_tptr)));
obj_tlen-=16;
obj_tptr+=16;
if ((u_char *)(addr + 1) > ep)
goto trunc;
- ND_PRINT((ndo, ", [%d]%s", i, ip6addr_string(addr)));
+ ND_PRINT((ndo, ", [%d]%s", i, ip6addr_string(ndo, addr)));
addr++;
}
/*(*/
#ifdef INET6
if (ip6) {
ND_PRINT((ndo, "%s.%d > %s.%d: sctp",
- ip6addr_string(&ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_src),
sourcePort,
- ip6addr_string(&ip6->ip6_dst),
+ ip6addr_string(ndo, &ip6->ip6_dst),
destPort));
} else
#endif /*INET6*/
{
ND_PRINT((ndo, "%s.%d > %s.%d: sctp",
- ipaddr_string(&ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_src),
sourcePort,
- ipaddr_string(&ip->ip_dst),
+ ipaddr_string(ndo, &ip->ip_dst),
destPort));
}
ND_PRINT((ndo, "sFlowv%u, %s agent %s, agent-id %u, length %u",
EXTRACT_32BITS(sflow_datagram->version),
EXTRACT_32BITS(sflow_datagram->ip_version) == 1 ? "IPv4" : "IPv6",
- ipaddr_string(sflow_datagram->agent),
+ ipaddr_string(ndo, sflow_datagram->agent),
EXTRACT_32BITS(sflow_datagram->agent_id),
len));
return;
ND_PRINT((ndo, "sFlowv%u, %s agent %s, agent-id %u, seqnum %u, uptime %u, samples %u, length %u",
EXTRACT_32BITS(sflow_datagram->version),
EXTRACT_32BITS(sflow_datagram->ip_version) == 1 ? "IPv4" : "IPv6",
- ipaddr_string(sflow_datagram->agent),
+ ipaddr_string(ndo, sflow_datagram->agent),
EXTRACT_32BITS(sflow_datagram->agent_id),
EXTRACT_32BITS(sflow_datagram->seqnum),
EXTRACT_32BITS(sflow_datagram->uptime),
* XXX - print others as strings of hex?
*/
if (EXTRACT_16BITS(&sllp->sll_halen) == 6)
- ND_PRINT((ndo, "%s ", etheraddr_string(sllp->sll_addr)));
+ ND_PRINT((ndo, "%s ", etheraddr_string(ndo, sllp->sll_addr)));
if (!ndo->ndo_qflag) {
ether_type = EXTRACT_16BITS(&sllp->sll_protocol);
ND_PRINT((ndo, "\n\t System %s, System Priority %u, Key %u" \
", Port %u, Port Priority %u\n\t State Flags [%s]",
- etheraddr_string(tlv_ptr.lacp_tlv_actor_partner_info->sys),
+ etheraddr_string(ndo, tlv_ptr.lacp_tlv_actor_partner_info->sys),
EXTRACT_16BITS(tlv_ptr.lacp_tlv_actor_partner_info->sys_pri),
EXTRACT_16BITS(tlv_ptr.lacp_tlv_actor_partner_info->key),
EXTRACT_16BITS(tlv_ptr.lacp_tlv_actor_partner_info->port),
tlv_ptr.marker_tlv_marker_info = (const struct marker_tlv_marker_info_t *)tlv_tptr;
ND_PRINT((ndo, "\n\t Request System %s, Request Port %u, Request Transaction ID 0x%08x",
- etheraddr_string(tlv_ptr.marker_tlv_marker_info->req_sys),
+ etheraddr_string(ndo, tlv_ptr.marker_tlv_marker_info->req_sys),
EXTRACT_16BITS(tlv_ptr.marker_tlv_marker_info->req_port),
EXTRACT_32BITS(tlv_ptr.marker_tlv_marker_info->req_trans_id)));
case 4:
ip = (struct ip *)bp2;
ND_PRINT((ndo, "%s.%s > %s.%s: %d",
- ipaddr_string(&ip->ip_src), srcid,
- ipaddr_string(&ip->ip_dst), dstid, length));
+ ipaddr_string(ndo, &ip->ip_src), srcid,
+ ipaddr_string(ndo, &ip->ip_dst), dstid, length));
break;
#ifdef INET6
case 6:
ip6 = (struct ip6_hdr *)bp2;
ND_PRINT((ndo, "%s.%s > %s.%s: %d",
- ip6addr_string(&ip6->ip6_src), srcid,
- ip6addr_string(&ip6->ip6_dst), dstid, length));
+ ip6addr_string(ndo, &ip6->ip6_src), srcid,
+ ip6addr_string(ndo, &ip6->ip6_dst), dstid, length));
break;
#endif
default:
ch = '\0';
if (!ND_TTEST(tp->th_dport)) {
ND_PRINT((ndo, "%s > %s: [|tcp]",
- ipaddr_string(&ip->ip_src),
- ipaddr_string(&ip->ip_dst)));
+ ipaddr_string(ndo, &ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_dst)));
return;
}
if (ip6) {
if (ip6->ip6_nxt == IPPROTO_TCP) {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ip6addr_string(&ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_src),
tcpport_string(sport),
- ip6addr_string(&ip6->ip6_dst),
+ ip6addr_string(ndo, &ip6->ip6_dst),
tcpport_string(dport)));
} else {
ND_PRINT((ndo, "%s > %s: ",
{
if (ip->ip_p == IPPROTO_TCP) {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ipaddr_string(&ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_src),
tcpport_string(sport),
- ipaddr_string(&ip->ip_dst),
+ ipaddr_string(ndo, &ip->ip_dst),
tcpport_string(dport)));
} else {
ND_PRINT((ndo, "%s > %s: ",
{
const char *srcname, *dstname;
- srcname = etheraddr_string(fsrc);
- dstname = etheraddr_string(fdst);
+ srcname = etheraddr_string(ndo, fsrc);
+ dstname = etheraddr_string(ndo, fdst);
if (ndo->ndo_vflag)
ND_PRINT((ndo, "%02x %02x %s %s %d: ",
if (ip6->ip6_nxt == IPPROTO_UDP) {
if (sport == -1) {
ND_PRINT((ndo, "%s > %s: ",
- ip6addr_string(&ip6->ip6_src),
- ip6addr_string(&ip6->ip6_dst)));
+ ip6addr_string(ndo, &ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_dst)));
} else {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ip6addr_string(&ip6->ip6_src),
+ ip6addr_string(ndo, &ip6->ip6_src),
udpport_string(sport),
- ip6addr_string(&ip6->ip6_dst),
+ ip6addr_string(ndo, &ip6->ip6_dst),
udpport_string(dport)));
}
} else {
if (ip->ip_p == IPPROTO_UDP) {
if (sport == -1) {
ND_PRINT((ndo, "%s > %s: ",
- ipaddr_string(&ip->ip_src),
- ipaddr_string(&ip->ip_dst)));
+ ipaddr_string(ndo, &ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_dst)));
} else {
ND_PRINT((ndo, "%s.%s > %s.%s: ",
- ipaddr_string(&ip->ip_src),
+ ipaddr_string(ndo, &ip->ip_src),
udpport_string(sport),
- ipaddr_string(&ip->ip_dst),
+ ipaddr_string(ndo, &ip->ip_dst),
udpport_string(dport)));
}
} else {
switch(vqp_obj_type) {
case VQP_OBJ_IP_ADDRESS:
- ND_PRINT((ndo, "%s (0x%08x)", ipaddr_string(tptr), EXTRACT_32BITS(tptr)));
+ ND_PRINT((ndo, "%s (0x%08x)", ipaddr_string(ndo, tptr), EXTRACT_32BITS(tptr)));
break;
/* those objects have similar semantics - fall through */
case VQP_OBJ_PORT_NAME:
/* those objects have similar semantics - fall through */
case VQP_OBJ_MAC_ADDRESS:
case VQP_OBJ_MAC_NULL:
- ND_PRINT((ndo, "%s", etheraddr_string(tptr)));
+ ND_PRINT((ndo, "%s", etheraddr_string(ndo, tptr)));
break;
default:
if (ndo->ndo_vflag <= 1)
bp += 8;
for (i = 0; i < naddrs; i++) {
ND_TCHECK(bp[3]);
- ND_PRINT((ndo, "%c%s", c, ipaddr_string(bp)));
+ ND_PRINT((ndo, "%c%s", c, ipaddr_string(ndo, bp)));
c = ',';
bp += 4;
}
ND_PRINT((ndo, "\n\t Config Rev %x, Updater %s",
EXTRACT_32BITS(tptr),
- ipaddr_string(tptr+4)));
+ ipaddr_string(ndo, tptr+4)));
tptr += 8;
ND_PRINT((ndo, ", Timestamp 0x%08x 0x%08x 0x%08x",
EXTRACT_32BITS(tptr),
ND_PRINT((ndo, " %u/%s:%u (max %u/%s:%u) ",
EXTRACT_32BITS(&id->pi_ps.slot),
- ipaddr_string(&id->pi_ps.page.p_sid),
+ ipaddr_string(ndo, &id->pi_ps.page.p_sid),
EXTRACT_32BITS(&id->pi_ps.page.p_uid),
EXTRACT_32BITS(&id->pi_mslot),
- ipaddr_string(&id->pi_mpage.p_sid),
+ ipaddr_string(ndo, &id->pi_mpage.p_sid),
EXTRACT_32BITS(&id->pi_mpage.p_uid)));
nid = EXTRACT_16BITS(&id->pi_ps.nid);
c = '<';
for (i = 0; i < nid && (u_char *)(io + 1) <= ndo->ndo_snapend; ++io, ++i) {
ND_PRINT((ndo, "%c%s:%u",
- c, ipaddr_string(&io->id), EXTRACT_32BITS(&io->off)));
+ c, ipaddr_string(ndo, &io->id), EXTRACT_32BITS(&io->off)));
c = ',';
}
if (i >= nid) {
return (-1);
ND_PRINT((ndo, " please repair %s %s:%u<%u:%u>",
- ipaddr_string(&rreq->pr_id),
- ipaddr_string(&rreq->pr_page.p_sid),
+ ipaddr_string(ndo, &rreq->pr_id),
+ ipaddr_string(ndo, &rreq->pr_page.p_sid),
EXTRACT_32BITS(&rreq->pr_page.p_uid),
EXTRACT_32BITS(&rreq->pr_sseq),
EXTRACT_32BITS(&rreq->pr_eseq)));
ND_PRINT((ndo, " need %u/%s:%u",
EXTRACT_32BITS(&preq->pp_low),
- ipaddr_string(&preq->pp_page.p_sid),
+ ipaddr_string(ndo, &preq->pp_page.p_sid),
EXTRACT_32BITS(&preq->pp_page.p_uid)));
return (0);
}
ND_PRINT((ndo, " %u/%s:%u",
EXTRACT_32BITS(&ps->slot),
- ipaddr_string(&ps->page.p_sid),
+ ipaddr_string(ndo, &ps->page.p_sid),
EXTRACT_32BITS(&ps->page.p_uid)));
io = (struct id_off *)(ps + 1);
for (ie = io + ps->nid; io < ie && (u_char *)(io + 1) <= ep; ++io) {
- ND_PRINT((ndo, "%c%s:%u", c, ipaddr_string(&io->id),
+ ND_PRINT((ndo, "%c%s:%u", c, ipaddr_string(ndo, &io->id),
EXTRACT_32BITS(&io->off)));
c = ',';
}
len -= sizeof(*rrep);
ND_PRINT((ndo, " for %s %s:%u<%u:%u>",
- ipaddr_string(&rrep->pr_id),
- ipaddr_string(&dop->pd_page.p_sid),
+ ipaddr_string(ndo, &rrep->pr_id),
+ ipaddr_string(ndo, &dop->pd_page.p_sid),
EXTRACT_32BITS(&dop->pd_page.p_uid),
EXTRACT_32BITS(&dop->pd_sseq),
EXTRACT_32BITS(&dop->pd_eseq)));
len -= sizeof(*dop);
ND_PRINT((ndo, " %s:%u<%u:%u>",
- ipaddr_string(&dop->pd_page.p_sid),
+ ipaddr_string(ndo, &dop->pd_page.p_sid),
EXTRACT_32BITS(&dop->pd_page.p_uid),
EXTRACT_32BITS(&dop->pd_sseq),
EXTRACT_32BITS(&dop->pd_eseq)));
free(cmdbuf);
exit(0);
}
- init_addrtoname(localnet, netmask);
+ init_addrtoname(gndo, localnet, netmask);
init_checksum();
#ifndef WIN32