diff options
-rw-r--r-- | Makefile.common | 17 | ||||
-rw-r--r-- | capture_errs.c | 61 | ||||
-rw-r--r-- | capture_errs.h | 32 | ||||
-rw-r--r-- | gtk/capture_dlg.c | 25 | ||||
-rw-r--r-- | gtk/capture_if_dlg.c | 25 | ||||
-rw-r--r-- | tethereal.c | 7 |
6 files changed, 116 insertions, 51 deletions
diff --git a/Makefile.common b/Makefile.common index 9e76c9b750..1ecf008e9d 100644 --- a/Makefile.common +++ b/Makefile.common @@ -23,18 +23,6 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# XXX - this is used by dissectors and by other parts of Ethereal. -# Ultimately, we need to handle strings "right", so that we can handle -# strings in protocols that are in various encodings, and figure out -# properly whether a given character can be {displayed in the GUI, -# printed to a printout, written to a file} internally to the routines -# handling that, with a scheme more sophisticated than "if it ain't -# ASCII it ain't ....". -# -DISSECTOR_SUPPORT_INCLUDES = \ - isprint.h - # "BUILT_SOURCES" are built before any "make all" or "make check" targets. BUILT_HEADER_FILES = \ svnversion.h @@ -59,6 +47,7 @@ GENERATED_FILES = $(GENERATED_C_FILES) $(GENERATED_HEADER_FILES) # sources common for ethereal and tethereal ETHEREAL_COMMON_SRC = \ $(PLATFORM_SRC) \ + capture_errs.c \ capture_stop_conditions.c \ capture_ui_utils.c \ cfile.c \ @@ -76,8 +65,8 @@ ETHEREAL_COMMON_SRC = \ # corresponding headers ETHEREAL_COMMON_INCLUDES = \ - $(DISSECTOR_SUPPORT_INCLUDES) \ svnversion.h \ + capture_errs.h \ capture_stop_conditions.h \ capture_ui_utils.h \ cfile.h \ @@ -87,6 +76,7 @@ ETHEREAL_COMMON_INCLUDES = \ disabled_protos.h \ file.h \ fileset.h \ + isprint.h \ packet-range.h \ pcap-util.h \ pcap-util-int.h \ @@ -212,7 +202,6 @@ randpkt_SOURCES = \ # this target needed for distribution only noinst_HEADERS = \ - $(DISSECTOR_SUPPORT_INCLUDES) \ $(ETHEREAL_COMMON_INCLUDES) \ $(ethereal_INCLUDES) \ $(EXTRA_ethereal_INCLUDES) diff --git a/capture_errs.c b/capture_errs.c new file mode 100644 index 0000000000..ba311dfb2b --- /dev/null +++ b/capture_errs.c @@ -0,0 +1,61 @@ +/* capture_errs.c + * Routines to return error and warning messages for packet capture + * + * $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 + +#ifdef HAVE_LIBPCAP + +#include "capture_errs.h" + +#ifdef _WIN32 + +char * +cant_load_winpcap_err(const char *app_name) +{ + return g_strdup_printf( +"Unable to load WinPcap (wpcap.dll); %s will not be able to capture\n" +"packets.\n" +"\n" +"In order to capture packets, WinPcap must be installed; see\n" +"\n" +" http://www.winpcap.org/\n" +"\n" +"or the mirror at\n" +"\n" +" http://winpcap.mirror.ethereal.com/\n" +"\n" +"or the mirror at\n" +"\n" +" http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n" +"\n" +"for a downloadable version of WinPcap and for instructions on how to install\n" +"WinPcap.", + app_name); +} + +#endif /* _WIN32 */ + +#endif /* HAVE_LIBPCAP */ diff --git a/capture_errs.h b/capture_errs.h new file mode 100644 index 0000000000..4ed8d82e20 --- /dev/null +++ b/capture_errs.h @@ -0,0 +1,32 @@ +/* capture_errs.h + * Declarations of routines to return error and warning messages for + * packet capture + * + * $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_LIBPCAP + +#ifdef _WIN32 +extern const char *cant_load_winpcap_err(void); +#endif /* _WIN32 */ + +#endif /* HAVE_LIBPCAP */ diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c index f5a91e790d..a53cabd097 100644 --- a/gtk/capture_dlg.c +++ b/gtk/capture_dlg.c @@ -40,6 +40,7 @@ #include "gui_utils.h" #include "capture.h" #include "capture_dlg.h" +#include "capture_errs.h" #include "filter_dlg.h" #include "simple_dialog.h" #include "dlg_utils.h" @@ -563,24 +564,12 @@ capture_prep_cb(GtkWidget *w _U_, gpointer d _U_) #ifdef _WIN32 /* Is WPcap loaded? */ if (!has_wpcap) { - simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, - "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n" - "to capture packets.\n\n" - "In order to capture packets, WinPcap must be installed; see\n" - "\n" - " http://www.winpcap.org/\n" - "\n" - "or the mirror at\n" - "\n" - " http://winpcap.mirror.ethereal.com/\n" - "\n" - "or the mirror at\n" - "\n" - " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n" - "\n" - "for a downloadable version of WinPcap and for instructions\n" - "on how to install WinPcap."); - return; + char *detailed_err; + + detailed_err = cant_load_winpcap_err(); + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", detailed_err); + g_free(detailed_err); + return; } #endif diff --git a/gtk/capture_if_dlg.c b/gtk/capture_if_dlg.c index dccf6e27c5..adb83b8f35 100644 --- a/gtk/capture_if_dlg.c +++ b/gtk/capture_if_dlg.c @@ -53,6 +53,7 @@ #include "capture.h" #include "capture_dlg.h" #include "capture_if_details_dlg.h" +#include "capture_errs.h" #include "gui_utils.h" #include "dlg_utils.h" @@ -352,24 +353,12 @@ capture_if_cb(GtkWidget *w _U_, gpointer d _U_) #ifdef _WIN32 /* Is WPcap loaded? */ if (!has_wpcap) { - simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, - "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n" - "to capture packets.\n\n" - "In order to capture packets, WinPcap must be installed; see\n" - "\n" - " http://www.winpcap.org/\n" - "\n" - "or the mirror at\n" - "\n" - " http://winpcap.mirror.ethereal.com/\n" - "\n" - "or the mirror at\n" - "\n" - " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n" - "\n" - "for a downloadable version of WinPcap and for instructions\n" - "on how to install WinPcap."); - return; + char *detailed_err; + + detailed_err = cant_load_winpcap_err(); + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", detailed_err); + g_free(detailed_err); + return; } #endif diff --git a/tethereal.c b/tethereal.c index 148e43cdaf..b520812361 100644 --- a/tethereal.c +++ b/tethereal.c @@ -1367,7 +1367,12 @@ main(int argc, char *argv[]) #ifdef _WIN32 if (!has_wpcap) { - fprintf(stderr, "tethereal: Could not load wpcap.dll.\n"); + char *detailed_err; + + fprintf(stderr, "tethereal: WinPcap couldn't be found.\n"); + detailed_err = cant_load_winpcap_err("Tethereal"); + fprintf(stderr, "%s\n", detailed_err); + g_free(detailed_err); exit(2); } #endif |