[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