[Initng-svn] r2949 - initng/src
svn at initng.thinktux.net
svn at initng.thinktux.net
Mon Feb 6 12:29:04 CET 2006
Author: jimmy
Date: Mon Feb 6 12:29:03 2006
New Revision: 2949
Modified:
initng/src/initng_depend.c
initng/src/initng_depend.h
initng/src/initng_global.c
initng/src/initng_global.h
initng/src/initng_plugin.h
initng/src/initng_static_states.c
Log:
Add functions for START_DEP_MET and STOP_DEP_MET.
Modified: initng/src/initng_depend.c
==============================================================================
--- initng/src/initng_depend.c (original)
+++ initng/src/initng_depend.c Mon Feb 6 12:29:03 2006
@@ -156,6 +156,32 @@
return(TRUE);
}
+int initng_depend_start_dep_met(active_db_h * service)
+{
+ s_call *current, *s = NULL;
+
+ /* run the global plugin dep check */
+ while_list_safe(current, &g.START_DEP_MET, s)
+ {
+ if (((*current->c.start_dep_met) (service) != TRUE))
+ return(FALSE);
+ }
+ return(TRUE);
+}
+
+int initng_depend_stop_dep_met(active_db_h * service)
+{
+ s_call *current, *s = NULL;
+
+ /* run the global plugin dep check */
+ while_list_safe(current, &g.STOP_DEP_MET, s)
+ {
+ if (((*current->c.stop_dep_met) (service) != TRUE))
+ return(FALSE);
+ }
+ return(TRUE);
+}
+
/*
* Start all deps, required or needed.
* If a requred deps failed to start, this will return FALSE
Modified: initng/src/initng_depend.h
==============================================================================
--- initng/src/initng_depend.h (original)
+++ initng/src/initng_depend.h Mon Feb 6 12:29:03 2006
@@ -23,5 +23,7 @@
int initng_depend_deep(active_db_h * service, active_db_h * check);
int initng_depend_stop_deps(active_db_h * service);
int initng_depend_start_deps(active_db_h * service);
+int initng_depend_start_dep_met(active_db_h * service);
+int initng_depend_stop_dep_met(active_db_h * service);
#endif
Modified: initng/src/initng_global.c
==============================================================================
--- initng/src/initng_global.c (original)
+++ initng/src/initng_global.c Mon Feb 6 12:29:03 2006
@@ -107,9 +107,9 @@
INIT_LIST_HEAD(&g.DUMP_STATE.list);
INIT_LIST_HEAD(&g.RELOAD_STATE.list);
INIT_LIST_HEAD(&g.IS_CHANGE.list);
- INIT_LIST_HEAD(&g.CHECK_START_DEP_UP.list);
- INIT_LIST_HEAD(&g.CHECK_STOP_DEP_UP.list);
- INIT_LIST_HEAD(&g.CHECK_UP_TEST.list);
+ INIT_LIST_HEAD(&g.START_DEP_MET.list);
+ INIT_LIST_HEAD(&g.STOP_DEP_MET.list);
+ INIT_LIST_HEAD(&g.UP_MET.list);
/*
* default global variables - clearesed by memset abowe
Modified: initng/src/initng_global.h
==============================================================================
--- initng/src/initng_global.h (original)
+++ initng/src/initng_global.h Mon Feb 6 12:29:03 2006
@@ -78,9 +78,9 @@
/* new ones */
s_call IS_CHANGE; /* Called when the rought state of a service changes */
- s_call CHECK_START_DEP_UP; /* Called and all this hooks have to return TRUE for launch to start */
- s_call CHECK_STOP_DEP_UP; /* Called and all this hooks have to return TRUE for the service to stop */
- s_call CHECK_UP_TEST; /* Called when a service is trying to set the RUNNING state, is a up test */
+ s_call START_DEP_MET; /* Called and all this hooks have to return TRUE for launch to start */
+ s_call STOP_DEP_MET; /* Called and all this hooks have to return TRUE for the service to stop */
+ s_call UP_MET; /* Called when a service is trying to set the RUNNING state, is a up test */
/* global variables */
Modified: initng/src/initng_plugin.h
==============================================================================
--- initng/src/initng_plugin.h (original)
+++ initng/src/initng_plugin.h Mon Feb 6 12:29:03 2006
@@ -55,6 +55,8 @@
int (*additional_parse) (service_cache_h * service);
int (*dump_state) (void);
int (*reload_state) (void);
+ int (*start_dep_met)(active_db_h * service);
+ int (*stop_dep_met)(active_db_h * service);
} uc __attribute__ ((__transparent_union__));
Modified: initng/src/initng_static_states.c
==============================================================================
--- initng/src/initng_static_states.c (original)
+++ initng/src/initng_static_states.c Mon Feb 6 12:29:03 2006
@@ -42,6 +42,7 @@
#include "initng_main.h"
#include "initng_execute.h"
#include "initng_common.h"
+#include "initng_depend.h"
#include "initng_load_module.h"
#include "initng_handler.h"
#include "initng_kill_handler.h"
@@ -160,6 +161,12 @@
}
}
+ /* check with start dep med dependencys */
+ if(initng_depend_start_dep_met(service_to_start)!=TRUE)
+ {
+ D_("Some plugin say that the start dependencys for this service is not met.\n");
+ return;
+ }
if (g.sys_state == STATE_STOPPING)
{
@@ -296,6 +303,14 @@
}
return;
}
+
+ /* check with stop dep med dependencys */
+ if(initng_depend_stop_dep_met(service_to_stop)!=TRUE)
+ {
+ D_("Some plugin say that the start dependencys for this service is not met.\n");
+ return;
+ }
+
/* this wont execute anything ... */
if (service_to_stop->type == &TYPE_RUNLEVEL ||
More information about the Initng-svn
mailing list