diff --git a/ChangeLog b/ChangeLog index d6862439a5..e42ad32646 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-10-26 John (J5) Palmieri + + * info-daemon/NetworkManagerInfoDbus.c + - (nmi_dbus_is_running): New function for determining if nmi is already running + - (nmi_dbus_service_init): exit if another instance of nmi is already running + 2004-10-23 Dan Williams * info-daemon/NetworkManagerInfoDbus.c diff --git a/info-daemon/NetworkManagerInfoDbus.c b/info-daemon/NetworkManagerInfoDbus.c index a047e8a9de..a5aab82270 100644 --- a/info-daemon/NetworkManagerInfoDbus.c +++ b/info-daemon/NetworkManagerInfoDbus.c @@ -706,9 +706,28 @@ static DBusHandlerResult nmi_dbus_filter (DBusConnection *connection, DBusMessag return (handled ? DBUS_HANDLER_RESULT_HANDLED : DBUS_HANDLER_RESULT_NOT_YET_HANDLED); } +/* + * nmi_dbus_is_running + * + * Ask dbus whether or not another instance of NetworkManagerInfo is running + * + */ +static gboolean nmi_dbus_is_running (DBusConnection *connection) +{ + DBusError error; + gboolean exists; + + g_return_val_if_fail (connection != NULL, FALSE); + + dbus_error_init (&error); + exists = dbus_bus_service_exists (connection, NMI_DBUS_SERVICE, &error); + if (dbus_error_is_set (&error)) + dbus_error_free (&error); + return (exists); +} /* - * nmwa_dbus_nm_is_running + * nmi_dbus_nm_is_running * * Ask dbus whether or not NetworkManager is running * @@ -738,6 +757,10 @@ int nmi_dbus_service_init (DBusConnection *dbus_connection, NMIAppInfo *info) DBusError dbus_error; DBusObjectPathVTable nmi_vtable = { &nmi_dbus_nmi_unregister_handler, &nmi_dbus_nmi_message_handler, NULL, NULL, NULL, NULL }; + /*return if we are already running in another instance*/ + if (nmi_dbus_is_running (dbus_connection)) + return (-1); + dbus_error_init (&dbus_error); dbus_bus_acquire_service (dbus_connection, NMI_DBUS_SERVICE, 0, &dbus_error); if (dbus_error_is_set (&dbus_error))