[Initng-svn] r4418 - initng/trunk/plugins/debug_commands

svn at initng.thinktux.net svn at initng.thinktux.net
Thu Jun 8 15:04:54 CEST 2006


Author: jimmy
Date: Thu Jun  8 15:04:52 2006
New Revision: 4418

Modified:
   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

Log:
Cleanup and obay arguments better with commands from "debug_commands" plugin.


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 15:04:52 2006
@@ -55,8 +55,6 @@
 
 static char *cmd_print_fds(char *arg);
 static int cmd_initng_quit(char *arg);
-static char *cmd_print_service_db(char *arg);
-static char *cmd_print_active_db(char *arg);
 
 #ifdef DEBUG
 static int cmd_toggle_verbose(char *arg);
@@ -64,7 +62,7 @@
 static int cmd_del_verbose(char *arg);
 #endif
 
-s_command LIST_FDS = { 'I', "list_filedescriptors", STRING_COMMAND, ADVANCHED_COMMAND, NO_OPT, {(void *) &cmd_print_fds}, "Print all open filedescriptors initng have." };
+s_command LIST_FDS = { 'I', "list_filedescriptors", STRING_COMMAND, ADVANCHED_COMMAND, USES_OPT, {(void *) &cmd_print_fds}, "Print all open filedescriptors initng have." };
 
 s_command QUIT_INITNG = { 'q', "quit", TRUE_OR_FALSE_COMMAND, ADVANCHED_COMMAND, NO_OPT,
 	{(void *) &cmd_initng_quit},
@@ -73,12 +71,12 @@
 
 s_command PRINT_SERVICE_DB = { 'p', "print_service_db", STRING_COMMAND, ADVANCHED_COMMAND,
 	USES_OPT,
-	{(void *) &cmd_print_service_db},
+	{(void *) &service_db_print_all},
 	"Print service_db"
 };
 
 s_command PRINT_ACTIVE_DB = { 'P', "print_active_db", STRING_COMMAND, ADVANCHED_COMMAND, USES_OPT,
-	{(void *) &cmd_print_active_db},
+	{(void *) &active_db_print_all},
 	"Print active_db"
 };
 
@@ -117,27 +115,38 @@
 			if (currentC->c.fdh->fds != i)
 				continue;
 
-			mprintf(&string, " %i: Used by plugin: %s\n", i,
+			if(!arg || 	strstr(currentC->from_file, arg))
+				mprintf(&string, " %i: Used by plugin: %s\n", i,
 					currentC->from_file);
 			break;
 			/* Call db fs */
 		}
 
 		currentA = NULL;
+		
+		/* for every service */
 		while_active_db(currentA)
 		{
-			currentP = NULL;
-			while_processes(currentP, currentA)
+			/* if argument was set, only print matching */
+			if(!arg || service_match(currentA->name, arg))
 			{
-				current_pipe = NULL;
-				while_pipes(current_pipe, currentP)
+				/* for every process */
+				currentP = NULL;
+				while_processes(currentP, currentA)
 				{
-					if (current_pipe->pipe[0] == i
-						|| current_pipe->pipe[1] == i)
+					/* for every pipe */
+					current_pipe = NULL;
+					while_pipes(current_pipe, currentP)
 					{
-						mprintf(&string,
+						/* if matching */
+						if (current_pipe->pipe[0] == i
+							|| current_pipe->pipe[1] == i)
+						{
+							/* PRINT */
+							mprintf(&string,
 								" %i: Used service: %s, process: %s\n", i,
 								currentA->name, currentP->pt->name);
+						}
 					}
 				}
 			}
@@ -158,47 +167,6 @@
 }
 
 
-static char *cmd_print_service_db(char *arg)
-{
-	service_cache_h *s;
-
-	D_("Print service \"%s\"\n", arg);
-	if (arg && strlen(arg) > 1
-		&& (s = initng_service_cache_find_in_name(arg)))
-	{
-		return (service_db_print(s));
-	}
-	else if (arg && strlen(arg) > 1)
-	{
-		return (i_strdup("No such service.\n"));
-	}
-	else
-	{
-		return (service_db_print_all());
-	}
-
-	return (NULL);
-}
-
-static char *cmd_print_active_db(char *arg)
-{
-	active_db_h *s;
-
-	if (arg && strlen(arg) > 1 && (s = initng_active_db_find_in_name(arg)))
-	{
-		return (active_db_print(s));
-	}
-	else if (arg && strlen(arg) > 1)
-	{
-		return (i_strdup("No such service."));
-	}
-	else
-	{
-		return (active_db_print_all());
-	}
-
-	return (NULL);
-}
 
 #ifdef DEBUG
 

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 15:04:52 2006
@@ -172,24 +172,6 @@
 }
 
 
-/* Walk through every service and print it all */
-char *service_db_print_all(void)
-{
-	char *string = NULL;
-	service_cache_h *current = NULL;
-
-	mprintf(&string, "Full service print:\n");
-
-	D_("print_all():\n");
-
-	while_service_cache(current)
-	{
-		D_("printing %s ...\n", current->name);
-		service_db_print_u(current, &string);
-	}
-
-	return (string);
-}
 
 static void active_db_print_process(process_h * p, char **string)
 {
@@ -332,16 +314,35 @@
 }
 
 /* Walk through every service and print it all */
-char *active_db_print_all(void)
+char *active_db_print_all(char * matching)
 {
 	char *string = NULL;
 	active_db_h *apt = NULL;
 
-	D_("print_all():\n");
+	D_("active_db_print_all(%s):\n", matching);
 
 	while_active_db(apt)
 	{
-		active_db_print_u(apt, &string);
+		if(!matching || service_match(apt->name, matching))
+			active_db_print_u(apt, &string);
+	}
+
+	return (string);
+}
+
+/* Walk through every service and print it all */
+char *service_db_print_all(char * matching)
+{
+	char *string = NULL;
+	service_cache_h *current = NULL;
+
+
+	D_("service_db_print_all(%s):\n", matching);
+
+	while_service_cache(current)
+	{
+		if(!matching || service_match(current->name, matching))
+			service_db_print_u(current, &string);
 	}
 
 	return (string);

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 15:04:52 2006
@@ -22,7 +22,7 @@
 #include <initng_service_cache.h>
 
 char *service_db_print(service_cache_h * s);
-char *service_db_print_all(void);
+char *service_db_print_all(char * matching);
 
 char *active_db_print(active_db_h * s);
-char *active_db_print_all(void);
+char *active_db_print_all(char * matching);


More information about the Initng-svn mailing list