aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2004-01-26 06:43:00 +0000
committerUlf Lamping <ulf.lamping@web.de>2004-01-26 06:43:00 +0000
commitfdc839f11bd898c23f518d75be92cdd0ae3d8b1d (patch)
tree46886905eaa13fd77ece1d53bf684a2e0d45901e /file.c
parentbbf3806ba76b156e28facf73abfc097fb9649418 (diff)
filter_packets: don't refilter all the packets,
if the new filter string is identical to the old one (as it's useless then) svn path=/trunk/; revision=9858
Diffstat (limited to 'file.c')
-rw-r--r--file.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/file.c b/file.c
index 90cf33a8a4..10b0ce25b5 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.350 2004/01/25 22:27:12 guy Exp $
+ * $Id: file.c,v 1.351 2004/01/26 06:43:00 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -940,6 +940,14 @@ int
filter_packets(capture_file *cf, gchar *dftext)
{
dfilter_t *dfcode;
+ char *filter_new = dftext ? dftext : "";
+ char *filter_old = cf->dfilter ? cf->dfilter : "";
+
+
+ /* if new filter equals old one, do nothing */
+ if (strcmp(filter_new, filter_old) == 0) {
+ return 1;
+ }
if (dftext == NULL) {
/* The new filter is an empty filter (i.e., display all packets). */
@@ -953,6 +961,7 @@ filter_packets(capture_file *cf, gchar *dftext)
if (!dfilter_compile(dftext, &dfcode)) {
/* The attempt failed; report an error. */
simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg);
+ g_free(dftext);
return 0;
}