[Initng-svn] r4421 - in initng/trunk: . devtool plugins/critical plugins/daemon plugins/debug_commands plugins/envparser plugins/find plugins/initctl plugins/iparser plugins/netdev plugins/provide plugins/reload plugins/rlparser plugins/service_file plugins/stcmd plugins/suid src tools
svn at initng.thinktux.net
svn at initng.thinktux.net
Thu Jun 8 18:32:48 CEST 2006
Author: jimmy
Date: Thu Jun 8 18:32:44 2006
New Revision: 4421
Modified:
initng/trunk/CMakeLists.txt
initng/trunk/config.h.cmake
initng/trunk/devtool/CMakeLists.txt
initng/trunk/devtool/test_parser.c
initng/trunk/plugins/critical/initng_critical.c
initng/trunk/plugins/daemon/initng_daemon.c
initng/trunk/plugins/debug_commands/initng_debug_commands.c
initng/trunk/plugins/debug_commands/print_service.c
initng/trunk/plugins/debug_commands/print_service.h
initng/trunk/plugins/envparser/CMakeLists.txt
initng/trunk/plugins/find/CMakeLists.txt
initng/trunk/plugins/fmon/initng_fmon.c
initng/trunk/plugins/initctl/initng_initctl.c
initng/trunk/plugins/iparser/CMakeLists.txt
initng/trunk/plugins/netdev/initng_netdev.c
initng/trunk/plugins/provide/initng_provide.c
initng/trunk/plugins/reload/initng_reload.c
initng/trunk/plugins/rlparser/CMakeLists.txt
initng/trunk/plugins/service_file/initng_service_file.c
initng/trunk/plugins/stcmd/initng_stcmd.c
initng/trunk/plugins/suid/initng_suid.c
initng/trunk/src/CMakeLists.txt
initng/trunk/src/initng_active_db.c
initng/trunk/src/initng_active_db.h
initng/trunk/src/initng_common.c
initng/trunk/src/initng_common.h
initng/trunk/src/initng_depend.c
initng/trunk/src/initng_env_variable.c
initng/trunk/src/initng_env_variable.h
initng/trunk/src/initng_fd.c
initng/trunk/src/initng_global.c
initng/trunk/src/initng_global.h
initng/trunk/src/initng_handler.c
initng/trunk/src/initng_kill_handler.c
initng/trunk/src/initng_load_module.c
initng/trunk/src/initng_load_module.h
initng/trunk/src/initng_main.h
initng/trunk/src/initng_plugin.h
initng/trunk/src/initng_plugin_callers.c
initng/trunk/src/initng_plugin_callers.h
initng/trunk/src/initng_process_db.h
initng/trunk/src/initng_service_data_types.c
initng/trunk/src/main.c
initng/trunk/tools/CMakeLists.txt
initng/trunk/tools/itool.c
Log:
Made "initng_service_cache.[ch]" optional in cmake option.
Modified: initng/trunk/CMakeLists.txt
==============================================================================
--- initng/trunk/CMakeLists.txt (original)
+++ initng/trunk/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -43,6 +43,7 @@
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
INSTALL_FILES(${INCLUDE_INSTALL_DIR}/initng FILES initng-paths.h)
+OPTION(SERVICE_CACHE "Include functions for separate data with temporary data inside of initng core, needed by the i_parser and friends" ON)
OPTION(BUILD_ALSO "Build also plugin" ON)
OPTION(BUILD_BASH_LAUNCHER "Build bash_launcher plugin" ON)
OPTION(BUILD_SERVICE_FILE "Build service_file plugin" ON)
@@ -55,14 +56,11 @@
OPTION(BUILD_DAEMON_CLEAN "Build daemon_clean plugin" OFF)
OPTION(BUILD_DBUS_EVENT "Build dbus_event plugin" OFF)
OPTION(BUILD_DEBUG_COMMANDS "Build debug_commands plugin" ON)
-OPTION(BUILD_ENVPARSER "Build envparser plugin" ON)
-OPTION(BUILD_FIND "Build find plugin" ON)
OPTION(BUILD_FMON "Build fmon plugin" ON)
OPTION(BUILD_FSTAT "Build fstat plugin" ON)
OPTION(BUILD_HISTORY "Build history plugin" ON)
OPTION(BUILD_INITCTL "Build initctl plugin" ON)
OPTION(BUILD_INTERACTIVE "Build interactive plugin" ON)
-OPTION(BUILD_IPARSER "Build iparser plugin" ON)
OPTION(BUILD_LAST "Build last plugin" ON)
OPTION(BUILD_LIMIT "Build limitplugin" ON)
OPTION(BUILD_LOGFILE "Build logfile plugin" ON)
@@ -77,7 +75,6 @@
OPTION(BUILD_PROVIDE "Build provide plugin" ON)
OPTION(BUILD_RELOAD "Build reload plugin" ON)
OPTION(BUILD_RENICE "Build renice plugin" ON)
-OPTION(BUILD_RLPARSER "Build rlparser plugin" ON)
OPTION(BUILD_SELINUX "Build selinux plugin" OFF)
OPTION(BUILD_SIMPLE_LAUNCHER "Build simple_launcher plugin" ON)
OPTION(BUILD_STCMD "Build stcmd plugin" ON)
@@ -88,6 +85,15 @@
OPTION(BUILD_SYSREQ "Build sysreq plugin" ON)
OPTION(BUILD_UNNEEDED "Build unneeded plugin" ON)
OPTION(BUILD_USPLASH "Build initng with usplash support" OFF)
+
+# NEEDS SERVICE_CACHE
+IF(SERVICE_CACHE)
+ OPTION(BUILD_IPARSER "Build iparser plugin" ON)
+ OPTION(BUILD_ENVPARSER "Build envparser plugin" ON)
+ OPTION(BUILD_FIND "Build find plugin" ON)
+ OPTION(BUILD_RLPARSER "Build rlparser plugin" ON)
+ENDIF(SERVICE_CACHE)
+
OPTION(INSTALL_AS_INIT "Install initng as complete replacement for SysVInit" OFF)
OPTION(DEBUG "Build with developer tools, turns on additional warnings and Werror" ON)
OPTION(CHECK_RO "Test if the / is mounted read-only before reboot/halt" ON)
Modified: initng/trunk/config.h.cmake
==============================================================================
--- initng/trunk/config.h.cmake (original)
+++ initng/trunk/config.h.cmake Thu Jun 8 18:32:44 2006
@@ -1,4 +1,5 @@
#cmakedefine VERSION "${VERSION}"
#cmakedefine VERSION_NAME "${VERSION_NAME}"
#cmakedefine CHECK_RO
-#cmakedefine FORCE_NOCOLOR
\ No newline at end of file
+#cmakedefine FORCE_NOCOLOR
+#cmakedefine SERVICE_CACHE
\ No newline at end of file
Modified: initng/trunk/devtool/CMakeLists.txt
==============================================================================
--- initng/trunk/devtool/CMakeLists.txt (original)
+++ initng/trunk/devtool/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,4 +1,6 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
ADD_EXECUTABLE(test_parser test_parser.c)
TARGET_LINK_LIBRARIES(test_parser initng)
+ENDIF(SERVICE_CACHE)
\ No newline at end of file
Modified: initng/trunk/devtool/test_parser.c
==============================================================================
--- initng/trunk/devtool/test_parser.c (original)
+++ initng/trunk/devtool/test_parser.c Thu Jun 8 18:32:44 2006
@@ -233,7 +233,7 @@
#ifdef PRINT_ALL
{
- char *all = service_db_print_all();
+ char *all = service_db_print_all(NULL);
printf("%s\n", all);
}
@@ -331,7 +331,7 @@
if (print_each == 1)
{
- char *string = service_db_print(service);
+ char *string = service_db_print_all(service->name);
printf("%s\n", string);
free(string);
Modified: initng/trunk/plugins/critical/initng_critical.c
==============================================================================
--- initng/trunk/plugins/critical/initng_critical.c (original)
+++ initng/trunk/plugins/critical/initng_critical.c Thu Jun 8 18:32:44 2006
@@ -29,7 +29,9 @@
#include <initng_plugin_hook.h>
#include <initng_common.h>
#include <initng_toolbox.h>
+#ifdef SERVICE_CACHE
#include <initng_service_cache.h>
+#endif
#include <initng_main.h>
#include <initng_active_state.h>
#include <initng_static_states.h>
@@ -58,12 +60,14 @@
initng_main_su_login();
/* now try to reload service from disk and run it again */
+#ifdef SERVICE_CACHE
if (service->from_service)
{
list_del(&(service->from_service->list));
initng_service_cache_free(service->from_service);
service->from_service = NULL;
}
+#endif
/* Reset the service state */
initng_common_mark_service(service, &NEW);
Modified: initng/trunk/plugins/daemon/initng_daemon.c
==============================================================================
--- initng/trunk/plugins/daemon/initng_daemon.c (original)
+++ initng/trunk/plugins/daemon/initng_daemon.c Thu Jun 8 18:32:44 2006
@@ -103,8 +103,9 @@
static pid_t get_pidfile(active_db_h * s);
static int check_respawn(active_db_h * service);
static int try_get_pid(active_db_h * s);
+#ifdef SERVICE_CACHE
static int check_valid_pidfile_path(service_cache_h * s);
-
+#endif
/*
* ############################################################################
* # STYPE HANDLERS FUNCTION DEFINES #
@@ -455,9 +456,11 @@
initng_active_state_register(&DAEMON_UP_CHECK_FAILED);
initng_active_state_register(&DAEMON_RESPAWN_RATE_EXCEEDED);
+#ifdef SERVICE_CACHE
initng_plugin_hook_register(&g.ADDITIONAL_PARSE, 80,
&check_valid_pidfile_path);
+#endif
/* return happily */
return (TRUE);
}
@@ -510,9 +513,11 @@
/* Last, delete the servicetype */
initng_service_type_unregister(&TYPE_DAEMON);
+#ifdef SERVICE_CACHE
+
initng_plugin_hook_unregister(&g.ADDITIONAL_PARSE,
&check_valid_pidfile_path);
-
+#endif
}
/*
@@ -1230,6 +1235,7 @@
}
}
+#ifdef SERVICE_CACHE
/* Chack pid_file path is reasonable - mainly to protect against
us deleting something we shouldn't due to a missing semicolon
(see bug #414). [FIXME] Note that for some reason, this can't stop
@@ -1250,6 +1256,7 @@
}
return TRUE;
}
+#endif
/*
* ############################################################################
Modified: initng/trunk/plugins/debug_commands/initng_debug_commands.c
==============================================================================
--- initng/trunk/plugins/debug_commands/initng_debug_commands.c (original)
+++ initng/trunk/plugins/debug_commands/initng_debug_commands.c Thu Jun 8 18:32:44 2006
@@ -36,7 +36,9 @@
#include <initng_global.h>
#include <initng_process_db.h>
+#ifdef SERVICE_CACHE
#include <initng_service_cache.h>
+#endif
#include <initng_handler.h>
#include <initng_active_db.h>
#include <initng_toolbox.h>
@@ -69,11 +71,14 @@
"Quits initng"
};
+
+#ifdef SERVICE_CACHE
s_command PRINT_SERVICE_DB = { 'P', "print_service_db", STRING_COMMAND, ADVANCHED_COMMAND,
USES_OPT,
{(void *) &service_db_print_all},
"Print service_db"
};
+#endif
s_command PRINT_ACTIVE_DB = { 'p', "print_active_db", STRING_COMMAND, ADVANCHED_COMMAND, USES_OPT,
{(void *) &active_db_print_all},
@@ -227,7 +232,9 @@
{
initng_command_register(&QUIT_INITNG);
}
+#ifdef SERVICE_CACHE
initng_command_register(&PRINT_SERVICE_DB);
+#endif
initng_command_register(&PRINT_ACTIVE_DB);
#ifdef DEBUG
@@ -251,7 +258,9 @@
{
initng_command_unregister(&QUIT_INITNG);
}
+#ifdef SERVICE_CACHE
initng_command_unregister(&PRINT_SERVICE_DB);
+#endif
initng_command_unregister(&PRINT_ACTIVE_DB);
#ifdef DEBUG
initng_command_unregister(&TOGGLE_VERBOSE);
Modified: initng/trunk/plugins/debug_commands/print_service.c
==============================================================================
--- initng/trunk/plugins/debug_commands/print_service.c (original)
+++ initng/trunk/plugins/debug_commands/print_service.c Thu Jun 8 18:32:44 2006
@@ -40,29 +40,14 @@
#define IS_PRINTABLE(x) (x >= 32 || x == '\n' || x == '\t' || x == '\r')
+#ifdef SERVICE_CACHE
static void service_db_print_u(service_cache_h * s, char **string);
+#endif
static void active_db_print_u(active_db_h * s, char **string);
static void print_string_value(char *string, char **to);
/* P R I N T S E R V I C E */
-/* some stdout */
-char *service_db_print(service_cache_h * s)
-{
- char *string = NULL;
-
- service_db_print_u(s, &string);
- return (string);
-}
-
-char *active_db_print(active_db_h * s)
-{
- char *string = NULL;
-
- active_db_print_u(s, &string);
- return (string);
-}
-
/* there may be unprintable characters in string - should escape them when printing */
static void print_string_value(char *string, char **to)
{
@@ -261,6 +246,7 @@
struct timeval now;
mprintf(string, "\n %s \"%s", s->type->name, s->name);
+#ifdef SERVICE_CACHE
if (s->from_service)
{
mprintf(string, " :: %s", s->from_service->name);
@@ -269,6 +255,7 @@
mprintf(string, " : %s", s->from_service->father_name);
}
}
+#endif
if (s->current_state && s->current_state->state_name)
{
@@ -305,6 +292,8 @@
print_sdata(tmp, string);
}
}
+
+#ifdef SERVICE_CACHE
if (s->from_service && !list_empty(&s->from_service->data.head.list))
{
mprintf(string, "\tFILE_CACHE_VARIABLES:\n");
@@ -314,6 +303,7 @@
print_sdata(tmp, string);
}
}
+#endif
}
/* Walk through every service and print it all */
@@ -333,6 +323,7 @@
return (string);
}
+#ifdef SERVICE_CACHE
/* Walk through every service and print it all */
char *service_db_print_all(char * matching)
{
@@ -350,3 +341,4 @@
return (string);
}
+#endif
Modified: initng/trunk/plugins/debug_commands/print_service.h
==============================================================================
--- initng/trunk/plugins/debug_commands/print_service.h (original)
+++ initng/trunk/plugins/debug_commands/print_service.h Thu Jun 8 18:32:44 2006
@@ -19,10 +19,10 @@
#include <stdio.h>
-#include <initng_service_cache.h>
-char *service_db_print(service_cache_h * s);
+#ifdef SERVICE_CACHE
+#include <initng_service_cache.h>
char *service_db_print_all(char * matching);
+#endif
-char *active_db_print(active_db_h * s);
char *active_db_print_all(char * matching);
Modified: initng/trunk/plugins/envparser/CMakeLists.txt
==============================================================================
--- initng/trunk/plugins/envparser/CMakeLists.txt (original)
+++ initng/trunk/plugins/envparser/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,6 +1,9 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
+
ADD_LIBRARY(envparser MODULE initng_envparser.c)
TARGET_LINK_LIBRARIES(envparser initng)
INSTALL_TARGETS(${LIB_INSTALL_DIR}/initng envparser)
+ENDIF(SERVICE_CACHE)
Modified: initng/trunk/plugins/find/CMakeLists.txt
==============================================================================
--- initng/trunk/plugins/find/CMakeLists.txt (original)
+++ initng/trunk/plugins/find/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,8 +1,10 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
ADD_LIBRARY(find MODULE initng_find.c)
TARGET_LINK_LIBRARIES(find initng)
INSTALL_TARGETS(${LIB_INSTALL_DIR}/initng find)
INSTALL_FILES(${LIB_INSTALL_DIR}/initng service_alias)
+ENDIF(SERVICE_CACHE)
\ No newline at end of file
Modified: initng/trunk/plugins/fmon/initng_fmon.c
==============================================================================
--- initng/trunk/plugins/fmon/initng_fmon.c (original)
+++ initng/trunk/plugins/fmon/initng_fmon.c Thu Jun 8 18:32:44 2006
@@ -95,7 +95,9 @@
int len = 0;
int i = 0;
+#ifdef SERVICE_CACHE
char *tmp;
+#endif
char buf[BUF_LEN];
/* read events */
@@ -154,7 +156,7 @@
return;
}
-
+#ifdef SERVICE_CACHE
/* check if there are any data file updated */
if (((tmp = strstr(event->name, ".i")) && tmp[2] == '\0')
|| strstr(event->name, ".runlevel")
@@ -190,8 +192,8 @@
initng_service_cache_free_all();
}
-
}
+#endif
}
@@ -293,7 +295,9 @@
return (FALSE);
}
+#ifdef SERVICE_CACHE
mon_dir("/etc/initng");
+#endif
/* add this hook */
initng_plugin_hook_register(&g.FDWATCHERS, 30, &fdh);
Modified: initng/trunk/plugins/initctl/initng_initctl.c
==============================================================================
--- initng/trunk/plugins/initctl/initng_initctl.c (original)
+++ initng/trunk/plugins/initctl/initng_initctl.c Thu Jun 8 18:32:44 2006
@@ -35,7 +35,6 @@
#include <initng_global.h>
#include <initng_process_db.h>
-#include <initng_service_cache.h>
#include <initng_handler.h>
#include <initng_main.h>
#include <initng_active_db.h>
@@ -201,12 +200,14 @@
initng_reload();
return;
+#ifdef SERVICE_CACHE
/* reload /etc/inittab */
case 'Q':
case 'q':
D_("init Q, freeing complete service cache\n");
initng_service_cache_free_all();
return;
+#endif
/* go singleuser */
case 'S':
Modified: initng/trunk/plugins/iparser/CMakeLists.txt
==============================================================================
--- initng/trunk/plugins/iparser/CMakeLists.txt (original)
+++ initng/trunk/plugins/iparser/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,6 +1,8 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
ADD_LIBRARY(iparser MODULE initng_i_parser.c)
TARGET_LINK_LIBRARIES(iparser initng)
INSTALL_TARGETS(${LIB_INSTALL_DIR}/initng iparser)
+ENDIF(SERVICE_CACHE)
\ No newline at end of file
Modified: initng/trunk/plugins/netdev/initng_netdev.c
==============================================================================
--- initng/trunk/plugins/netdev/initng_netdev.c (original)
+++ initng/trunk/plugins/netdev/initng_netdev.c Thu Jun 8 18:32:44 2006
@@ -149,8 +149,10 @@
/* set type */
netdev->type = &NETDEV;
+#ifdef SERVICE_CACHE
/* make sure it wont try to parse this entry */
netdev->from_service = &NO_CACHE;
+#endif
/* register it */
if (!initng_active_db_register(netdev))
Modified: initng/trunk/plugins/provide/initng_provide.c
==============================================================================
--- initng/trunk/plugins/provide/initng_provide.c (original)
+++ initng/trunk/plugins/provide/initng_provide.c Thu Jun 8 18:32:44 2006
@@ -122,8 +122,10 @@
/* set type */
vserv->type = &PROVIDED;
+#ifdef SERVICE_CACHE
/* make sure it wont try to parse this entry */
vserv->from_service = &NO_CACHE;
+#endif
/* register it */
if (!initng_active_db_register(vserv))
Modified: initng/trunk/plugins/reload/initng_reload.c
==============================================================================
--- initng/trunk/plugins/reload/initng_reload.c (original)
+++ initng/trunk/plugins/reload/initng_reload.c Thu Jun 8 18:32:44 2006
@@ -52,8 +52,6 @@
static void cmd_fast_reload(char *arg);
const char *module_needs[] = {
- "rlparser",
- "iparser",
"service",
"daemon",
"runlevel",
Modified: initng/trunk/plugins/rlparser/CMakeLists.txt
==============================================================================
--- initng/trunk/plugins/rlparser/CMakeLists.txt (original)
+++ initng/trunk/plugins/rlparser/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,6 +1,7 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
ADD_LIBRARY(rlparser MODULE initng_rl_parser.c)
TARGET_LINK_LIBRARIES(rlparser initng)
INSTALL_TARGETS(${LIB_INSTALL_DIR}/initng rlparser)
-
+ENDIF(SERVICE_CACHE)
Modified: initng/trunk/plugins/service_file/initng_service_file.c
==============================================================================
--- initng/trunk/plugins/service_file/initng_service_file.c (original)
+++ initng/trunk/plugins/service_file/initng_service_file.c Thu Jun 8 18:32:44 2006
@@ -37,7 +37,6 @@
#include <initng_active_state.h>
#include <initng_active_db.h>
#include <initng_process_db.h>
-#include <initng_service_cache.h>
#include <initng_handler.h>
#include <initng_active_db.h>
#include <initng_toolbox.h>
@@ -52,6 +51,10 @@
#include <initng_common.h>
#include <initng_string_tools.h>
+#ifdef SERVICE_CACHE
+#include <initng_service_cache.h>
+#endif
+
#include <initng-paths.h>
#include "initng_service_file.h"
@@ -224,7 +227,9 @@
/* set type */
new_active->current_state = &PARSING;
+#ifdef SERVICE_CACHE
new_active->from_service = &NO_CACHE;
+#endif
/* register it */
if (!initng_active_db_register(new_active))
@@ -770,7 +775,9 @@
/* set type */
new_active->current_state = &PARSING;
+#ifdef SERVICE_CACHE
new_active->from_service = &NO_CACHE;
+#endif
new_active->type = &unset;
/* register it */
Modified: initng/trunk/plugins/stcmd/initng_stcmd.c
==============================================================================
--- initng/trunk/plugins/stcmd/initng_stcmd.c (original)
+++ initng/trunk/plugins/stcmd/initng_stcmd.c Thu Jun 8 18:32:44 2006
@@ -36,7 +36,7 @@
#include <initng_global.h>
#include <initng_process_db.h>
-#include <initng_service_cache.h>
+//#include <initng_service_cache.h>
#include <initng_handler.h>
#include <initng_active_db.h>
#include <initng_toolbox.h>
@@ -58,7 +58,6 @@
static int cmd_free_service(char *arg);
static int cmd_restart(char *arg);
static char *cmd_print_uptime(char *arg);
-static int cmd_reload(char *arg);
static int cmd_initng_halt(char *arg);
static int cmd_initng_poweroff(char *arg);
static int cmd_initng_reboot(char *arg);
@@ -67,7 +66,11 @@
/* static int cmd_unload_module(char *arg); */
static int cmd_percent_done(char *arg);
+#ifdef SERVICE_CACHE
static char *cmd_get_father_of(char *arg);
+static int cmd_reload(char *arg);
+#endif
+
static char *cmd_get_depends_on(char *arg);
static char *cmd_get_depends_on_deep(char *arg);
static char *cmd_get_depends_off(char *arg);
@@ -97,11 +100,18 @@
{(void *) &cmd_print_uptime},
"Print uptime"
};
+
+#ifdef SERVICE_CACHE
s_command SERVICE_RELOAD = { 'R', "reload_service", TRUE_OR_FALSE_COMMAND, STANDARD_COMMAND,
USES_OPT,
{(void *) &cmd_reload},
"Reload service data from disk ( reparse /etc/initng )"
};
+s_command GET_FATHER_OF = { 'f', "father", STRING_COMMAND, ADVANCHED_COMMAND, REQUIRES_OPT,
+ {(void *) &cmd_get_father_of},
+ "Print father to"
+};
+#endif
s_command POWEROFF_INITNG = { '0', "poweroff", TRUE_OR_FALSE_COMMAND, STANDARD_COMMAND, NO_OPT,
{(void *) &cmd_initng_poweroff},
@@ -140,10 +150,6 @@
"Prints percent of system up"
};
-s_command GET_FATHER_OF = { 'f', "father", STRING_COMMAND, ADVANCHED_COMMAND, REQUIRES_OPT,
- {(void *) &cmd_get_father_of},
- "Print father to"
-};
s_command DEPENDS_ON = { 'a', "service_dep_on", STRING_COMMAND, ADVANCHED_COMMAND, REQUIRES_OPT,
{(void *) &cmd_get_depends_on},
@@ -239,8 +245,10 @@
}
}
+#ifdef SERVICE_CACHE
/* also flush file cache */
cmd_reload(arg);
+#endif
return (ret);
}
@@ -264,11 +272,13 @@
D_("removing service data for %s, to make sure .ii file is reloaded!\n",
arg);
+#ifdef SERVICE_CACHE
if (apt->from_service)
{
list_del(&apt->from_service->list);
initng_service_cache_free(apt->from_service);
}
+#endif
D_("Restarting service %s\n", apt->name);
return (initng_handler_restart_service(apt));
@@ -306,7 +316,7 @@
}
}
-
+#ifdef SERVICE_CACHE
static int cmd_reload(char *arg)
{
service_cache_h *s;
@@ -331,6 +341,7 @@
initng_service_cache_free(s);
return (TRUE);
}
+#endif
static int cmd_initng_reboot(char *arg)
{
@@ -403,8 +414,10 @@
if (initng_load_module(arg) == NULL)
return (FALSE);
+#ifdef SERVICE_CACHE
/* clear the service cache, so new variables will be read next time */
initng_service_cache_free_all();
+#endif
return (TRUE);
}
@@ -428,7 +441,7 @@
}
-
+#ifdef SERVICE_CACHE
static char *cmd_get_father_of(char *arg)
{
char *string = NULL;
@@ -448,7 +461,7 @@
return (string);
}
-
+#endif
static char *cmd_get_depends_on(char *arg)
{
@@ -639,7 +652,10 @@
initng_command_register(&FREE_SERVICE);
initng_command_register(&RESTART_SERVICE);
initng_command_register(&PRINT_UPTIME);
+#ifdef SERVICE_CACHE
+ initng_command_register(&GET_FATHER_OF);
initng_command_register(&SERVICE_RELOAD);
+#endif
if (g.i_am == I_AM_INIT)
{
initng_command_register(&REBOOT_INITNG);
@@ -650,7 +666,6 @@
initng_command_register(&LOAD_MODULE);
/* initng_command_register(&UNLOAD_MODULE); */
initng_command_register(&PERCENT_DONE);
- initng_command_register(&GET_FATHER_OF);
initng_command_register(&DEPENDS_ON);
initng_command_register(&DEPENDS_ON_DEEP);
initng_command_register(&DEPENDS_OFF);
@@ -672,7 +687,10 @@
initng_command_unregister(&FREE_SERVICE);
initng_command_unregister(&RESTART_SERVICE);
initng_command_unregister(&PRINT_UPTIME);
+#ifdef SERVICE_CACHE
initng_command_unregister(&SERVICE_RELOAD);
+ initng_command_unregister(&GET_FATHER_OF);
+#endif
if (g.i_am == I_AM_INIT)
{
initng_command_unregister(&REBOOT_INITNG);
@@ -683,7 +701,6 @@
initng_command_unregister(&LOAD_MODULE);
/* initng_command_unregister(&UNLOAD_MODULE); */
initng_command_unregister(&PERCENT_DONE);
- initng_command_unregister(&GET_FATHER_OF);
initng_command_unregister(&DEPENDS_ON);
initng_command_unregister(&DEPENDS_ON_DEEP);
initng_command_unregister(&DEPENDS_OFF);
Modified: initng/trunk/plugins/suid/initng_suid.c
==============================================================================
--- initng/trunk/plugins/suid/initng_suid.c (original)
+++ initng/trunk/plugins/suid/initng_suid.c Thu Jun 8 18:32:44 2006
@@ -41,13 +41,13 @@
void adjust_env(active_db_h * service, const char *vn, const char *vv)
{
/* add to service cache */
- if (is_var(&ENV, vn, service->from_service))
+ if (is_var(&ENV, vn, service))
{
return; /* Assume they were set by .i file, don't override */
}
else
{
- set_string_var(&ENV, i_strdup(vn), service->from_service,
+ set_string_var(&ENV, i_strdup(vn), service,
i_strdup(vv));
}
}
Modified: initng/trunk/src/CMakeLists.txt
==============================================================================
--- initng/trunk/src/CMakeLists.txt (original)
+++ initng/trunk/src/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -1,5 +1,7 @@
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} )
+IF(SERVICE_CACHE)
+
SET(initng_lib_srcs
initng_active_db.c
initng_active_state.c
@@ -20,7 +22,40 @@
initng_plugin_callers.c
initng_plugin_hook.c
initng_process_db.c
+ initng_service_data_types.c
+ initng_service_types.c
initng_service_cache.c
+ initng_signal.c
+ initng_static_data_id.c
+ initng_static_states.c
+ initng_static_service_types.c
+ initng_string_tools.c
+ initng_struct_data.c
+ initng_toolbox.c
+)
+
+ELSE(SERVICE_CACHE)
+
+SET(initng_lib_srcs
+ initng_active_db.c
+ initng_active_state.c
+ initng_common.c
+ initng_control_command.c
+ initng_depend.c
+ initng_error.c
+ initng_execute.c
+ initng_env_variable.c
+ initng_fd.c
+ initng_fork.c
+ initng_handler.c
+ initng_interrupt.c
+ initng_kill_handler.c
+ initng_load_module.c
+ initng_main.c
+ initng_open_read_close.c
+ initng_plugin_callers.c
+ initng_plugin_hook.c
+ initng_process_db.c
initng_service_data_types.c
initng_service_types.c
initng_signal.c
@@ -32,6 +67,10 @@
initng_toolbox.c
)
+
+ENDIF(SERVICE_CACHE)
+
+
SET(initng_bin_srcs
main.c
initng_global.c
@@ -49,6 +88,9 @@
########### install files ###############
+
+IF(SERVICE_CACHE)
+
SET(initng_headers
initng_global.h
initng.h
@@ -88,5 +130,46 @@
initng_toolbox.h
initng_msg.h
)
+ELSE(SERVICE_CACHE)
+SET(initng_headers
+ initng_global.h
+ initng.h
+ initng_module.h
+ initng_plugin.h
+ initng_system_states.h
+ initng_list.h
+ initng_active_db.h
+ initng_active_state.h
+ initng_common.h
+ initng_control_command.h
+ initng_depend.h
+ initng_error.h
+ initng_execute.h
+ initng_env_variable.h
+ initng_fd.h
+ initng_fork.h
+ initng_handler.h
+ initng_interrupt.h
+ initng_is.h
+ initng_kill_handler.h
+ initng_load_module.h
+ initng_main.h
+ initng_open_read_close.h
+ initng_plugin_callers.h
+ initng_plugin_hook.h
+ initng_process_db.h
+ initng_service_data_types.h
+ initng_service_types.h
+ initng_signal.h
+ initng_static_data_id.h
+ initng_static_states.h
+ initng_static_service_types.h
+ initng_string_tools.h
+ initng_struct_data.h
+ initng_toolbox.h
+ initng_msg.h
+)
+
+ENDIF(SERVICE_CACHE)
INSTALL_FILES(${INCLUDE_INSTALL_DIR}/initng FILES ${initng_headers})
Modified: initng/trunk/src/initng_active_db.c
==============================================================================
--- initng/trunk/src/initng_active_db.c (original)
+++ initng/trunk/src/initng_active_db.c Thu Jun 8 18:32:44 2006
@@ -32,7 +32,6 @@
#include "initng_global.h"
#include "initng_active_db.h"
#include "initng_process_db.h"
-#include "initng_service_cache.h"
#include "initng_toolbox.h"
#include "initng_common.h"
#include "initng_static_data_id.h"
@@ -100,6 +99,7 @@
}
}
+#ifdef SERVICE_CACHE
/*
* This is called before dynamic data fetchers goes resursive.
* and give us a chanse to try to set head->res if possible
@@ -132,6 +132,7 @@
service->from_service = &NO_CACHE;
return (FALSE);
}
+#endif
/*
* This will search and find the best possible.
@@ -162,6 +163,7 @@
return (NULL);
}
+#ifdef SERVICE_CACHE
/* return index of service in active data structure or -1 if not found */
active_db_h *initng_active_db_find_by_service_h(service_cache_h * service)
{
@@ -182,6 +184,7 @@
return NULL;
}
+#endif
/* returns pointer to active_h process belongs to, and sets process_type */
active_db_h *initng_active_db_find_by_pid(pid_t pid)
@@ -258,8 +261,12 @@
return (NULL);
}
+#ifdef SERVICE_CACHE
/* initiate the data list, little special here sense data list relays on service->from_service */
DATA_HEAD_INIT_REQUEST(&new_active->data, NULL, &reload_service_cache);
+#else
+ DATA_HEAD_INIT_REQUEST(&new_active->data, NULL, NULL);
+#endif
/* get the time, and copy that time to all time entries */
gettimeofday(&new_active->time_current_state, NULL);
@@ -270,7 +277,6 @@
/* mark this service as stopped, because it is not yet starting, or running */
new_active->current_state = &NEW;
- new_active->from_service = NULL;
/* reset alarm */
new_active->alarm = 0;
@@ -305,6 +311,7 @@
/* remove every data entry */
remove_all(pf);
+#ifdef SERVICE_CACHE
/* remove file cache of entry if present, so we got a fresh read from file when this service is restarted */
if (pf->from_service)
{
@@ -313,6 +320,7 @@
/* free entry */
initng_service_cache_free(pf->from_service);
}
+#endif
/* free service name */
if (pf->name)
@@ -354,7 +362,7 @@
}
}
-
+#ifdef SERVICE_CACHE
/* update all service_h pointers in whole active_db */
void initng_active_db_change_service_h(service_cache_h * from,
service_cache_h * to)
@@ -381,6 +389,7 @@
}
}
}
+#endif
/* active_db_count counts a type, if null, count all */
int initng_active_db_count(a_state_h * current_state_to_count)
Modified: initng/trunk/src/initng_active_db.h
==============================================================================
--- initng/trunk/src/initng_active_db.h (original)
+++ initng/trunk/src/initng_active_db.h Thu Jun 8 18:32:44 2006
@@ -25,7 +25,9 @@
#include <sys/types.h>
#include <unistd.h>
+#ifdef SERVICE_CACHE
#include "initng_service_cache.h"
+#endif
#include "initng_struct_data.h"
#include "initng_list.h"
@@ -77,8 +79,10 @@
/* list of system processes that are connected to this service */
process_h processes;
+#ifdef SERVICE_CACHE
/* a pointer to the entry in service_cache_db that matches our service */
service_cache_h *from_service;
+#endif
/*
* list of data
@@ -115,11 +119,16 @@
active_db_h *initng_active_db_find_by_name(const char *service);
active_db_h *initng_active_db_find_in_name(const char *service);
active_db_h *initng_active_db_find_by_pid(pid_t pid);
-active_db_h *initng_active_db_find_by_service_h(service_cache_h * service);
-/* mangling */
+
+/* service cache calls */
+#ifdef SERVICE_CACHE
+active_db_h *initng_active_db_find_by_service_h(service_cache_h * service);
void initng_active_db_change_service_h(service_cache_h * from,
service_cache_h * to);
+#endif
+
+/* mangling */
void initng_active_db_compensate_time(time_t skew);
/* reload service cache if not set */
Modified: initng/trunk/src/initng_common.c
==============================================================================
--- initng/trunk/src/initng_common.c (original)
+++ initng/trunk/src/initng_common.c Thu Jun 8 18:32:44 2006
@@ -74,6 +74,7 @@
return (FALSE);
}
+#ifdef SERVICE_CACHE
/* creates a active service */
active_db_h *initng_common_load_to_active(const char *service_name)
{
@@ -174,9 +175,10 @@
initng_active_db_free(a_new);
return (NULL);
}
+#endif
-
+#ifdef SERVICE_CACHE
/* this function tries to find the from_service pointer from a service name.
this actually loads the config from disk, parser by parser */
int initng_common_get_service(active_db_h * service)
@@ -290,7 +292,9 @@
return (TRUE);
}
+#endif
+#ifdef SERVICE_CACHE
service_cache_h *initng_common_parse_service(const char *name)
{
s_call *current, *safe = NULL;
@@ -347,6 +351,7 @@
/* return the service */
return (service);
}
+#endif
/*
* Use this function to change the status of an service, this
Modified: initng/trunk/src/initng_common.h
==============================================================================
--- initng/trunk/src/initng_common.h (original)
+++ initng/trunk/src/initng_common.h Thu Jun 8 18:32:44 2006
@@ -23,7 +23,9 @@
#include "initng.h"
#include "initng_active_db.h"
+#ifdef SERVICE_CACHE
service_cache_h *initng_common_parse_service(const char *name);
+#endif
active_db_h *initng_common_load_to_active(const char *new_s_name);
int initng_common_get_service(active_db_h * service);
int initng_common_mark_service(active_db_h * service, a_state_h * state);
Modified: initng/trunk/src/initng_depend.c
==============================================================================
--- initng/trunk/src/initng_depend.c (original)
+++ initng/trunk/src/initng_depend.c Thu Jun 8 18:32:44 2006
@@ -521,8 +521,6 @@
assert(service->name);
#ifdef DEBUG
D_("initng_depend_start_deps(%s);\n", service->name);
- if (!service->from_service)
- D_(" ** Data not loaded for %s!\n", service->name);
#endif
/* walk all possible entrys, use get_next with NULL becouse we want both REQUIRE and NEED */
Modified: initng/trunk/src/initng_env_variable.c
==============================================================================
--- initng/trunk/src/initng_env_variable.c (original)
+++ initng/trunk/src/initng_env_variable.c Thu Jun 8 18:32:44 2006
@@ -593,6 +593,7 @@
return (ret);
}
+#ifdef SERVICE_CACHE
/* this shud be a complete copy of fix_variables, but with a service_cache_h instead of a active_h to use */
/* WARNING, fix_variables will return from pointer, if no $ was found, so
* when freeing you must do a if(got!=from) free(got) */
@@ -768,7 +769,7 @@
/* return what we got */
return (ret);
}
-
+#endif
Modified: initng/trunk/src/initng_env_variable.h
==============================================================================
--- initng/trunk/src/initng_env_variable.h (original)
+++ initng/trunk/src/initng_env_variable.h Thu Jun 8 18:32:44 2006
@@ -28,7 +28,9 @@
char *fix_redefined_variable(const char *name, const char *oldval,
const char *newdef);
char *fix_variables(const char *from, active_db_h * s);
+#ifdef SERVICE_CACHE
char *fix_variables2(const char *from, service_cache_h * s);
+#endif
char **new_environ(active_db_h * s);
void free_environ(char **tf);
int is_same_env_var(char *var1, char *var2);
Modified: initng/trunk/src/initng_fd.c
==============================================================================
--- initng/trunk/src/initng_fd.c (original)
+++ initng/trunk/src/initng_fd.c Thu Jun 8 18:32:44 2006
@@ -27,7 +27,7 @@
#include <fcntl.h> /* fcntl() */
#include "initng.h"
#include "initng_global.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_load_module.h"
#include "initng_toolbox.h"
#include "initng_signal.h"
Modified: initng/trunk/src/initng_global.c
==============================================================================
--- initng/trunk/src/initng_global.c (original)
+++ initng/trunk/src/initng_global.c Thu Jun 8 18:32:44 2006
@@ -46,8 +46,10 @@
assert(argv);
assert(env);
+#ifdef SERVICE_CACHE
/* INITZIATE NO_CACHE_TYPE, to make sure it wont segfault when locking up data */
DATA_HEAD_INIT(&NO_CACHE.data);
+#endif
/* zero the complete s_global */
memset(&g, 0, sizeof(s_global));
@@ -95,7 +97,9 @@
*/
INIT_LIST_HEAD(&g.active_database.list);
INIT_LIST_HEAD(&g.active_database.interrupt);
+#ifdef SERVICE_CACHE
INIT_LIST_HEAD(&g.service_cache.list);
+#endif
INIT_LIST_HEAD(&g.states.list);
INIT_LIST_HEAD(&g.ptypes.list);
INIT_LIST_HEAD(&g.module_db.list);
@@ -106,7 +110,9 @@
/* all hooks to hook at */
INIT_LIST_HEAD(&g.ASTATUS_CHANGE.list);
+#ifdef SERVICE_CACHE
INIT_LIST_HEAD(&g.PARSERS.list);
+#endif
INIT_LIST_HEAD(&g.SWATCHERS.list);
INIT_LIST_HEAD(&g.FDWATCHERS.list);
INIT_LIST_HEAD(&g.BUFFER_WATCHER.list);
@@ -118,7 +124,9 @@
INIT_LIST_HEAD(&g.ERR_MSG.list);
INIT_LIST_HEAD(&g.LAUNCH.list);
INIT_LIST_HEAD(&g.DEP_ON.list);
+#ifdef SERVICE_CACHE
INIT_LIST_HEAD(&g.ADDITIONAL_PARSE.list);
+#endif
INIT_LIST_HEAD(&g.DUMP_ACTIVE_DB.list);
INIT_LIST_HEAD(&g.RELOAD_ACTIVE_DB.list);
INIT_LIST_HEAD(&g.IS_CHANGE.list);
@@ -231,7 +239,9 @@
/* free all databases */
initng_active_db_free_all(); /* clean process_db */
+#ifdef SERVICE_CACHE
initng_service_cache_free_all(); /* clean service_cache_db */
+#endif
initng_service_data_type_unregister_all(); /* clean option_db */
initng_command_unregister_all(); /* clean command_db */
Modified: initng/trunk/src/initng_global.h
==============================================================================
--- initng/trunk/src/initng_global.h (original)
+++ initng/trunk/src/initng_global.h Thu Jun 8 18:32:44 2006
@@ -21,7 +21,9 @@
#define INITNG_GLOBAL_H
#include "initng.h"
#include "initng_active_db.h"
+#ifdef SERVICE_CACHE
#include "initng_service_cache.h"
+#endif
#include "initng_module.h"
#include "initng_plugin.h"
#include "initng_struct_data.h"
@@ -54,7 +56,9 @@
typedef struct
{
/* all the databases */
+#ifdef SERVICE_CACHE
service_cache_h service_cache;
+#endif
active_db_h active_database;
a_state_h states;
ptype_h ptypes;
@@ -68,8 +72,10 @@
/* all hooks to hook at */
s_call ASTATUS_CHANGE; /* Calls as soon as the ASTATUS changes */
+#ifdef SERVICE_CACHE
s_call PARSERS; /* Called when a service needs its data */
s_call ADDITIONAL_PARSE; /* Called after a service been parsed, and extra parsing may exist */
+#endif
s_call SWATCHERS; /* Called when system state changes */
s_call FDWATCHERS; /* Called when initng open file descriptors receive data */
s_call BUFFER_WATCHER; /* Called when a service have outputed, and initng have filled its output buffer. */
Modified: initng/trunk/src/initng_handler.c
==============================================================================
--- initng/trunk/src/initng_handler.c (original)
+++ initng/trunk/src/initng_handler.c Thu Jun 8 18:32:44 2006
@@ -335,6 +335,7 @@
return (to_load);
}
+#ifdef SERVICE_CACHE
/* else try create and load a new service */
if ((to_load = initng_common_load_to_active(service)))
{
@@ -343,6 +344,7 @@
return (to_load);
}
+#endif
/* the function calling this function will print out an error */
D_("Unable to load active for service %s\n", service);
Modified: initng/trunk/src/initng_kill_handler.c
==============================================================================
--- initng/trunk/src/initng_kill_handler.c (original)
+++ initng/trunk/src/initng_kill_handler.c Thu Jun 8 18:32:44 2006
@@ -38,7 +38,7 @@
#include "initng_main.h"
#include "initng_common.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_active_db.h"
#include "initng_load_module.h"
#include "initng_plugin_callers.h"
Modified: initng/trunk/src/initng_load_module.c
==============================================================================
--- initng/trunk/src/initng_load_module.c (original)
+++ initng/trunk/src/initng_load_module.c Thu Jun 8 18:32:44 2006
@@ -28,7 +28,7 @@
#include <errno.h>
#include "initng.h"
#include "initng_global.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_load_module.h"
#include "initng_module.h"
#include "initng_toolbox.h"
Modified: initng/trunk/src/initng_load_module.h
==============================================================================
--- initng/trunk/src/initng_load_module.h (original)
+++ initng/trunk/src/initng_load_module.h Thu Jun 8 18:32:44 2006
@@ -20,7 +20,7 @@
#ifndef INITNG_LOAD_MODULE
#define INITNG_LOAD_MODULE
#include "initng_active_db.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_global.h"
#include "initng_system_states.h"
#include "initng_module.h"
Modified: initng/trunk/src/initng_main.h
==============================================================================
--- initng/trunk/src/initng_main.h (original)
+++ initng/trunk/src/initng_main.h Thu Jun 8 18:32:44 2006
@@ -21,7 +21,7 @@
#define INITNG_MAIN_H
#include <sys/types.h>
#include <unistd.h>
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_process_db.h"
#include "initng_global.h"
void initng_main_exit(int i);
Modified: initng/trunk/src/initng_plugin.h
==============================================================================
--- initng/trunk/src/initng_plugin.h (original)
+++ initng/trunk/src/initng_plugin.h Thu Jun 8 18:32:44 2006
@@ -46,7 +46,9 @@
/* put all hook functions here */
int (*status_change) (active_db_h * service);
+#ifdef SERVICE_CACHE
service_cache_h *(*parser) (const char *name);
+#endif
void (*swatcher) (h_sys_state state);
int (*buffer_watcher) (active_db_h * service, process_h * process,
pipe_h * pi, char *buffer_pos);
@@ -63,7 +65,9 @@
int (*dep_on_check) (active_db_h * service, active_db_h * check);
void (*signal_hook) (int signal);
f_module_h *fdh;
+#ifdef SERVICE_CACHE
int (*additional_parse) (service_cache_h * service);
+#endif
int (*dump_active_db) (void);
int (*reload_active_db) (void);
int (*start_dep_met) (active_db_h * service);
Modified: initng/trunk/src/initng_plugin_callers.c
==============================================================================
--- initng/trunk/src/initng_plugin_callers.c (original)
+++ initng/trunk/src/initng_plugin_callers.c Thu Jun 8 18:32:44 2006
@@ -28,7 +28,7 @@
#include <time.h>
#include "initng.h"
#include "initng_global.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_load_module.h"
#include "initng_toolbox.h"
#include "initng_signal.h"
Modified: initng/trunk/src/initng_plugin_callers.h
==============================================================================
--- initng/trunk/src/initng_plugin_callers.h (original)
+++ initng/trunk/src/initng_plugin_callers.h Thu Jun 8 18:32:44 2006
@@ -19,7 +19,7 @@
#ifndef INITNG_PLUGIN_CALLERS
#define INITNG_PLUGIN_CALLERS
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_active_db.h"
#include "initng_global.h"
#include "initng_system_states.h"
Modified: initng/trunk/src/initng_process_db.h
==============================================================================
--- initng/trunk/src/initng_process_db.h (original)
+++ initng/trunk/src/initng_process_db.h Thu Jun 8 18:32:44 2006
@@ -23,7 +23,7 @@
#include <sys/types.h>
#include <unistd.h>
#include "initng_active_db.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_list.h"
/* this doesn't work!, it will create a circular dependency */
Modified: initng/trunk/src/initng_service_data_types.c
==============================================================================
--- initng/trunk/src/initng_service_data_types.c (original)
+++ initng/trunk/src/initng_service_data_types.c Thu Jun 8 18:32:44 2006
@@ -90,7 +90,9 @@
void initng_service_data_type_unregister(s_entry * ent)
{
active_db_h *currentA = NULL;
+#ifdef SERVICE_CACHE
service_cache_h *currentS = NULL;
+#endif
S_;
assert(ent);
@@ -101,11 +103,13 @@
remove(ent, currentA);
}
+#ifdef SERVICE_CACHE
/* clear the file cache from this data */
while_service_cache(currentS)
{
remove(ent, currentS);
}
+#endif
/* remove it from the list */
list_del(&ent->list);
Modified: initng/trunk/src/main.c
==============================================================================
--- initng/trunk/src/main.c (original)
+++ initng/trunk/src/main.c Thu Jun 8 18:32:44 2006
@@ -56,7 +56,7 @@
#include "initng_main.h"
#include "initng_service_data_types.h"
#include "initng_fd.h"
-#include "initng_service_cache.h"
+//#include "initng_service_cache.h"
#include "initng_process_db.h"
#include "initng_global.h"
Modified: initng/trunk/tools/CMakeLists.txt
==============================================================================
--- initng/trunk/tools/CMakeLists.txt (original)
+++ initng/trunk/tools/CMakeLists.txt Thu Jun 8 18:32:44 2006
@@ -4,8 +4,10 @@
ADD_EXECUTABLE(itype itype.c)
+IF(SERVICE_CACHE)
ADD_EXECUTABLE(itool itool.c)
TARGET_LINK_LIBRARIES(itool initng)
+ENDIF(SERVICE_CACHE)
INSTALL_PROGRAMS(${SBIN_INSTALL_DIR} initng-segfault)
INSTALL_TARGETS(${SBIN_INSTALL_DIR} killalli5)
Modified: initng/trunk/tools/itool.c
==============================================================================
--- initng/trunk/tools/itool.c (original)
+++ initng/trunk/tools/itool.c Thu Jun 8 18:32:44 2006
@@ -45,6 +45,7 @@
#include <initng_signal.h>
#include <initng_handler.h>
#include <initng_execute.h> /* new_environ() */
+#include <initng_service_cache.h>
#include <initng_active_db.h>
#include <initng_load_module.h>
#include <initng_plugin_callers.h>
@@ -129,7 +130,7 @@
if (strcmp(argv[2], "print") == 0)
{
- char *out = service_db_print(serv);
+ char *out = service_db_print_all(serv->name);
printf("%s\n", out);
free(out);
More information about the Initng-svn
mailing list