}
}
-static int socket_length(int family)
+static size_t socket_length(int family)
{
switch (family) {
case AF_INET:
return sizeof(struct sockaddr_in6);
#endif
}
- return -1;
+ return 0;
}
wire_hdr_len = sizeof(packet->ip.hdr) + sizeof(packet->ip.p.udp);
wire_len = wire_hdr_len + payload_len;
break;
+
+ default:
+ return NULL;
}
if (unreachable) {
if (type == SOCK_STREAM) {
break;
}
+ /*fall through*/
case 17:
if (type == SOCK_DGRAM) {
break;
}
+ /*fall through*/
default:
errno = EPROTONOSUPPORT;
return -1;
* socket family
*/
my_addrlen = socket_length(parent_si->family);
- if (my_addrlen < 0) {
+ if (my_addrlen <= 0) {
errno = EINVAL;
return -1;
}