• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

systemd / systemd / 16358805956

17 Jul 2025 09:56PM UTC coverage: 72.093% (-0.05%) from 72.143%
16358805956

push

github

web-flow
Small comment fixes (#38252)

301743 of 418548 relevant lines covered (72.09%)

725894.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

63.83
/src/network/netdev/netdev-util.c
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2

3
#include "netdev-util.h"
4
#include "networkd-address.h"
5
#include "networkd-link.h"
6
#include "set.h"
7
#include "string-table.h"
8

9
static const char * const netdev_local_address_type_table[_NETDEV_LOCAL_ADDRESS_TYPE_MAX] = {
10
        [NETDEV_LOCAL_ADDRESS_IPV4LL]   = "ipv4_link_local",
11
        [NETDEV_LOCAL_ADDRESS_IPV6LL]   = "ipv6_link_local",
12
        [NETDEV_LOCAL_ADDRESS_DHCP4]    = "dhcp4",
13
        [NETDEV_LOCAL_ADDRESS_DHCP6]    = "dhcp6",
14
        [NETDEV_LOCAL_ADDRESS_SLAAC]    = "slaac",
15
        [NETDEV_LOCAL_ADDRESS_DHCP_PD]  = "dhcp_pd",
16
};
17

18
DEFINE_STRING_TABLE_LOOKUP(netdev_local_address_type, NetDevLocalAddressType);
103✔
19

20
int link_get_local_address(
663✔
21
                Link *link,
22
                NetDevLocalAddressType type,
23
                int family,
24
                int *ret_family,
25
                union in_addr_union *ret_address) {
26

27
        Address *a;
663✔
28

29
        assert(link);
663✔
30

31
        switch (type) {
663✔
32
        case NETDEV_LOCAL_ADDRESS_IPV4LL:
61✔
33
        case NETDEV_LOCAL_ADDRESS_DHCP4:
34
                assert(IN_SET(family, AF_UNSPEC, AF_INET));
61✔
35
                family = AF_INET;
36
                break;
37
        case NETDEV_LOCAL_ADDRESS_IPV6LL:
602✔
38
        case NETDEV_LOCAL_ADDRESS_DHCP6:
39
        case NETDEV_LOCAL_ADDRESS_SLAAC:
40
        case NETDEV_LOCAL_ADDRESS_DHCP_PD:
41
                assert(IN_SET(family, AF_UNSPEC, AF_INET6));
602✔
42
                family = AF_INET6;
43
                break;
44
        default:
×
45
                assert_not_reached();
×
46
        }
47

48
        if (!link_is_ready_to_configure(link, /* allow_unmanaged = */ false))
663✔
49
                return -EBUSY;
663✔
50

51
        SET_FOREACH(a, link->addresses) {
695✔
52
                if (!address_is_ready(a))
211✔
53
                        continue;
21✔
54

55
                if (a->family != family)
190✔
56
                        continue;
30✔
57

58
                if (in_addr_is_set(a->family, &a->in_addr_peer))
160✔
59
                        continue;
×
60

61
                switch (type) {
160✔
62
                case NETDEV_LOCAL_ADDRESS_IPV4LL:
×
63
                        if (a->source != NETWORK_CONFIG_SOURCE_IPV4LL)
×
64
                                continue;
×
65
                        break;
66
                case NETDEV_LOCAL_ADDRESS_IPV6LL:
×
67
                        if (!in6_addr_is_link_local(&a->in_addr.in6))
×
68
                                continue;
×
69
                        break;
70
                case NETDEV_LOCAL_ADDRESS_DHCP4:
44✔
71
                        if (a->source != NETWORK_CONFIG_SOURCE_DHCP4)
44✔
72
                                continue;
38✔
73
                        break;
74
                case NETDEV_LOCAL_ADDRESS_DHCP6:
×
75
                        if (a->source != NETWORK_CONFIG_SOURCE_DHCP6)
×
76
                                continue;
×
77
                        break;
78
                case NETDEV_LOCAL_ADDRESS_SLAAC:
116✔
79
                        if (a->source != NETWORK_CONFIG_SOURCE_NDISC)
116✔
80
                                continue;
90✔
81
                        break;
82
                case NETDEV_LOCAL_ADDRESS_DHCP_PD:
×
83
                        if (a->source != NETWORK_CONFIG_SOURCE_DHCP_PD)
×
84
                                continue;
×
85
                        break;
86
                default:
×
87
                        assert_not_reached();
×
88
                }
89

90
                if (ret_family)
32✔
91
                        *ret_family = a->family;
1✔
92
                if (ret_address)
32✔
93
                        *ret_address = a->in_addr;
16✔
94
                return 1;
32✔
95
        }
96

97
        return -ENXIO;
484✔
98
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc