diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-13 11:44:32 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-13 11:44:32 +0100 |
commit | 5ca527d7992a8c8feb99256c4ac497c699a0d79e (patch) | |
tree | fcd87a922688401b9e8e824c28be9e0c336c9336 | |
parent | 91333e85d6057f481aea6702905e42661f4a5477 (diff) | |
download | NetworkManager-5ca527d7992a8c8feb99256c4ac497c699a0d79e.tar.gz |
fixup! core: add NMArpingManager
-rw-r--r-- | src/devices/nm-arping-manager.c | 38 | ||||
-rw-r--r-- | src/devices/nm-arping-manager.h | 3 |
2 files changed, 7 insertions, 34 deletions
diff --git a/src/devices/nm-arping-manager.c b/src/devices/nm-arping-manager.c index 5cd2ecb7b1..d8791c4866 100644 --- a/src/devices/nm-arping-manager.c +++ b/src/devices/nm-arping-manager.c @@ -40,8 +40,6 @@ typedef struct { guint completed; guint timer; guint round2_id; - void *user_data; - GDestroyNotify user_data_destroy_func; } NMArpingManagerPrivate; typedef struct { @@ -111,16 +109,6 @@ nm_arping_manager_add_address (NMArpingManager *self, in_addr_t address) } static void -arping_notify_probe_terminated (NMArpingManager *self) -{ - NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self); - - g_signal_emit (self, signals[PROBE_TERMINATED], 0, priv->user_data); - if (priv->user_data_destroy_func) - g_clear_pointer (&priv->user_data, priv->user_data_destroy_func); -} - -static void arping_watch_cb (GPid pid, gint status, gpointer user_data) { AddressInfo *info = user_data; @@ -146,7 +134,7 @@ arping_watch_cb (GPid pid, gint status, gpointer user_data) if (++priv->completed == g_hash_table_size (priv->addresses)) { priv->state = STATE_PROBE_DONE; nm_clear_g_source (&priv->timer); - arping_notify_probe_terminated (self); + g_signal_emit (self, signals[PROBE_TERMINATED], 0); } } @@ -173,7 +161,7 @@ arping_timeout_cb (gpointer user_data) } priv->state = STATE_PROBE_DONE; - arping_notify_probe_terminated (self); + g_signal_emit (self, signals[PROBE_TERMINATED], 0); return G_SOURCE_REMOVE; } @@ -182,21 +170,15 @@ arping_timeout_cb (gpointer user_data) * nm_arping_manager_start_probe: * @self: a #NMArpingManager * @timeout: maximum probe duration in milliseconds - * @user_data: pointer to user data to be passed back to signal handler - * @user_data_destroy_func: function to destroy @user_data * @error: location to store error, or %NULL * * Start probing IP addresses for duplicates; when the probe terminates a - * PROBE_TERMINATED signal is emitted with @user_data as argument, then - * @user_data is released using @user_data_destroy. When @self is destroyed or - * reset, @user_data_destroy_func will be called on @user_data if the signal was - * not emitted. + * PROBE_TERMINATED signal is emitted. * * Returns: %TRUE on success, %FALSE on failure */ gboolean -nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, void *user_data, - GDestroyNotify user_data_destroy_func, GError **error) +nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, GError **error) { const char *argv[] = { NULL, "-D", "-q", "-I", NULL, "-c", NULL, "-w", NULL, NULL, NULL }; NMArpingManagerPrivate *priv; @@ -215,8 +197,6 @@ nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, void *user_ g_return_val_if_fail (argv[4], FALSE); priv->completed = 0; - priv->user_data = user_data; - priv->user_data_destroy_func = user_data_destroy_func; argv[0] = nm_utils_find_helper ("arping", NULL, NULL); if (!argv[0]) { @@ -271,11 +251,6 @@ nm_arping_manager_reset (NMArpingManager *self) nm_clear_g_source (&priv->round2_id); g_hash_table_remove_all (priv->addresses); - if (priv->user_data_destroy_func && priv->user_data) - priv->user_data_destroy_func (priv->user_data); - - priv->user_data_destroy_func = NULL; - priv->user_data = NULL; priv->state = STATE_INIT; } @@ -461,7 +436,6 @@ nm_arping_manager_class_init (NMArpingManagerClass *klass) g_signal_new (NM_ARPING_MANAGER_PROBE_TERMINATED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, - g_cclosure_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); + 0, NULL, NULL, NULL, + G_TYPE_NONE, 0); } diff --git a/src/devices/nm-arping-manager.h b/src/devices/nm-arping-manager.h index 4cfd7e4dc8..731de6622d 100644 --- a/src/devices/nm-arping-manager.h +++ b/src/devices/nm-arping-manager.h @@ -46,8 +46,7 @@ GType nm_arping_manager_get_type (void); NMArpingManager *nm_arping_manager_new (int ifindex); void nm_arping_manager_destroy (NMArpingManager *self); gboolean nm_arping_manager_add_address (NMArpingManager *self, in_addr_t address); -gboolean nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, void *user_data, - GDestroyNotify user_data_destroy_func, GError **error); +gboolean nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, GError **error); gboolean nm_arping_manager_check_address (NMArpingManager *self, in_addr_t address); void nm_arping_manager_announce_addresses (NMArpingManager *self); void nm_arping_manager_reset (NMArpingManager *self); |