--- ip_carp.c~ 2006-02-12 13:06:31.000000000 -0800 +++ ip_carp.c 2006-02-12 13:21:28.000000000 -0800 @@ -259,11 +259,12 @@ do { found = 0; last = cur; - cur.s_addr = 0xffffff; + cur.s_addr = 0xffffffff; TAILQ_FOREACH(ifa, &sc->sc_if.if_addrlist, ifa_list) { in.s_addr = ifatoia(ifa)->ia_addr.sin_addr.s_addr; if (ifa->ifa_addr->sa_family == AF_INET && - in.s_addr > last.s_addr && in.s_addr < cur.s_addr) { + ntohl(in.s_addr) > ntohl(last.s_addr) && + ntohl(in.s_addr) < ntohl(cur.s_addr)) { cur.s_addr = in.s_addr; found++; } @@ -271,8 +272,7 @@ if (found) SHA1Update(&sc->sc_sha1, (void *)&cur, sizeof(cur)); } while (found); -#endif - +#endif /* INET */ #ifdef INET6 memset(&cur6, 0x00, sizeof(cur6)); do {