diff options
-rw-r--r-- | Makefile.common | 2 | ||||
-rw-r--r-- | clopts_common.c | 63 | ||||
-rw-r--r-- | clopts_common.h | 42 | ||||
-rw-r--r-- | gtk/main.c | 22 | ||||
-rw-r--r-- | tethereal.c | 22 |
5 files changed, 111 insertions, 40 deletions
diff --git a/Makefile.common b/Makefile.common index 24c1715c97..b212be2bf9 100644 --- a/Makefile.common +++ b/Makefile.common @@ -82,6 +82,7 @@ ETHEREAL_COMMON_SRC = \ $(PLATFORM_SRC) \ capture_stop_conditions.c \ cfile.c \ + clopts_common.c \ conditions.c \ disabled_protos.c \ packet-range.c \ @@ -98,6 +99,7 @@ ETHEREAL_COMMON_INCLUDES = \ svnversion.h \ capture_stop_conditions.h \ cfile.h \ + clopts_common.h \ color.h \ conditions.h \ disabled_protos.h \ diff --git a/clopts_common.c b/clopts_common.c new file mode 100644 index 0000000000..487dbd5bf3 --- /dev/null +++ b/clopts_common.c @@ -0,0 +1,63 @@ +/* clopts_common.c + * Handle command-line arguments common to Ethereal and Tethereal + * + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <stdio.h> +#include <string.h> + +#include <epan/proto.h> + +#include "clopts_common.h" + +/* + * Handle the "-G" option, to cause protocol field, etc. information + * to be printed. + */ +void +handle_dashG_option(int argc, char **argv, char *progname) +{ + if (argc >= 2 && strcmp(argv[1], "-G") == 0) { + if (argc == 2) + proto_registrar_dump_fields(1); + else { + if (strcmp(argv[2], "fields") == 0) + proto_registrar_dump_fields(1); + else if (strcmp(argv[2], "fields2") == 0) + proto_registrar_dump_fields(2); + else if (strcmp(argv[2], "protocols") == 0) + proto_registrar_dump_protocols(); + else if (strcmp(argv[2], "values") == 0) + proto_registrar_dump_values(); + else { + fprintf(stderr, "%s: Invalid \"%s\" option for -G flag\n", progname, + argv[2]); + exit(1); + } + } + exit(0); + } +} diff --git a/clopts_common.h b/clopts_common.h new file mode 100644 index 0000000000..2584cd662b --- /dev/null +++ b/clopts_common.h @@ -0,0 +1,42 @@ +/* clopts_common.h + * Handle command-line arguments common to Ethereal and Tethereal + * + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __PROTO_DUMPOPTS_H__ +#define __PROTO_DUMPOPTS_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* + * Handle the "-G" option, to cause protocol field, etc. information + * to be printed. + */ +void handle_dashG_option(int argc, char **argv, char *progname); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __PROTO_DUMPOPTS_H__ */ diff --git a/gtk/main.c b/gtk/main.c index 0e40200738..0c30b5b59b 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -98,6 +98,7 @@ #include "../ui_util.h" /* beware: ui_util.h exists twice! */ #include "tap.h" #include "util.h" +#include "clopts_common.h" #include "version_info.h" #include "capture.h" #include "merge.h" @@ -1669,26 +1670,7 @@ main(int argc, char *argv[]) to specify the information to dump; arguments after that will not be used. */ - if (argc >= 2 && strcmp(argv[1], "-G") == 0) { - if (argc == 2) - proto_registrar_dump_fields(1); - else { - if (strcmp(argv[2], "fields") == 0) - proto_registrar_dump_fields(1); - else if (strcmp(argv[2], "fields2") == 0) - proto_registrar_dump_fields(2); - else if (strcmp(argv[2], "protocols") == 0) - proto_registrar_dump_protocols(); - else if (strcmp(argv[2], "values") == 0) - proto_registrar_dump_values(); - else { - fprintf(stderr, "ethereal: Invalid \"%s\" option for -G flag\n", - argv[2]); - exit(1); - } - } - exit(0); - } + handle_dashG_option(argc, argv, "ethereal"); /* multithread support currently doesn't seem to work in win32 gtk2.0.6 */ #if ! defined WIN32 && GTK_MAJOR_VERSION >= 2 && defined G_THREADS_ENABLED && defined USE_THREADS diff --git a/tethereal.c b/tethereal.c index 00ca36df98..eefb2778d0 100644 --- a/tethereal.c +++ b/tethereal.c @@ -88,6 +88,7 @@ #include "print.h" #include <epan/addr_resolv.h> #include "util.h" +#include "clopts_common.h" #include "version_info.h" #ifdef HAVE_LIBPCAP #include "pcap-util.h" @@ -873,26 +874,7 @@ main(int argc, char *argv[]) We do this here to mirror what happens in the GTK+ version, although it's not necessary here. */ - if (argc >= 2 && strcmp(argv[1], "-G") == 0) { - if (argc == 2) - proto_registrar_dump_fields(1); - else { - if (strcmp(argv[2], "fields") == 0) - proto_registrar_dump_fields(1); - else if (strcmp(argv[2], "fields2") == 0) - proto_registrar_dump_fields(2); - else if (strcmp(argv[2], "protocols") == 0) - proto_registrar_dump_protocols(); - else if (strcmp(argv[2], "values") == 0) - proto_registrar_dump_values(); - else { - fprintf(stderr, "tethereal: Invalid \"%s\" option for -G flag\n", - argv[2]); - exit(1); - } - } - exit(0); - } + handle_dashG_option(argc, argv, "tethereal"); /* Set the C-language locale to the native environment. */ setlocale(LC_ALL, ""); |