switch (link->network->dhcp_client_identifier) {
case DHCP_CLIENT_ID_DUID: {
/* If configured, apply user specified DUID and/or IAID */
- const DUID *duid = link_duid(link);
+ const DUID *duid = link_get_duid(link);
r = sd_dhcp_client_set_iaid_duid(link->dhcp_client,
link->network->iaid,
}
case DHCP_CLIENT_ID_DUID_ONLY: {
/* If configured, apply user specified DUID */
- const DUID *duid = link_duid(link);
+ const DUID *duid = link_get_duid(link);
r = sd_dhcp_client_set_duid(link->dhcp_client,
duid->type,
if (r < 0)
return log_link_error_errno(link, r, "DHCP6 CLIENT: Failed to set IAID: %m");
- duid = link_duid(link);
+ duid = link_get_duid(link);
r = sd_dhcp6_client_set_duid(client,
duid->type,
duid->raw_data_len > 0 ? duid->raw_data : NULL,
#include "util.h"
#include "virt.h"
+DUID* link_get_duid(Link *link) {
+ if (link->network->duid.type != _DUID_TYPE_INVALID)
+ return &link->network->duid;
+ else
+ return &link->manager->duid;
+}
+
static bool link_dhcp6_enabled(Link *link) {
assert(link);
switch (link->network->dhcp_client_identifier) {
case DHCP_CLIENT_ID_DUID: {
- const DUID *duid = link_duid(link);
+ const DUID *duid = link_get_duid(link);
r = sd_dhcp_client_set_iaid_duid(link->dhcp_client,
link->network->iaid,
break;
}
case DHCP_CLIENT_ID_DUID_ONLY: {
- const DUID *duid = link_duid(link);
+ const DUID *duid = link_get_duid(link);
r = sd_dhcp_client_set_duid(link->dhcp_client,
duid->type,
}
if (link->dhcp6_client) {
- const DUID* duid = link_duid(link);
+ const DUID* duid = link_get_duid(link);
r = sd_dhcp6_client_set_mac(link->dhcp6_client,
(const uint8_t *) &link->mac,
typedef struct Manager Manager;
typedef struct Network Network;
typedef struct Address Address;
+typedef struct DUID DUID;
typedef struct Link {
Manager *manager;
Hashmap *bound_to_links;
} Link;
+DUID *link_get_duid(Link *link);
+
Link *link_unref(Link *link);
Link *link_ref(Link *link);
int link_get(Manager *m, int ifindex, Link **ret);
Set *rules_saved;
};
-static inline const DUID* link_duid(const Link *link) {
- if (link->network->duid.type != _DUID_TYPE_INVALID)
- return &link->network->duid;
- else
- return &link->manager->duid;
-}
-
extern const sd_bus_vtable manager_vtable[];
int manager_new(Manager **ret);