- goto trunc;
- TCHECK(cmp->cm_rhello);
- vers = EXTRACT_LE_8BITS(cmp->cm_rhello.rh_vers);
- eco = EXTRACT_LE_8BITS(cmp->cm_rhello.rh_eco);
- ueco = EXTRACT_LE_8BITS(cmp->cm_rhello.rh_ueco);
- memcpy((char *)&srcea, (char *)&(cmp->cm_rhello.rh_src),
- sizeof(srcea));
- src = EXTRACT_LE_16BITS(srcea.dne_remote.dne_nodeaddr);
- info = EXTRACT_LE_8BITS(cmp->cm_rhello.rh_info);
- blksize = EXTRACT_LE_16BITS(cmp->cm_rhello.rh_blksize);
- priority = EXTRACT_LE_8BITS(cmp->cm_rhello.rh_priority);
- hello = EXTRACT_LE_16BITS(cmp->cm_rhello.rh_hello);
- print_i_info(info);
- (void)printf(
- "vers %d eco %d ueco %d src %s blksize %d pri %d hello %d",
- vers, eco, ueco, dnaddr_string(src),
+ goto invalid;
+ ND_TCHECK_SIZE(&cmp->cm_rhello);
+ vers = GET_U_1(cmp->cm_rhello.rh_vers);
+ eco = GET_U_1(cmp->cm_rhello.rh_eco);
+ ueco = GET_U_1(cmp->cm_rhello.rh_ueco);
+ src =
+ GET_LE_U_2(cmp->cm_rhello.rh_src.dne_remote.dne_nodeaddr);
+ info = GET_U_1(cmp->cm_rhello.rh_info);
+ blksize = GET_LE_U_2(cmp->cm_rhello.rh_blksize);
+ priority = GET_U_1(cmp->cm_rhello.rh_priority);
+ hello = GET_LE_U_2(cmp->cm_rhello.rh_hello);
+ print_i_info(ndo, info);
+ ND_PRINT("vers %u eco %u ueco %u src %s blksize %u pri %u hello %u",
+ vers, eco, ueco, dnaddr_string(ndo, src),