summaryrefslogtreecommitdiff
path: root/dfilter.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>1999-08-12 21:16:32 +0000
committerGuy Harris <guy@alum.mit.edu>1999-08-12 21:16:32 +0000
commita5acc58fe3e5d2b5e8dde83ccda2ad5b5f3246c8 (patch)
tree71aec9fd65577bbfdb84577438cea36b5f528db2 /dfilter.h
parent6c9276f03cb74f068bc7b7a671aef99667ec5450 (diff)
downloadwireshark-a5acc58fe3e5d2b5e8dde83ccda2ad5b5f3246c8.tar.gz
Create a "dfilter-int.h" file, containing stuff used internally to the
display filter code but not outside it (and not static to one of the modules in the display filter code), with most of that stuff moved there from "dfilter.h". Add a declaration of "byte_str_to_guint8_array()" to "dfilter-int.h". svn path=/trunk/; revision=479
Diffstat (limited to 'dfilter.h')
-rw-r--r--dfilter.h75
1 files changed, 1 insertions, 74 deletions
diff --git a/dfilter.h b/dfilter.h
index a46fd1a421..704dd919d7 100644
--- a/dfilter.h
+++ b/dfilter.h
@@ -1,7 +1,7 @@
/* dfilter.h
* Definitions for display filters
*
- * $Id: dfilter.h,v 1.5 1999/08/03 15:04:26 gram Exp $
+ * $Id: dfilter.h,v 1.6 1999/08/12 21:16:32 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -27,84 +27,11 @@
#define __DFILTER_H__
void dfilter_init(void);
-void dfilter_cleanup(void);
int dfilter_compile(char* dfilter_text, GNode** p_dfcode);
gboolean dfilter_apply(GNode *dfcode, proto_tree *ptree, const guint8* pd);
-/* Here we provide interfaces to make our scanner act and look like lex */
-int yylex(void);
-void yyerror(char *s);
-void dfilter_yyerror(char *fmt, ...);
-
-/* functions that dfilter-grammar.y needs during parsing*/
-gboolean check_relation_numeric(gint operand, GArray *a, GArray *b);
-gboolean check_relation_ether(gint operand, GArray *a, GArray *b);
-gboolean check_relation_bytes(gint operand, GArray *a, GArray *b);
-gboolean check_relation_boolean(gint operand, GArray *a, GArray *b);
-
-gboolean fill_array_numeric_value(GNode *gnode, gpointer data);
-gboolean fill_array_numeric_variable(GNode *gnode, gpointer data);
-gboolean fill_array_ether_value(GNode *gnode, gpointer data);
-gboolean fill_array_ether_variable(GNode *gnode, gpointer data);
-gboolean fill_array_bytes_value(GNode *gnode, gpointer data);
-gboolean fill_array_bytes_variable(GNode *gnode, gpointer data);
-gboolean fill_array_boolean_value(GNode *gnode, gpointer data);
-gboolean fill_array_boolean_variable(GNode *gnode, gpointer data);
-
#ifdef WIN32
#define boolean truth_value
#endif
-enum node_type {
- relation, /* eq, ne, gt, ge, lt, le */
- logical, /* and, or, not, xor */
- variable, /* protocol or header field id */
- existence, /* existence of a variable (protocol or hf) */
- alternation, /* &, | */
- boolean, /* true, false */
- numeric, /* uint8, uint16, or uint32 value */
- abs_time,
- string,
- ether,
- bytes,
- ipv4,
- ipxnet
-};
-
-typedef gboolean(*CheckRelationFunc) (gint operand, GArray *a, GArray *b);
-
-/* This struct is the parse tree node created by this grammary and used
- * directly in the display filter routines to filter packets.
- */
-typedef struct dfilter_node {
- enum node_type ntype; /* from dfilter-grammar.h */
- int elem_size; /* computed at dfilter parse time rather than
- when finding elements for each packet. Saves time
- in get_values_from_ptree() */
- CheckRelationFunc check_relation_func;
- GNodeTraverseFunc fill_array_func;
-
- /* copied from proto.h */
- union {
- gint relation; /* if type == relation (eq, ne, gt, ge, lt, le) */
- gint logical; /* if type == logical (and, or, not, xor) */
- gint variable; /* if type == variable (protocol or header field abbrev) */
- gint alternation; /* if type == alternation (& or |) */
-
- gboolean boolean;
- guint32 numeric;
- struct timeval abs_time; /* the whole struct, not a pointer */
- gchar *string;
- guint8 ether[6];
- GByteArray *bytes;
- } value;
-
- /* used for byte-ranges */
- gint offset;
- guint length;
-} dfilter_node;
-
-/* lookup an abbreviation in our token hash, returing the ID # */
-int dfilter_lookup_token(char *abbrev);
-
#endif /* ! __DFILTER_H__ */