[Initng-svn] r2959 - initng/plugins/conflict
svn at initng.thinktux.net
svn at initng.thinktux.net
Tue Feb 7 10:56:44 CET 2006
Author: jimmy
Date: Tue Feb 7 10:56:43 2006
New Revision: 2959
Modified:
initng/plugins/conflict/initng_conflict.c
Log:
Wide conflict.
Modified: initng/plugins/conflict/initng_conflict.c
==============================================================================
--- initng/plugins/conflict/initng_conflict.c (original)
+++ initng/plugins/conflict/initng_conflict.c Tue Feb 7 10:56:43 2006
@@ -38,12 +38,18 @@
"If service put here is starting or running, bail out."
};
-static int check_conflict(active_db_h * service, a_state_h * status)
+a_state_h CONFLICTING = { "FAILED_BY_CONFLICT", IS_FAILED, NULL };
+
+static int check_conflict(active_db_h * service)
{
const char *conflict_entry = NULL;
assert(service);
assert(service->name);
+
+ /* Do this check when this service is put in a STARTING state */
+ if(!IS_STARTING(service))
+ return(TRUE);
/* make sure the conflict entry is set */
while ((conflict_entry =
@@ -67,7 +73,7 @@
if (IS_UP(s) || IS_STARTING(s))
{
- initng_common_mark_service(service, &FAIL_STARTING);
+ initng_common_mark_service(service, &CONFLICTING);
F_("Service \"%s\" is conflicting with service \"%s\"!\n",
service->name, s->name);
return (FALSE);
@@ -87,7 +93,8 @@
}
initng_service_data_types_add(&CONFLICT);
- initng_active_state_add_test(&LOADING, 10, &check_conflict);
+ initng_plugin_hook_add(&g.IS_CHANGE, 10, &check_conflict);
+ initng_active_state_add(&CONFLICTING);
return (TRUE);
}
@@ -95,6 +102,7 @@
void module_unload(void)
{
- initng_active_state_del_test(&LOADING, &check_conflict);
+ initng_plugin_hook_del(&g.IS_CHANGE, &check_conflict);
+ initng_active_state_del(&CONFLICTING);
initng_service_data_types_del(&CONFLICT);
}
More information about the Initng-svn
mailing list