- (void)printf("ICMP %s, length %u", str, plen);
- if (vflag && !fragmented) { /* don't attempt checksumming if this is a frag */
- u_int16_t sum, icmp_sum;
- if (TTEST2(*bp, plen)) {
- sum = in_cksum((u_short*)dp, plen, 0);
+ ND_PRINT((ndo, "ICMP %s, length %u", str, plen));
+ if (ndo->ndo_vflag && !fragmented) { /* don't attempt checksumming if this is a frag */
+ uint16_t sum, icmp_sum;
+ struct cksum_vec vec[1];
+ if (ND_TTEST2(*bp, plen)) {
+ vec[0].ptr = (const uint8_t *)(void *)dp;
+ vec[0].len = plen;
+ sum = in_cksum(vec, 1);