2008-04-04 Dan Williams <dcbw@redhat.com>

* src/nm-hal-manager.c
	  src/nm-hal-manager.h
		- (hal_init): don't look for hardware here
		- (nm_hal_manager_start): new function; look for hardware here instead,
			which can be done at a later time than hal_init()

	* src/NetworkManager.c
		- (main): start HAL manager after entering the main loop



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3530 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams
2008-04-04 14:59:30 +00:00
parent 92a6f3c3c8
commit d60d61c9d1
4 changed files with 38 additions and 17 deletions

View File

@@ -1,3 +1,14 @@
2008-04-04 Dan Williams <dcbw@redhat.com>
* src/nm-hal-manager.c
src/nm-hal-manager.h
- (hal_init): don't look for hardware here
- (nm_hal_manager_start): new function; look for hardware here instead,
which can be done at a later time than hal_init()
* src/NetworkManager.c
- (main): start HAL manager after entering the main loop
2008-04-03 Dan Williams <dcbw@redhat.com> 2008-04-03 Dan Williams <dcbw@redhat.com>
* libnm-glib/nm-settings.c * libnm-glib/nm-settings.c

View File

@@ -205,6 +205,13 @@ write_pidfile (const char *pidfile)
nm_warning ("Closing %s failed: %s", pidfile, strerror (errno)); nm_warning ("Closing %s failed: %s", pidfile, strerror (errno));
} }
static gboolean
start_hal (gpointer user_data)
{
nm_hal_manager_start ((NMHalManager *) user_data);
return FALSE;
}
/* /*
* main * main
* *
@@ -343,6 +350,7 @@ main (int argc, char *argv[])
hal_manager = nm_hal_manager_new (manager); hal_manager = nm_hal_manager_new (manager);
if (!hal_manager) if (!hal_manager)
goto done; goto done;
g_idle_add (start_hal, hal_manager);
/* Bring up the loopback interface. */ /* Bring up the loopback interface. */
nm_system_enable_loopback (); nm_system_enable_loopback ();

View File

@@ -569,7 +569,6 @@ hal_init (NMHalManager *manager)
{ {
DBusError error; DBusError error;
DBusGConnection *connection; DBusGConnection *connection;
gboolean success = FALSE;
manager->hal_ctx = libhal_ctx_new (); manager->hal_ctx = libhal_ctx_new ();
if (!manager->hal_ctx) { if (!manager->hal_ctx) {
@@ -586,7 +585,7 @@ hal_init (NMHalManager *manager)
nm_error ("libhal_ctx_init() failed: %s\n" nm_error ("libhal_ctx_init() failed: %s\n"
"Make sure the hal daemon is running?", "Make sure the hal daemon is running?",
error.message); error.message);
goto out; goto error;
} }
libhal_ctx_set_user_data (manager->hal_ctx, manager); libhal_ctx_set_user_data (manager->hal_ctx, manager);
@@ -598,25 +597,19 @@ hal_init (NMHalManager *manager)
if (dbus_error_is_set (&error)) { if (dbus_error_is_set (&error)) {
nm_error ("libhal_device_property_watch_all(): %s", error.message); nm_error ("libhal_device_property_watch_all(): %s", error.message);
libhal_ctx_shutdown (manager->hal_ctx, NULL); libhal_ctx_shutdown (manager->hal_ctx, NULL);
goto out; goto error;
} }
/* Add any devices we know about */ return TRUE;
add_killswitch_devices (manager);
add_initial_devices (manager);
success = TRUE;
out: error:
if (!success) { if (dbus_error_is_set (&error))
if (dbus_error_is_set (&error)) dbus_error_free (&error);
dbus_error_free (&error); if (manager->hal_ctx) {
if (manager->hal_ctx) { libhal_ctx_free (manager->hal_ctx);
libhal_ctx_free (manager->hal_ctx); manager->hal_ctx = NULL;
manager->hal_ctx = NULL;
}
} }
return FALSE;
return success;
} }
static void static void
@@ -748,6 +741,14 @@ nm_hal_manager_new (NMManager *nm_manager)
return manager; return manager;
} }
void
nm_hal_manager_start (NMHalManager *manager)
{
/* Find hardware we care about */
add_killswitch_devices (manager);
add_initial_devices (manager);
}
static void static void
destroy_creator (gpointer data, gpointer user_data) destroy_creator (gpointer data, gpointer user_data)
{ {

View File

@@ -6,6 +6,7 @@
typedef struct _NMHalManager NMHalManager; typedef struct _NMHalManager NMHalManager;
NMHalManager *nm_hal_manager_new (NMManager *nm_manager); NMHalManager *nm_hal_manager_new (NMManager *nm_manager);
void nm_hal_manager_start (NMHalManager *manager);
void nm_hal_manager_destroy (NMHalManager *manager); void nm_hal_manager_destroy (NMHalManager *manager);
#endif /* NM_HAL_MANAGER_H */ #endif /* NM_HAL_MANAGER_H */