Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv859

Modified Files:
        cli.c frame.c 
Log Message:
add functions to register/unregister multiple CLI commands in a single 
operation (bug #4255, with minor mods)


Index: cli.c
===================================================================
RCS file: /usr/cvsroot/asterisk/cli.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -d -r1.79 -r1.80
--- cli.c       29 Apr 2005 17:00:33 -0000      1.79
+++ cli.c       15 May 2005 03:03:48 -0000      1.80
@@ -992,6 +992,25 @@
        return 0;
 }
 
+/*
+ * register/unregister an array of entries.
+ */
+void ast_cli_register_multiple(struct ast_cli_entry *e, int len)
+{
+       int i;
+
+       for (i=0; i < len; i++)
+               ast_cli_register(e + i);
+}
+
+void ast_cli_unregister_multiple(struct ast_cli_entry *e, int len)
+{
+       int i;
+
+       for (i=0; i < len; i++)
+               ast_cli_unregister(e + i);
+}
+
 static int help_workhorse(int fd, char *match[])
 {
        char fullcmd1[80] = "";

Index: frame.c
===================================================================
RCS file: /usr/cvsroot/asterisk/frame.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- frame.c     14 May 2005 23:57:44 -0000      1.53
+++ frame.c     15 May 2005 03:03:48 -0000      1.54
@@ -596,15 +596,6 @@
 "Usage: show [audio|video|image] codecs\n"
 "       Displays codec mapping\n";
 
-struct ast_cli_entry cli_show_codecs =
-{ { "show", "codecs", NULL }, show_codecs, "Shows codecs", 
frame_show_codecs_usage };
-struct ast_cli_entry cli_show_codecs_audio =
-{ { "show", "audio", "codecs", NULL }, show_codecs, "Shows audio codecs", 
frame_show_codecs_usage };
-struct ast_cli_entry cli_show_codecs_video =
-{ { "show", "video", "codecs", NULL }, show_codecs, "Shows video codecs", 
frame_show_codecs_usage };
-struct ast_cli_entry cli_show_codecs_image =
-{ { "show", "image", "codecs", NULL }, show_codecs, "Shows image codecs", 
frame_show_codecs_usage };
-
 static int show_codec_n(int fd, int argc, char *argv[])
 {
        int codec, i, found=0;
@@ -631,9 +622,6 @@
 "Usage: show codec <number>\n"
 "       Displays codec mapping\n";
 
-struct ast_cli_entry cli_show_codec_n =
-{ { "show", "codec", NULL }, show_codec_n, "Shows a specific codec", 
frame_show_codec_n_usage };
-
 void ast_frame_dump(char *name, struct ast_frame *f, char *prefix)
 {
        char *n = "unknown";
@@ -815,21 +803,23 @@
 static char frame_stats_usage[] =
 "Usage: show frame stats\n"
 "       Displays debugging statistics from framer\n";
+#endif
 
-struct ast_cli_entry cli_frame_stats =
-{ { "show", "frame", "stats", NULL }, show_frame_stats, "Shows frame 
statistics", frame_stats_usage };
+/* XXX no unregister function here ??? */
+static struct ast_cli_entry my_clis[] = {
+{ { "show", "codecs", NULL }, show_codecs, "Shows codecs", 
frame_show_codecs_usage },
+{ { "show", "audio", "codecs", NULL }, show_codecs, "Shows audio codecs", 
frame_show_codecs_usage },
+{ { "show", "video", "codecs", NULL }, show_codecs, "Shows video codecs", 
frame_show_codecs_usage },
+{ { "show", "image", "codecs", NULL }, show_codecs, "Shows image codecs", 
frame_show_codecs_usage },
+{ { "show", "codec", NULL }, show_codec_n, "Shows a specific codec", 
frame_show_codec_n_usage },
+#ifdef TRACE_FRAMES
+{ { "show", "frame", "stats", NULL }, show_frame_stats, "Shows frame 
statistics", frame_stats_usage },
 #endif
+};
 
 int init_framer(void)
 {
-#ifdef TRACE_FRAMES
-       ast_cli_register(&cli_frame_stats);
-#endif
-       ast_cli_register(&cli_show_codecs);
-       ast_cli_register(&cli_show_codecs_audio);
-       ast_cli_register(&cli_show_codecs_video);
-       ast_cli_register(&cli_show_codecs_image);
-       ast_cli_register(&cli_show_codec_n);
+       ast_cli_register_multiple(my_clis, sizeof(my_clis)/sizeof(my_clis[0]) );
        return 0;       
 }
 

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to