void icmp_receive();
void discard_byte();
WORD chksm(unsigned int *startpos, WORD checklen);
void put_checksum(WORD check, WORD *putstart);

/* ----------------------------------------------------------------
 * |    TYPE      |      CODE      |         CHECKSUM             |
 * ----------------------------------------------------------------
 * |          IDENTIFIER           |        SEQUENCE NUMBER       |
 * ----------------------------------------------------------------
 * |    DATA ....
 * ---------------- */

struct icmpheader {
	BYTE	type;
	BYTE	code;
	WORD	chksum;
	WORD	id;
	WORD	seq;
};


syntax highlighted by Code2HTML, v. 0.9