netstat: fix nhop prepend printing.

If present, print nexthop L2 prepend data in hex.

Approved by:    re(gjb)
MFC after:	1 week

(cherry picked from commit 731bfa9f18)
(cherry picked from commit bea3efc01c)
This commit is contained in:
Alexander V. Chernikov 2021-12-26 15:02:06 +00:00
parent d64a952f8d
commit 3e624dfad1

View File

@ -312,8 +312,10 @@ print_nhop_entry_sysctl(const char *name, struct rt_msghdr *rtm, struct nhop_ext
xo_emit("{t:refcount/%*lu} ", wid_refcnt, nh->nh_refcount);
if (Wflag && nh->prepend_len) {
char *prepend_hex = "AABBCCDDEE";
xo_emit(" {:nhop-prepend/%*s}", wid_prepend, prepend_hex);
int max_bytes = MIN(nh->prepend_len, sizeof(buffer) / 2 - 1);
for (int i = 0; i < max_bytes; i++)
snprintf(&buffer[i * 2], 3, "%02X", nh->nh_prepend[i]);
xo_emit(" {:nhop-prepend/%*s}", wid_prepend, buffer);
}
xo_emit("\n");