mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-28 13:20:08 +01:00
acd: poll the acd fd after starting the announcements
In nm_acd_manager_announce_addresses() we should not only start the probes but also add the acd file descriptor to the main loop. Otherwise, a timer is armed to send the announcements but it never fires and no announcements are sent. Fixes:d9a4b59c18('acd: adapt NM code and build options') https://bugzilla.redhat.com/show_bug.cgi?id=1767681 (cherry picked from commit14992ab9cd)
This commit is contained in:
parent
8426a2398a
commit
c36da8b990
1 changed files with 10 additions and 0 deletions
|
|
@ -344,6 +344,8 @@ nm_acd_manager_start_probe (NMAcdManager *self, guint timeout)
|
|||
if (success)
|
||||
self->state = STATE_PROBING;
|
||||
|
||||
nm_assert (!self->channel);
|
||||
nm_assert (self->event_id == 0);
|
||||
n_acd_get_fd (self->acd, &fd);
|
||||
self->channel = g_io_channel_unix_new (fd);
|
||||
self->event_id = g_io_add_watch (self->channel, G_IO_IN, acd_event, self);
|
||||
|
|
@ -389,6 +391,7 @@ nm_acd_manager_announce_addresses (NMAcdManager *self)
|
|||
GHashTableIter iter;
|
||||
AddressInfo *info;
|
||||
int r;
|
||||
int fd;
|
||||
gboolean success = TRUE;
|
||||
|
||||
r = acd_init (self);
|
||||
|
|
@ -428,6 +431,13 @@ nm_acd_manager_announce_addresses (NMAcdManager *self)
|
|||
}
|
||||
}
|
||||
|
||||
if (!self->channel) {
|
||||
nm_assert (self->event_id == 0);
|
||||
n_acd_get_fd (self->acd, &fd);
|
||||
self->channel = g_io_channel_unix_new (fd);
|
||||
self->event_id = g_io_add_watch (self->channel, G_IO_IN, acd_event, self);
|
||||
}
|
||||
|
||||
return success ? 0 : -NME_UNSPEC;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue