umove(tcp, addr, &mreq) < 0) {
printaddr(addr);
} else {
- unsigned int i;
-
PRINT_FIELD_IFINDEX("{", mreq, mr_ifindex);
PRINT_FIELD_XVAL(", ", mreq, mr_type, packet_mreq_type,
"PACKET_MR_???");
PRINT_FIELD_U(", ", mreq, mr_alen);
- tprints(", mr_address=");
- if (mreq.mr_alen > ARRAY_SIZE(mreq.mr_address))
- mreq.mr_alen = ARRAY_SIZE(mreq.mr_address);
- for (i = 0; i < mreq.mr_alen; ++i)
- tprintf("%02x", mreq.mr_address[i]);
+ PRINT_FIELD_MAC_SZ(", ", mreq, mr_address,
+ (mreq.mr_alen > sizeof(mreq.mr_address)
+ ? sizeof(mreq.mr_address) : mreq.mr_alen));
tprints("}");
}
}
printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d,"
" mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=",
optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen);
- for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) {
- printf("%02x", pmreq->mr_address[i]);
- }
+ for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++)
+ printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]);
printf("}, %d) = %s\n", len, errstr);
/* setsockopt with mr_type unknown and mr_alen > sizeof(mr_address) */
printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d,"
" mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=",
optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen);
- for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++) {
- printf("%02x", pmreq->mr_address[i]);
- }
+ for (unsigned int i = 0; i < ARRAY_SIZE(pmreq->mr_address); i++)
+ printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]);
printf("}, %d) = %s\n", len, errstr);
/* setsockopt with mr_type unknown and mr_alen < sizeof(mr_address) */
printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d,"
" mr_type=%#x /* PACKET_MR_??? */, mr_alen=%d, mr_address=",
optname_str, pmreq->mr_ifindex, pmreq->mr_type, pmreq->mr_alen);
- for (unsigned int i = 0; i < pmreq->mr_alen; i++) {
- printf("%02x", pmreq->mr_address[i]);
- }
+ for (unsigned int i = 0; i < pmreq->mr_alen; i++)
+ printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]);
printf("}, %d) = %s\n", len, errstr);
/* setsockopt with valid mr_type */
printf("setsockopt(-1, SOL_PACKET, %s, {mr_ifindex=%d,"
" mr_type=%s, mr_alen=%d, mr_address=",
optname_str, pmreq->mr_ifindex, a[i].type_str, pmreq->mr_alen);
- for (unsigned int i = 0; i < pmreq->mr_alen; i++) {
- printf("%02x", pmreq->mr_address[i]);
- }
+ for (unsigned int i = 0; i < pmreq->mr_alen; i++)
+ printf("%s%02x", i > 0 ? ":" : "", pmreq->mr_address[i]);
printf("}, %d) = %s\n", len, errstr);
}