}
}
-/* Compare two addresses. Maybe compare the port numbers too. */
-#define AEF_PORT 1u
-static int addreq(const union addr *a, const union addr *b, unsigned f)
-{
- switch (a->sa.sa_family) {
- case AF_INET:
- return (a->sin.sin_addr.s_addr == b->sin.sin_addr.s_addr &&
- (!(f&AEF_PORT) || a->sin.sin_port == b->sin.sin_port));
- case AF_INET6:
- return (!memcmp(a->sin6.sin6_addr.s6_addr,
- b->sin6.sin6_addr.s6_addr, 16) &&
- (!(f&AEF_PORT) || a->sin6.sin6_port == b->sin6.sin6_port));
- default:
- abort();
- }
-}
-
/*----- Main algorithm skeleton -------------------------------------------*/
struct param {
#define IPCK_INIT 0xffff
+/* Compare two addresses. Maybe compare the port numbers too. */
+#define AEF_PORT 1u
+static int addreq(const union addr *a, const union addr *b, unsigned f)
+{
+ switch (a->sa.sa_family) {
+ case AF_INET:
+ return (a->sin.sin_addr.s_addr == b->sin.sin_addr.s_addr &&
+ (!(f&AEF_PORT) || a->sin.sin_port == b->sin.sin_port));
+ case AF_INET6:
+ return (!memcmp(a->sin6.sin6_addr.s6_addr,
+ b->sin6.sin6_addr.s6_addr, 16) &&
+ (!(f&AEF_PORT) || a->sin6.sin6_port == b->sin6.sin6_port));
+ default:
+ abort();
+ }
+}
+
/* Compute an IP checksum over some data. This is a restartable interface:
* initialize A to `IPCK_INIT' for the first call.
*/