[Initng-svn] r2967 - initng/plugins/interactive

svn at initng.thinktux.net svn at initng.thinktux.net
Tue Feb 7 12:42:20 CET 2006


Author: jimmy
Date: Tue Feb  7 12:42:20 2006
New Revision: 2967

Modified:
   initng/plugins/interactive/initng_interactive.c
Log:
Fix interactive plugin, with the new g.START_DEP_MET and g.STOP_DEP_MET


Modified: initng/plugins/interactive/initng_interactive.c
==============================================================================
--- initng/plugins/interactive/initng_interactive.c	(original)
+++ initng/plugins/interactive/initng_interactive.c	Tue Feb  7 12:42:20 2006
@@ -34,9 +34,12 @@
 #include "initng_interactive.h"
 
 static int active;
+static int interactive_STARTING(active_db_h * service);
+static int interactive_STOP_MARKED(active_db_h * service);
 
+a_state_h INT_DISABLED = { "INTERACTIVLY_DISABLED", IS_FAILED, NULL };
 
-static int interactive_STARTING(active_db_h * service, a_state_h * status)
+static int interactive_STARTING(active_db_h * service)
 {
     char asw[10];
 
@@ -53,16 +56,17 @@
 
     if (asw[0] == 'a' || asw[0] == 'A')
     {
-        initng_unload_module_named("interactive");
+	initng_plugin_hook_del(&g.START_DEP_MET, &interactive_STARTING);
+	initng_plugin_hook_del(&g.STOP_DEP_MET, &interactive_STOP_MARKED);
+	active=FALSE;
         return (TRUE);
     }
 
-    initng_common_mark_service(service, &FAIL_STARTING);
-    return (FALSE);
-
+    initng_common_mark_service(service, &INT_DISABLED);
+    return (FAIL);
 }
 
-static int interactive_STOP_MARKED(active_db_h * service, a_state_h * status)
+static int interactive_STOP_MARKED(active_db_h * service)
 {
     char asw[10];
 
@@ -77,11 +81,15 @@
         return (TRUE);
 
     if (asw[0] == 'a' || asw[0] == 'A')
-        initng_unload_module_named("interactive");
-
-    initng_common_mark_service(service, &FAIL_STOPPING);
-    return (FALSE);
+    {
+	initng_plugin_hook_del(&g.START_DEP_MET, &interactive_STARTING);
+	initng_plugin_hook_del(&g.STOP_DEP_MET, &interactive_STOP_MARKED);
+	active=FALSE;
+	return(TRUE);
+    }
 
+    initng_common_mark_service(service, &INT_DISABLED);
+    return (FAIL);
 }
 
 
@@ -94,15 +102,17 @@
         F_("This module is compiled for \"%s\" version and initng is compiled on \"%s\" version, won't load this module!\n", INITNG_VERSION, version);
         return (FALSE);
     }
+    
     D_("module_init();\n");
+    
+    /* look for the string interactive */
     for (i = 0; g.Argv[i]; i++)
         if (strstr(g.Argv[i], "interactive"))
-        {
+        { /* if found */
+	
             P_("Initng is started in interactive mode!\n");
-            initng_active_state_add_test(&STARTING, 30,
-                                         &interactive_STARTING);
-            initng_active_state_add_test(&STOP_MARKED, 30,
-                                         &interactive_STOP_MARKED);
+	    initng_plugin_hook_add(&g.START_DEP_MET, 90, &interactive_STARTING);
+	    initng_plugin_hook_add(&g.STOP_DEP_MET, 90, &interactive_STOP_MARKED);
             active = TRUE;
             return (TRUE);
         }
@@ -117,7 +127,7 @@
     D_("module_unload();\n");
     if (active == TRUE)
     {
-        initng_active_state_del_test(&STARTING, interactive_STARTING);
-        initng_active_state_del_test(&STOP_MARKED, interactive_STOP_MARKED);
+	initng_plugin_hook_del(&g.START_DEP_MET, &interactive_STARTING);
+	initng_plugin_hook_del(&g.STOP_DEP_MET, &interactive_STOP_MARKED);
     }
 }


More information about the Initng-svn mailing list