Exemple #1
0
static int
sdatatlv_print(netdissect_options *ndo,
               register const u_char * pptr, register u_int len,
               u_int16_t op_msk, int indent)
{
	const struct forces_tlv *tlv = (struct forces_tlv *)pptr;
	u_int rlen;
	register const u_char *tdp = (u_char *) TLV_DATA(tlv);
	u_int16_t type;

	/*
	 * pdatacnt_print() has ensured that len (the TLV length)
	 * >= TLV_HDRL.
	 */
	rlen = len - TLV_HDRL;
	ND_TCHECK(*tlv);
	type = EXTRACT_16BITS(&tlv->type);
	if (type != F_TLV_SPAD) {
		ND_PRINT((ndo, "Error: expecting SPARSEDATA!\n"));
		return -1;
	}

	return sdatailv_print(ndo, tdp, rlen, op_msk, indent);

trunc:
	ND_PRINT((ndo, "%s", tstr));
	return -1;
}
Exemple #2
0
int
sdatatlv_print(register const u_char * pptr, register u_int len,
	       u_int16_t op_msk, int indent)
{
	const struct forces_tlv *tlv = (struct forces_tlv *)pptr;
	u_int rlen;
	register const u_char *tdp = (u_char *) TLV_DATA(tlv);
	u_int16_t type;

	/*
	 * pdatacnt_print() has ensured that len (the TLV length)
	 * >= TLV_HDRL.
	 */
	rlen = len - TLV_HDRL;
	TCHECK(*tlv);
	type = EXTRACT_16BITS(&tlv->type);
	if (type != F_TLV_SPAD) {
		printf("Error: expecting SPARSEDATA!\n");
		return -1;
	}

	return sdatailv_print(tdp, rlen, op_msk, indent);

trunc:
	fputs("[|forces]", stdout);
	return -1;
}