Skip to content

Commit

Permalink
nanny: unregister all devices on exit
Browse files Browse the repository at this point in the history
  • Loading branch information
wipawel committed Nov 18, 2014
1 parent 8fe80c6 commit cfe1cac
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions nanny/main.c
Expand Up @@ -303,13 +303,15 @@ babysit(void)
ni_fatal("ni_socket_wait failed");
}

ni_nanny_unregister_all(mgr);
ni_dbus_client_free(client);
ni_dbus_server_free(mgr->server);
ni_server_deactivate_interface_events();

ni_dbus_objects_garbage_collect();

ni_socket_deactivate_all();

exit(0);
}

Expand Down
14 changes: 14 additions & 0 deletions nanny/nanny.c
Expand Up @@ -583,6 +583,20 @@ ni_nanny_unregister_device(ni_nanny_t *mgr, ni_ifworker_t *w)
ni_fsm_destroy_worker(mgr->fsm, w);
}

void
ni_nanny_unregister_all(ni_nanny_t *mgr)
{
unsigned int i;

if (mgr) {
for (i = 0; i < mgr->fsm->workers.count; i++) {
ni_ifworker_t *w = mgr->fsm->workers.data[i];

ni_nanny_unregister_device(mgr, w);
}
}
}

/*
* Handle prompting
*/
Expand Down
1 change: 1 addition & 0 deletions nanny/nanny.h
Expand Up @@ -122,6 +122,7 @@ extern unsigned int ni_nanny_recheck_do(ni_nanny_t *mgr);
extern unsigned int ni_nanny_down_do(ni_nanny_t *mgr);
extern void ni_nanny_register_device(ni_nanny_t *, ni_ifworker_t *);
extern void ni_nanny_unregister_device(ni_nanny_t *, ni_ifworker_t *);
extern void ni_nanny_unregister_all(ni_nanny_t *);
extern ni_managed_device_t * ni_nanny_get_device(ni_nanny_t *, ni_ifworker_t *);
extern void ni_nanny_remove_device(ni_nanny_t *, ni_managed_device_t *);
extern ni_managed_policy_t * ni_nanny_get_policy(ni_nanny_t *, const ni_fsm_policy_t *);
Expand Down

0 comments on commit cfe1cac

Please sign in to comment.