diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2004-01-26 06:43:00 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2004-01-26 06:43:00 +0000 |
commit | fdc839f11bd898c23f518d75be92cdd0ae3d8b1d (patch) | |
tree | 46886905eaa13fd77ece1d53bf684a2e0d45901e /file.c | |
parent | bbf3806ba76b156e28facf73abfc097fb9649418 (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.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -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; } |