randpkt: restyle the list generation to get rid of the const compiler warning.

Change-Id: Id7c62ef18f919ba8a476898bc88c02fd3b6bf5a1
Reviewed-on: https://code.wireshark.org/review/14730
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
Dario Lombardo 2016-03-31 14:08:20 +02:00 committed by Michael Mann
parent f4bdaf9d15
commit c119296504
4 changed files with 36 additions and 32 deletions

View File

@ -65,10 +65,9 @@ static struct option longopts[] = {
static void help(const char* binname) static void help(const char* binname)
{ {
unsigned i; unsigned i = 0;
const char** abbrev_list; char** abbrev_list;
const char** longname_list; char** longname_list;
unsigned list_num;
printf("Help\n"); printf("Help\n");
printf(" Usage:\n"); printf(" Usage:\n");
@ -94,22 +93,23 @@ static void help(const char* binname)
printf(" --all-random: a random type is chosen for each packet\n"); printf(" --all-random: a random type is chosen for each packet\n");
printf(" --type <type>: the packet type\n"); printf(" --type <type>: the packet type\n");
printf("\n\nPacket types:\n"); printf("\n\nPacket types:\n");
randpkt_example_list(&abbrev_list, &longname_list, &list_num); randpkt_example_list(&abbrev_list, &longname_list);
for (i = 0; i < list_num; i++) { while (abbrev_list[i] && longname_list[i]) {
printf("\t%-16s%s\n", abbrev_list[i], longname_list[i]); printf("\t%-16s%s\n", abbrev_list[i], longname_list[i]);
i++;
} }
g_free((char**)abbrev_list); printf("\n");
g_free((char**)longname_list); g_strfreev(abbrev_list);
g_strfreev(longname_list);
} }
static int list_config(char *interface) static int list_config(char *interface)
{ {
unsigned inc = 0; unsigned inc = 0;
unsigned i; unsigned i = 0;
const char** abbrev_list; char** abbrev_list;
const char** longname_list; char** longname_list;
unsigned list_num;
if (!interface) { if (!interface) {
errmsg_print("ERROR: No interface specified."); errmsg_print("ERROR: No interface specified.");
@ -138,12 +138,13 @@ static int list_config(char *interface)
printf("arg {number=%u}{call=--type}{display=Type of packet}" printf("arg {number=%u}{call=--type}{display=Type of packet}"
"{type=selector}{tooltip=Type of packet to generate}\n", "{type=selector}{tooltip=Type of packet to generate}\n",
inc); inc);
randpkt_example_list(&abbrev_list, &longname_list, &list_num); randpkt_example_list(&abbrev_list, &longname_list);
for (i = 0; i < list_num; i++) { while (abbrev_list[i] && longname_list[i]) {
printf("value {arg=%u}{value=%s}{display=%s}\n", inc, abbrev_list[i], longname_list[i]); printf("value {arg=%u}{value=%s}{display=%s}\n", inc, abbrev_list[i], longname_list[i]);
i++;
} }
g_free((char**)abbrev_list); g_strfreev(abbrev_list);
g_free((char**)longname_list); g_strfreev(longname_list);
inc++; inc++;
return EXIT_SUCCESS; return EXIT_SUCCESS;

View File

@ -22,6 +22,7 @@
*/ */
#include <glib.h> #include <glib.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <wsutil/ws_diag_control.h> #include <wsutil/ws_diag_control.h>
@ -63,10 +64,9 @@ static void
usage(gboolean is_error) usage(gboolean is_error)
{ {
FILE *output; FILE *output;
const char** abbrev_list; char** abbrev_list;
const char** longname_list; char** longname_list;
unsigned list_num; unsigned i = 0;
unsigned i;
if (!is_error) { if (!is_error) {
output = stdout; output = stdout;
@ -83,12 +83,14 @@ usage(gboolean is_error)
fprintf(output, "Types:\n"); fprintf(output, "Types:\n");
/* Get the examples list */ /* Get the examples list */
randpkt_example_list(&abbrev_list, &longname_list, &list_num); randpkt_example_list(&abbrev_list, &longname_list);
for (i = 0; i < list_num; i++) { while (abbrev_list[i] && longname_list[i]) {
fprintf(output, "\t%-16s%s\n", abbrev_list[i], longname_list[i]); fprintf(output, "\t%-16s%s\n", abbrev_list[i], longname_list[i]);
i++;
} }
g_free((char**)abbrev_list);
g_free((char**)longname_list); g_strfreev(abbrev_list);
g_strfreev(longname_list);
fprintf(output, "\nIf type is not specified, a random packet will be chosen\n\n"); fprintf(output, "\nIf type is not specified, a random packet will be chosen\n\n");

View File

@ -779,15 +779,16 @@ int randpkt_parse_type(char *string)
return -1; return -1;
} }
void randpkt_example_list(const char*** abbrev_list, const char*** longname_list, unsigned* list_num) void randpkt_example_list(char*** abbrev_list, char*** longname_list)
{ {
unsigned i; unsigned i;
*list_num = randpkt_example_count(); unsigned list_num;
*abbrev_list = g_new0(const char*, *list_num); list_num = randpkt_example_count();
*longname_list = g_new0(const char*, *list_num); *abbrev_list = g_new0(char*, list_num + 1);
for (i = 0; i < *list_num; i++) { *longname_list = g_new0(char*, list_num + 1);
(*abbrev_list)[i] = examples[i].abbrev; for (i = 0; i < list_num; i++) {
(*longname_list)[i] = examples[i].longname; (*abbrev_list)[i] = g_strdup(examples[i].abbrev);
(*longname_list)[i] = g_strdup(examples[i].longname);
} }
} }

View File

@ -48,7 +48,7 @@ typedef struct {
guint randpkt_example_count(void); guint randpkt_example_count(void);
/* Return the list of the active examples */ /* Return the list of the active examples */
void randpkt_example_list(const char*** abbrev_list, const char*** longname_list, unsigned* list_num); void randpkt_example_list(char*** abbrev_list, char*** longname_list);
/* Seed the random-number generator */ /* Seed the random-number generator */
void randpkt_seed(void); void randpkt_seed(void);