getprotobynumber() should return valid data at least for IPPROTO_IPV6 and IPPROTO_ICMPV6. Without this, getprptobynumber() seeks somewhere beyond limits and causes segfaults somewhere, somewhere returns random string (is there a typo between "\377raw" and "\0\0" missing comma?). "do we really need all these??" At least core IPv6 is needed :-)