network: configure address with requested lifetime

When assigning the same address provided by a dynamic addressing
protocol, the new lifetime is stored on Request::Address, but not
Address object in Link object, which can be obtained by address_get().
So, we need to configure address with Address object in Request.

Fixes #20245.
This commit is contained in:
Yu Watanabe 2021-07-19 15:18:37 +09:00 committed by Luca Boccassi
parent a2efdaac07
commit 2d302d88e4

View file

@ -1273,17 +1273,17 @@ int request_process_address(Request *req) {
if (r <= 0)
return r;
r = address_get(link, req->address, &a);
if (r < 0)
return r;
r = address_configure(a, link, req->netlink_handler);
r = address_configure(req->address, link, req->netlink_handler);
if (r < 0)
return r;
/* To prevent a double decrement on failure in after_configure(). */
req->message_counter = NULL;
r = address_get(link, req->address, &a);
if (r < 0)
return r;
if (req->after_configure) {
r = req->after_configure(req, a);
if (r < 0)