inet_pton() has slightly unexpected return values.
Only one function was wrong; I don't count the unused kr_straddr_join().
}
/* Parse address */
int ret = inet_pton(family, addr_str, dst);
- if (ret < 0) {
+ if (ret != 1) {
return kr_error(EILSEQ);
}
struct sockaddr_storage ss;
int family = kr_straddr_family(addr);
- if (family == kr_error(EINVAL) || !inet_pton(family, addr, &ss)) {
+ if (family == kr_error(EINVAL) || inet_pton(family, addr, &ss) != 1) {
return kr_error(EINVAL);
}
memset(sa, 0, sizeof(*sa));
sa->ip.sa_family = family;
char *addr_bytes = (/*const*/char *)kr_inaddr(&sa->ip);
- if (inet_pton(family, addr, addr_bytes) < 1) {
+ if (inet_pton(family, addr, addr_bytes) != 1) {
return kr_error(EILSEQ);
}
return 0;