[Initng-svn] r3209 - initng/trunk/plugins/stcmd
svn at initng.thinktux.net
svn at initng.thinktux.net
Sun Mar 5 20:42:39 CET 2006
Author: jimmy
Date: Sun Mar 5 20:42:39 2006
New Revision: 3209
Modified:
initng/trunk/plugins/stcmd/initng_stcmd.c
Log:
add ngc -I, that lists all open filedescriptors.
Modified: initng/trunk/plugins/stcmd/initng_stcmd.c
==============================================================================
--- initng/trunk/plugins/stcmd/initng_stcmd.c (original)
+++ initng/trunk/plugins/stcmd/initng_stcmd.c Sun Mar 5 20:42:39 2006
@@ -79,6 +79,7 @@
static void cmd_get_depends_off_deep(char *arg, FILE * fd);
static int cmd_new_init(char *arg);
static int cmd_runlevel(char *arg);
+static void cmd_print_fds(char *arg, FILE * fd);
#ifdef DEBUG
static int cmd_toggle_verbose(char *arg);
@@ -86,6 +87,8 @@
static int cmd_del_verbose(char *arg);
#endif
+s_command LIST_FDS = { 'I', "list_filedescriptors", PRINT_COMMAND, ADVANCHED_COMMAND, NO_OPT, {(void *) &cmd_print_fds}, "Print all open filedescriptors initng have." };
+
s_command FAST_RELOAD =
{ 'c', "hot_reload", VOID_COMMAND, STANDARD_COMMAND, NO_OPT,
{(void *) &cmd_fast_reload},
@@ -635,6 +638,47 @@
}
}
+static void cmd_print_fds(char *arg, FILE * fd)
+{
+ active_db_h *currentA;
+ s_call *currentC;
+ process_h *currentP;
+ int i;
+
+ for(i=0;i<1024;i++)
+ {
+
+ currentC = NULL;
+ while_list(currentC, &g.FDWATCHERS)
+ {
+ if (currentC->c.fdh->fds != i)
+ continue;
+
+ fprintf(fd, " %i: Used by plugin: %s\n", i, currentC->from_file);
+ break;
+ /* Call db fs */
+ }
+
+ currentA = NULL;
+ while_active_db(currentA)
+ {
+ currentP = NULL;
+ while_processes(currentP, currentA)
+ {
+ if (currentP->out_pipe[0] != i)
+ continue;
+
+ fprintf(fd, " %i: Used service: %s, process: %s\n", i, currentA->name, currentP->pt->name);
+ break;
+ }
+ }
+
+
+ /*fprintf(fd, " %i:\n", i);*/
+ }
+}
+
+
static void cmd_get_depends_off_deep(char *arg, FILE * fd)
{
active_db_h *current = NULL;
@@ -713,6 +757,8 @@
return (TRUE);
}
+
+
#ifdef DEBUG
@@ -796,6 +842,8 @@
initng_command_add(&DEPENDS_OFF_DEEP);
initng_command_add(&NEW_INIT);
initng_command_add(&CHANGE_RUNLEVEL);
+ initng_command_add(&LIST_FDS);
+
#ifdef DEBUG
initng_command_add(&TOGGLE_VERBOSE);
initng_command_add(&ADD_VERBOSE);
@@ -841,6 +889,7 @@
initng_command_del(&DEPENDS_OFF_DEEP);
initng_command_del(&NEW_INIT);
initng_command_del(&CHANGE_RUNLEVEL);
+ initng_command_del(&LIST_FDS);
#ifdef DEBUG
initng_command_del(&TOGGLE_VERBOSE);
initng_command_del(&ADD_VERBOSE);
More information about the Initng-svn
mailing list