1 #include "configfile-glue.c"
12 { "1.0.0.1/1", "1.0.0.1", AF_INET
, 1 }
13 ,{ "254.254.254.254/1", "254.0.0.1", AF_INET
, 1 }
14 ,{ "254.254.254.252/31", "254.254.254.253", AF_INET
, 1 }
15 ,{ "254.254.254.253/31", "254.254.254.254", AF_INET
, 0 }
16 ,{ "254.254.254.253/32", "254.254.254.254", AF_INET
, 0 }
17 ,{ "254.254.254.254/32", "254.254.254.254", AF_INET
, 1 }
19 ,{ "2001::/3", "2001::1", AF_INET6
, 1 }
20 ,{ "2f01::/5", "2701::1", AF_INET6
, 0 }
21 ,{ "2f01::/32", "2f01::1", AF_INET6
, 1 }
22 ,{ "2f01::/32", "2f02::1", AF_INET6
, 0 }
23 ,{ "2001::1/127", "2001::1", AF_INET6
, 1 }
24 ,{ "2001::1/127", "2001::2", AF_INET6
, 0 }
25 ,{ "2001::2/128", "2001::2", AF_INET6
, 1 }
26 ,{ "2001::2/128", "2001::3", AF_INET6
, 0 }
27 ,{ "1.0.0.1/1", "::ffff:1.0.0.1", AF_INET6
, 1 }
28 ,{ "254.254.254.254/1", "::ffff:254.0.0.1", AF_INET6
, 1 }
29 ,{ "254.254.254.252/31", "::ffff:254.254.254.253", AF_INET6
, 1 }
30 ,{ "254.254.254.253/31", "::ffff:254.254.254.254", AF_INET6
, 0 }
31 ,{ "254.254.254.253/32", "::ffff:254.254.254.254", AF_INET6
, 0 }
32 ,{ "254.254.254.254/32", "::ffff:254.254.254.254", AF_INET6
, 1 }
33 ,{ "::ffff:1.0.0.1/97", "1.0.0.1", AF_INET
, 1 }
34 ,{ "::ffff:254.254.254.254/97", "254.0.0.1", AF_INET
, 1 }
35 ,{ "::ffff:254.254.254.252/127", "254.254.254.253", AF_INET
, 1 }
36 ,{ "::ffff:254.254.254.253/127", "254.254.254.254", AF_INET
, 0 }
37 ,{ "::ffff:254.254.254.253/128", "254.254.254.254", AF_INET
, 0 }
38 ,{ "::ffff:254.254.254.254/128", "254.254.254.254", AF_INET
, 1 }
42 static void test_configfile_addrbuf_eq_remote_ip_mask (void) {
44 buffer
* const s
= buffer_init();
47 for (i
= 0; i
< (int)(sizeof(rmtmask
)/sizeof(rmtmask
[0])); ++i
) {
48 #ifndef HAVE_INET_PTON
49 rmt
.ipv4
.sin_family
= AF_INET
;
50 rmt
.ipv4
.sin_addr
.s_addr
= inet_addr(rmtmask
[i
].rmtstr
);
52 if (rmtmask
[i
].rmtfamily
== AF_INET
) {
53 rmt
.ipv4
.sin_family
= AF_INET
;
54 inet_pton(AF_INET
, rmtmask
[i
].rmtstr
, &rmt
.ipv4
.sin_addr
);
56 } else if (rmtmask
[i
].rmtfamily
== AF_INET6
) {
57 rmt
.ipv6
.sin6_family
= AF_INET6
;
58 inet_pton(AF_INET6
, rmtmask
[i
].rmtstr
, &rmt
.ipv6
.sin6_addr
);
64 buffer_copy_string(s
, rmtmask
[i
].string
);
65 m
= config_addrbuf_eq_remote_ip_mask(NULL
,s
,strchr(s
->ptr
,'/'),&rmt
);
66 if (m
!= rmtmask
[i
].expect
) {
67 fprintf(stderr
, "failed assertion: %s %s %s\n",
69 rmtmask
[i
].expect
? "==" : "!=",
79 test_configfile_addrbuf_eq_remote_ip_mask();
85 * stub functions (for linking)
87 void fd_close_on_exec(int fd
) { UNUSED(fd
); };