From cfcc85bbca12dd7e5c07b2ceea15355d48aac629 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 7 Feb 2022 03:42:07 +0900 Subject: [PATCH] sd-dhcp6-client: log message is processed before state is changed --- src/libsystemd-network/sd-dhcp6-client.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c index 2cfa7623e9f..00574911624 100644 --- a/src/libsystemd-network/sd-dhcp6-client.c +++ b/src/libsystemd-network/sd-dhcp6-client.c @@ -1132,6 +1132,8 @@ static int client_process_information( if (r < 0) return log_dhcp6_client_errno(client, r, "Failed to process received reply message, ignoring: %m"); + log_dhcp6_client(client, "Processed %s message", dhcp6_message_type_to_string(message->type)); + sd_dhcp6_lease_unref(client->lease); client->lease = TAKE_PTR(lease); @@ -1162,6 +1164,8 @@ static int client_process_reply( if (r < 0) return log_dhcp6_client_errno(client, r, "Failed to process received reply message, ignoring: %m"); + log_dhcp6_client(client, "Processed %s message", dhcp6_message_type_to_string(message->type)); + sd_dhcp6_lease_unref(client->lease); client->lease = TAKE_PTR(lease); @@ -1201,6 +1205,8 @@ static int client_process_advertise_or_rapid_commit_reply( return log_dhcp6_client_errno(client, SYNTHETIC_ERRNO(EINVAL), "Received reply message without rapid commit flag, ignoring."); + log_dhcp6_client(client, "Processed %s message", dhcp6_message_type_to_string(message->type)); + sd_dhcp6_lease_unref(client->lease); client->lease = TAKE_PTR(lease); @@ -1217,17 +1223,16 @@ static int client_process_advertise_or_rapid_commit_reply( return r; } + log_dhcp6_client(client, "Processed %s message", dhcp6_message_type_to_string(message->type)); + if (!client->lease || pref_advertise > pref_lease) { /* If this is the first advertise message or has higher preference, then save the lease. */ sd_dhcp6_lease_unref(client->lease); client->lease = TAKE_PTR(lease); } - if (pref_advertise == 255 || client->retransmit_count > 1) { - r = client_set_state(client, DHCP6_STATE_REQUEST); - if (r < 0) - return r; - } + if (pref_advertise == 255 || client->retransmit_count > 1) + (void) client_set_state(client, DHCP6_STATE_REQUEST); return 0; } @@ -1336,9 +1341,6 @@ static int client_receive_message( assert_not_reached(); } - log_dhcp6_client(client, "Recv %s", - dhcp6_message_type_to_string(message->type)); - return 0; } -- 2.47.3