]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-local-addresses.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 #include "alloc-util.h"
7 #include "in-addr-util.h"
8 #include "local-addresses.h"
11 static void print_local_addresses(struct local_address
*a
, unsigned n
) {
14 for (i
= 0; i
< n
; i
++) {
15 _cleanup_free_
char *b
= NULL
;
17 assert_se(in_addr_to_string(a
[i
].family
, &a
[i
].address
, &b
) >= 0);
18 log_debug("%s if%i scope=%i metric=%u address=%s", af_to_name(a
[i
].family
), a
[i
].ifindex
, a
[i
].scope
, a
[i
].metric
, b
);
22 TEST(local_addresses
) {
23 struct local_address
*a
= NULL
;
24 int n
, n_ipv4
, n_ipv6
;
26 n
= local_addresses(NULL
, 0, AF_INET
, &a
);
28 log_debug("/* Local Addresses(ifindex:0, AF_INET) */");
29 print_local_addresses(a
, (unsigned) n
);
33 n
= local_addresses(NULL
, 0, AF_INET6
, &a
);
35 log_debug("/* Local Addresses(ifindex:0, AF_INET6) */");
36 print_local_addresses(a
, (unsigned) n
);
40 n
= local_addresses(NULL
, 0, AF_UNSPEC
, &a
);
42 log_debug("/* Local Addresses(ifindex:0, AF_UNSPEC) */");
43 print_local_addresses(a
, (unsigned) n
);
45 assert_se(n
== n_ipv4
+ n_ipv6
);
47 n
= local_addresses(NULL
, 1, AF_INET
, &a
);
49 log_debug("/* Local Addresses(ifindex:1, AF_INET) */");
50 print_local_addresses(a
, (unsigned) n
);
54 n
= local_addresses(NULL
, 1, AF_INET6
, &a
);
56 log_debug("/* Local Addresses(ifindex:1, AF_INET6) */");
57 print_local_addresses(a
, (unsigned) n
);
61 n
= local_addresses(NULL
, 1, AF_UNSPEC
, &a
);
63 log_debug("/* Local Addresses(ifindex:1, AF_UNSPEC) */");
64 print_local_addresses(a
, (unsigned) n
);
66 assert_se(n
== n_ipv4
+ n_ipv6
);
68 n
= local_gateways(NULL
, 0, AF_UNSPEC
, &a
);
70 log_debug("/* Local Gateways */");
71 print_local_addresses(a
, (unsigned) n
);
74 n
= local_outbounds(NULL
, 0, AF_UNSPEC
, &a
);
76 log_debug("/* Local Outbounds */");
77 print_local_addresses(a
, (unsigned) n
);
81 DEFINE_TEST_MAIN(LOG_DEBUG
);