X Tutup
Skip to content

Commit 435910b

Browse files
committed
network: address: use passed Address object if possible
Then, we can avoid unnecessary duplication.
1 parent eef5ebe commit 435910b

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/network/networkd-address.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,9 +1113,13 @@ int link_request_address(
11131113
if (address_get(link, address, &existing) < 0) {
11141114
_cleanup_(address_freep) Address *tmp = NULL;
11151115

1116-
r = address_dup(address, &tmp);
1117-
if (r < 0)
1118-
return r;
1116+
if (consume_object)
1117+
tmp = address;
1118+
else {
1119+
r = address_dup(address, &tmp);
1120+
if (r < 0)
1121+
return r;
1122+
}
11191123

11201124
/* Consider address tentative until we get the real flags from the kernel */
11211125
tmp->flags |= IFA_F_TENTATIVE;
@@ -1128,14 +1132,18 @@ int link_request_address(
11281132
} else {
11291133
existing->source = address->source;
11301134
existing->provider = address->provider;
1135+
existing->lifetime_valid_usec = address->lifetime_valid_usec;
1136+
existing->lifetime_preferred_usec = address->lifetime_preferred_usec;
1137+
if (consume_object)
1138+
address_free(address);
11311139
}
11321140

11331141
r = ipv4acd_configure(existing);
11341142
if (r < 0)
11351143
return r;
11361144

1137-
log_address_debug(address, "Requesting", link);
1138-
r = link_queue_request(link, REQUEST_TYPE_ADDRESS, address, consume_object,
1145+
log_address_debug(existing, "Requesting", link);
1146+
r = link_queue_request(link, REQUEST_TYPE_ADDRESS, existing, false,
11391147
message_counter, netlink_handler, ret);
11401148
if (r < 0)
11411149
return log_link_warning_errno(link, r, "Failed to request address: %m");

0 commit comments

Comments
 (0)
X Tutup