[ofa-general] Re: [IBSIM] Parse sim cmds by name not first character

Sasha Khapyorsky sashak at voltaire.com
Tue Aug 19 12:13:33 PDT 2008


On 17:39 Mon 18 Aug     , Al Chu wrote:
> From 8a1f05b353469054564da75663e3a95744a1f8ec Mon Sep 17 00:00:00 2001
> From: Albert Chu <chu11 at llnl.gov>
> Date: Wed, 13 Aug 2008 13:53:14 -0700
> Subject: [PATCH] parse sim cmds via full name
> 
> 
> Signed-off-by: Albert Chu <chu11 at llnl.gov>

Applied. Thanks.

When testing this, I paid attention that originally "#" command was
used for printing line. Frankly I have no idea why it was needed, but put
it back anyway. Also some flow simplification. Looks fine for you?

Sasha


>From aa5ee3a71a4b3bd39e0d258614be7db6f1d640a6 Mon Sep 17 00:00:00 2001
From: Sasha Khapyorsky <sashak at voltaire.com>
Date: Tue, 19 Aug 2008 22:06:50 +0300
Subject: [PATCH] ibsim/sim_cmd: consolidate flows

Consolidate and simplify flow. Return back line printing on '#' command.

Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
---
 ibsim/sim_cmd.c |   22 +++++++---------------
 1 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/ibsim/sim_cmd.c b/ibsim/sim_cmd.c
index 4d70517..d55fb4c 100644
--- a/ibsim/sim_cmd.c
+++ b/ibsim/sim_cmd.c
@@ -762,16 +762,14 @@ int do_cmd(char *buf, FILE *f)
 
 	for (line = buf; *line && isspace(*line); line++) ;
 
-	/* special cases */
-	if (*line == '!')
-		r = sim_cmd_file(f, line);
-	else if (*line == '#' || *line == '\n' || *line == '\0')
-		goto out;
-
 	while (!isspace(line[cmd_len]))
 		cmd_len++;
 
-	if (!strncasecmp(line, "Dump", cmd_len))
+	if (*line == '#')
+		fprintf(f, line);
+	else if (*line == '!')
+		r = sim_cmd_file(f, line);
+	else if (!strncasecmp(line, "Dump", cmd_len))
 		r = dump_net(f, line);
 	else if (!strncasecmp(line, "Route", cmd_len))
 		r = dump_route(f, line);
@@ -816,14 +814,8 @@ int do_cmd(char *buf, FILE *f)
 	 *
 	 * please specify new command support below this comment.
 	 */
-	else {
-		char cmdbuf[cmd_len+1];
-
-		memset(cmdbuf, '\0', cmd_len+1);
-		strncpy(cmdbuf, line, cmd_len);
+	else if (*line != '\n' && *line != '\0')
+		fprintf(f, "command \'%s\' unknown - skipped\n", line);
 
-		fprintf(f, "command %s unknown - skipped\n", cmdbuf);
-	}
-out:
 	return r;
 }
-- 
1.5.4.rc2.60.gb2e62




More information about the general mailing list