icmp
net_protocol_module_info* icmp = receiving_protocol(IPPROTO_ICMP);
if (icmp == NULL)
return icmp->error_reply(protocol, cause, error, errorData);
struct icmp icp;
memcpy(outpack + offsetof(struct icmp, icmp_cksum), &icp.icmp_cksum,
struct icmp icp;
struct icmp oicmp;
icmp_data_raw_len = cc - (hlen + offsetof(struct icmp, icmp_data));
icmp_data_raw = buf + hlen + offsetof(struct icmp, icmp_data);
cp = (u_char*)(buf + hlen + offsetof(struct icmp,
offsetof(struct icmp, icmp_data));
(ssize_t)(sizeof(struct ip) + sizeof(struct icmp))) {
(ssize_t)(oip_header_len + sizeof(struct icmp))) {
memcpy(&oicmp, oicmp_raw, sizeof(struct icmp));
pr_icmph(struct icmp *icp, struct ip *oip, const u_char *const oicmp_raw)
static void pr_icmph(struct icmp *, struct ip *, const u_char *const);
register struct icmp *icp;
icp = (struct icmp *)(buf + hlen);
icp = (struct icmp *)buf;
struct icmp *const icmpheader = (struct icmp *) outp;
struct icmp *const icmpheader = (struct icmp *) data;
sizeof(struct icmp),
struct icmp* icmp = (struct icmp*)(buf + ipLen);
printf("Type: %u; Code: %u\n", icmp->icmp_type, icmp->icmp_code);