]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-netlink/test-local-addresses.c
2 This file is part of systemd.
4 Copyright 2014 Lennart Poettering
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <http://www.gnu.org/licenses/>.
21 #include "alloc-util.h"
22 #include "in-addr-util.h"
23 #include "local-addresses.h"
25 static void print_local_addresses(struct local_address
*a
, unsigned n
) {
28 for (i
= 0; i
< n
; i
++) {
29 _cleanup_free_
char *b
= NULL
;
31 assert_se(in_addr_to_string(a
[i
].family
, &a
[i
].address
, &b
) >= 0);
32 printf("%s if%i scope=%i metric=%u address=%s\n", af_to_name(a
[i
].family
), a
[i
].ifindex
, a
[i
].scope
, a
[i
].metric
, b
);
36 int main(int argc
, char *argv
[]) {
37 struct local_address
*a
;
41 n
= local_addresses(NULL
, 0, AF_UNSPEC
, &a
);
44 printf("Local Addresses:\n");
45 print_local_addresses(a
, (unsigned) n
);
48 n
= local_gateways(NULL
, 0, AF_UNSPEC
, &a
);
51 printf("Local Gateways:\n");
52 print_local_addresses(a
, (unsigned) n
);