[Initng-svn] r4351 - in initng/trunk: plugins/cpout plugins/dbus_event plugins/history plugins/logfile plugins/nge src
svn at initng.thinktux.net
svn at initng.thinktux.net
Sun Jun 4 12:38:39 CEST 2006
Author: jimmy
Date: Sun Jun 4 12:38:36 2006
New Revision: 4351
Modified:
initng/trunk/plugins/cpout/initng_colorprint_out.c
initng/trunk/plugins/dbus_event/initng_dbusevent.c
initng/trunk/plugins/history/initng_history.c
initng/trunk/plugins/logfile/initng_logfile.c
initng/trunk/plugins/nge/initng_nge.c
initng/trunk/plugins/syslog/initng_syslog.c
initng/trunk/src/initng_fd.c
initng/trunk/src/initng_global.c
initng/trunk/src/initng_global.h
initng/trunk/src/initng_plugin.h
Log:
Add pipe_h * entry to PIPEWATCHER, and renamed that hook to BUFFER_WATCHER
Modified: initng/trunk/plugins/cpout/initng_colorprint_out.c
==============================================================================
--- initng/trunk/plugins/cpout/initng_colorprint_out.c (original)
+++ initng/trunk/plugins/cpout/initng_colorprint_out.c Sun Jun 4 12:38:36 2006
@@ -351,7 +351,7 @@
D_("print_system_state(): new system state: %i\n", state);
}
-static int print_program_output(active_db_h * service, process_h * x,
+static int print_program_output(active_db_h * service, process_h * x, pipe_h * pi,
char *buffer_pos)
{
/*
@@ -565,7 +565,7 @@
initng_plugin_hook_register(&g.ERR_MSG, 10, &cp_print_error);
initng_plugin_hook_register(&g.IS_CHANGE, 80, &print_output);
initng_plugin_hook_register(&g.SWATCHERS, 80, &print_system_state);
- initng_plugin_hook_register(&g.PIPEWATCHERS, 50, &print_program_output);
+ initng_plugin_hook_register(&g.BUFFER_WATCHER, 50, &print_program_output);
return (TRUE);
}
@@ -578,7 +578,7 @@
initng_plugin_hook_unregister(&g.IS_CHANGE, &print_output);
initng_plugin_hook_unregister(&g.SWATCHERS, &print_system_state);
- initng_plugin_hook_unregister(&g.PIPEWATCHERS, &print_program_output);
+ initng_plugin_hook_unregister(&g.BUFFER_WATCHER, &print_program_output);
initng_plugin_hook_unregister(&g.ERR_MSG, &cp_print_error);
cprintf(" Goodbye\n");
fflush(output);
Modified: initng/trunk/plugins/dbus_event/initng_dbusevent.c
==============================================================================
--- initng/trunk/plugins/dbus_event/initng_dbusevent.c (original)
+++ initng/trunk/plugins/dbus_event/initng_dbusevent.c Sun Jun 4 12:38:36 2006
@@ -65,7 +65,7 @@
static void check_socket(int signal);
static int connect_to_dbus(void);
static void system_state_change(e_is state);
-static int system_pipe_watchers(active_db_h * service, process_h * process,
+static int system_pipe_watchers(active_db_h * service, process_h * process, pipe_h * pi,
char *output);
static int print_error(e_mt mt, const char *file, const char *func, int line,
const char *format, va_list arg);
@@ -267,7 +267,7 @@
return;
}
-static int system_pipe_watchers(active_db_h * service, process_h * process,
+static int system_pipe_watchers(active_db_h * service, process_h * process, pipe_h * pi,
char *output)
{
DBusMessage *msg;
Modified: initng/trunk/plugins/history/initng_history.c
==============================================================================
--- initng/trunk/plugins/history/initng_history.c (original)
+++ initng/trunk/plugins/history/initng_history.c Sun Jun 4 12:38:36 2006
@@ -338,7 +338,7 @@
return (TRUE);
}
-static int fetch_output(active_db_h * service, process_h * process,
+static int fetch_output(active_db_h * service, process_h * process, pipe_h * pi,
char *buffer_pos)
{
history_h *tmp_e = NULL;
@@ -380,7 +380,7 @@
initng_plugin_hook_register(&g.ASTATUS_CHANGE, 1000, &history_add_values);
initng_plugin_hook_register(&g.COMPENSATE_TIME, 50,
&history_db_compensate_time);
- initng_plugin_hook_register(&g.PIPEWATCHERS, 50, &fetch_output);
+ initng_plugin_hook_register(&g.BUFFER_WATCHER, 50, &fetch_output);
return (TRUE);
}
@@ -394,5 +394,5 @@
initng_plugin_hook_unregister(&g.ASTATUS_CHANGE, &history_add_values);
initng_plugin_hook_unregister(&g.COMPENSATE_TIME,
&history_db_compensate_time);
- initng_plugin_hook_unregister(&g.PIPEWATCHERS, &fetch_output);
+ initng_plugin_hook_unregister(&g.BUFFER_WATCHER, &fetch_output);
}
Modified: initng/trunk/plugins/logfile/initng_logfile.c
==============================================================================
--- initng/trunk/plugins/logfile/initng_logfile.c (original)
+++ initng/trunk/plugins/logfile/initng_logfile.c Sun Jun 4 12:38:36 2006
@@ -38,7 +38,7 @@
s_entry LOGFILE = { "logfile", STRING, NULL, "An extra output of service output." };
-static int program_output(active_db_h * service, process_h * x,
+static int program_output(active_db_h * service, process_h * x, pipe_h * pi,
char *buffer_pos)
{
const char *filename = NULL;
@@ -98,7 +98,7 @@
initng_service_data_type_register(&LOGFILE);
- initng_plugin_hook_register(&g.PIPEWATCHERS, 30, &program_output);
+ initng_plugin_hook_register(&g.BUFFER_WATCHER, 30, &program_output);
return (TRUE);
}
@@ -110,5 +110,5 @@
initng_service_data_type_unregister(&LOGFILE);
- initng_plugin_hook_unregister(&g.PIPEWATCHERS, &program_output);
+ initng_plugin_hook_unregister(&g.BUFFER_WATCHER, &program_output);
}
Modified: initng/trunk/plugins/nge/initng_nge.c
==============================================================================
--- initng/trunk/plugins/nge/initng_nge.c (original)
+++ initng/trunk/plugins/nge/initng_nge.c Sun Jun 4 12:38:36 2006
@@ -74,7 +74,7 @@
static int astatus_change(active_db_h * service);
static void system_state_change(e_is state);
-static int system_pipe_watchers(active_db_h * service, process_h * process,
+static int system_pipe_watchers(active_db_h * service, process_h * process, pipe_h * pi,
char *output);
static int print_error(e_mt mt, const char *file, const char *func, int line,
const char *format, va_list arg);
@@ -138,7 +138,7 @@
*/
initng_plugin_hook_unregister(&g.ASTATUS_CHANGE, &astatus_change);
initng_plugin_hook_unregister(&g.SWATCHERS, &system_state_change);
- initng_plugin_hook_unregister(&g.PIPEWATCHERS, &system_pipe_watchers);
+ initng_plugin_hook_unregister(&g.BUFFER_WATCHER, &system_pipe_watchers);
initng_plugin_hook_unregister(&g.ERR_MSG, &print_error);
initng_plugin_hook_unregister(&g.HANDLE_KILLED, &handle_killed);
@@ -211,7 +211,7 @@
*/
initng_plugin_hook_register(&g.ASTATUS_CHANGE, 50, &astatus_change);
initng_plugin_hook_register(&g.SWATCHERS, 50, &system_state_change);
- initng_plugin_hook_register(&g.PIPEWATCHERS, 50,
+ initng_plugin_hook_register(&g.BUFFER_WATCHER, 50,
&system_pipe_watchers);
initng_plugin_hook_register(&g.ERR_MSG, 50, &print_error);
initng_plugin_hook_register(&g.HANDLE_KILLED, 1, &handle_killed);
@@ -509,7 +509,7 @@
free(buffert);
}
-static int system_pipe_watchers(active_db_h * service, process_h * process,
+static int system_pipe_watchers(active_db_h * service, process_h * process, pipe_h * pi,
char *output)
{
char *buffert = NULL;
Modified: initng/trunk/plugins/syslog/initng_syslog.c
==============================================================================
--- initng/trunk/plugins/syslog/initng_syslog.c (original)
+++ initng/trunk/plugins/syslog/initng_syslog.c Sun Jun 4 12:38:36 2006
@@ -234,7 +234,7 @@
return;
}
-static int syslog_fetch_output(active_db_h * service, process_h * process,
+static int syslog_fetch_output(active_db_h * service, process_h * process, pipe_h * pi,
char *buffer_pos)
{
char log[201];
@@ -336,7 +336,7 @@
&syslog_print_status_change);
initng_plugin_hook_register(&g.SWATCHERS, 100,
&syslog_print_system_state);
- initng_plugin_hook_register(&g.PIPEWATCHERS, 100, &syslog_fetch_output);
+ initng_plugin_hook_register(&g.BUFFER_WATCHER, 100, &syslog_fetch_output);
initng_plugin_hook_register(&g.ERR_MSG, 50, &syslog_print_error);
return (TRUE);
@@ -354,7 +354,7 @@
initng_plugin_hook_unregister(&g.IS_CHANGE, &syslog_print_status_change);
initng_plugin_hook_unregister(&g.SWATCHERS, &syslog_print_system_state);
- initng_plugin_hook_unregister(&g.PIPEWATCHERS, &syslog_fetch_output);
+ initng_plugin_hook_unregister(&g.BUFFER_WATCHER, &syslog_fetch_output);
initng_plugin_hook_unregister(&g.ERR_MSG, &syslog_print_error);
free_buffert();
closelog();
Modified: initng/trunk/src/initng_fd.c
==============================================================================
--- initng/trunk/src/initng_fd.c (original)
+++ initng/trunk/src/initng_fd.c Sun Jun 4 12:38:36 2006
@@ -62,7 +62,7 @@
* be printed to screen anyway.
*/
static void initng_fd_plugin_readpipe(active_db_h * service,
- process_h * process, char *buffer_pos)
+ process_h * process, pipe_h * pi, char *buffer_pos)
{
s_call *current = NULL;
int delivered = FALSE;
@@ -70,10 +70,10 @@
S_;
- while_list(current, &g.PIPEWATCHERS)
+ while_list(current, &g.BUFFER_WATCHER)
{
D_("Calling pipewatcher plugin.\n");
- if ((*current->c.pipewatcher) (service, process, buffer_pos) == TRUE)
+ if ((*current->c.buffer_watcher) (service, process, pi, buffer_pos) == TRUE)
delivered = TRUE;
#ifdef DEBUG
else
@@ -183,7 +183,7 @@
if (pi->buffer_len > old_content_offset)
{
/* let all plugin take part of data */
- initng_fd_plugin_readpipe(service, p,
+ initng_fd_plugin_readpipe(service, p, pi,
pi->buffer + old_content_offset);
}
@@ -430,14 +430,12 @@
/* check if this fd is a pipe bound to a process */
while_pipes(current_pipe, currentP)
{
- /* if this pipe is a process output pipe, and the pipe are opend, and if
- * there is data on it */
- if ((current_pipe->dir == OUT_PIPE
- || current_pipe->dir == BUFFERED_OUT_PIPE)
+ /* if a bufered output pipe is found . */
+ if (current_pipe->dir == BUFFERED_OUT_PIPE
&& current_pipe->pipe[0] > 2
&& FD_ISSET(current_pipe->pipe[0], &readset))
{
- D_("Will read from %s->start_process on fd #%i\n",
+ D_("BUFFERED_OUT_PIPE: Will read from %s->start_process on fd #%i\n",
currentA->name, current_pipe->pipe[0]);
/* Do the actual read from pipe */
@@ -449,6 +447,19 @@
if (retval == 0)
return;
}
+
+ if(current_pipe->dir == OUT_PIPE &&
+ current_pipe->pipe[0] > 2 &&
+ FD_ISSET(current_pipe->pipe[0], &readset))
+ {
+ D_("TODO, call pipe watchers...\n");
+
+ /* Found match, that means we need to look for one less, if we've found all we should then return */
+ retval--;
+ if (retval == 0)
+ return;
+ }
+
}
}
}
Modified: initng/trunk/src/initng_global.c
==============================================================================
--- initng/trunk/src/initng_global.c (original)
+++ initng/trunk/src/initng_global.c Sun Jun 4 12:38:36 2006
@@ -109,7 +109,7 @@
INIT_LIST_HEAD(&g.PARSERS.list);
INIT_LIST_HEAD(&g.SWATCHERS.list);
INIT_LIST_HEAD(&g.FDWATCHERS.list);
- INIT_LIST_HEAD(&g.PIPEWATCHERS.list);
+ INIT_LIST_HEAD(&g.BUFFER_WATCHER.list);
INIT_LIST_HEAD(&g.SIGNAL.list);
INIT_LIST_HEAD(&g.MAIN.list);
INIT_LIST_HEAD(&g.A_FORK.list);
Modified: initng/trunk/src/initng_global.h
==============================================================================
--- initng/trunk/src/initng_global.h (original)
+++ initng/trunk/src/initng_global.h Sun Jun 4 12:38:36 2006
@@ -72,7 +72,7 @@
s_call ADDITIONAL_PARSE; /* Called after a service been parsed, and extra parsing may exist */
s_call SWATCHERS; /* Called when system state changes */
s_call FDWATCHERS; /* Called when initng open file descriptors receive data */
- s_call PIPEWATCHERS; /* Called when a service has some output, that initng received */
+ s_call BUFFER_WATCHER; /* Called when a service has some output, that initng received */
s_call SIGNAL; /* Called when initng rescives a signal, like SIGHUP */
s_call MAIN; /* Called every main loop */
s_call A_FORK; /* Called after a process forks to start */
Modified: initng/trunk/src/initng_plugin.h
==============================================================================
--- initng/trunk/src/initng_plugin.h (original)
+++ initng/trunk/src/initng_plugin.h Sun Jun 4 12:38:36 2006
@@ -48,7 +48,7 @@
int (*status_change) (active_db_h * service);
service_cache_h *(*parser) (const char *name);
void (*swatcher) (h_sys_state state);
- int (*pipewatcher) (active_db_h * service, process_h * process,
+ int (*buffer_watcher) (active_db_h * service, process_h * process, pipe_h * pi,
char *buffer_pos);
int (*launch) (active_db_h * service, process_h * process,
const char *exec_name);
More information about the Initng-svn
mailing list