summaryrefslogtreecommitdiff
path: root/sockaddr.c
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2018-02-16 19:01:24 +0100
committerDmitry V. Levin <ldv@altlinux.org>2018-03-07 18:13:29 +0000
commit9495ddada47c0c04ef9aee9a7588dab5349f5566 (patch)
treeec06bf6b4bdb8111f0d616c4c244c0314d2b9b3c /sockaddr.c
parent9611ebbb97ad639fbb77d200dee4305b834a23b1 (diff)
downloadstrace-9495ddada47c0c04ef9aee9a7588dab5349f5566.tar.gz
Sort Ethernet protocols xlat
* defs.h (ethernet_protocols_size): New declaration. * netlink_packet_diag.c (decode_packet_diag_req): Use printxval_searchnn to print Ethernet protocols. * sockaddr.c (ethernet_protocols_size): New constant, item count in ethernet_protocols array. (print_sockaddr_data_ll): Use printxval_search instead of printxval to print Ethernet protocols. * xlat/ethernet_protocols.in: Sort it by value, add comment about the fact. Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Diffstat (limited to 'sockaddr.c')
-rw-r--r--sockaddr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sockaddr.c b/sockaddr.c
index ac42e164a..9c369cda7 100644
--- a/sockaddr.c
+++ b/sockaddr.c
@@ -66,6 +66,8 @@
#define SIZEOF_SA_FAMILY sizeof(((struct sockaddr *) 0)->sa_family)
+const size_t ethernet_protocols_size = ARRAY_SIZE(ethernet_protocols) - 1;
+
static void
print_sockaddr_data_un(const void *const buf, const int addrlen)
{
@@ -223,7 +225,8 @@ print_sockaddr_data_ll(const void *const buf, const int addrlen)
const struct sockaddr_ll *const sa_ll = buf;
tprints("sll_protocol=htons(");
- printxval(ethernet_protocols, ntohs(sa_ll->sll_protocol), "ETH_P_???");
+ printxval_search(ethernet_protocols, ntohs(sa_ll->sll_protocol),
+ "ETH_P_???");
PRINT_FIELD_IFINDEX("), ", *sa_ll, sll_ifindex);
tprints(", sll_hatype=");
printxval(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???");