summaryrefslogtreecommitdiff
path: root/dfilter.h
diff options
context:
space:
mode:
authorGilbert Ramirez <gram@alumni.rice.edu>1999-08-01 04:28:20 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>1999-08-01 04:28:20 +0000
commitb2f932c1dbb6180a3b4a86c7510ef4beff814bb0 (patch)
tree4b9c007a4f6bbfa27c0c7f9cad2a1e7800c30863 /dfilter.h
parentc31abd81fa1fa78b0ac19d0b1de3d492a016768c (diff)
downloadwireshark-b2f932c1dbb6180a3b4a86c7510ef4beff814bb0.tar.gz
Changed the display filter scanner from GLIB's GScanner to lex. The code
as it standed depends on your lex being flex, but that only matters if you're a developer. The distribution will include the dfilter-scanner.c file, so that if the user doesn't modify dfilter-scanner.l, he won't need flex to re-create the *.c file. The new lex scanner gives me better syntax checking for ether addresses. I thought I could get by using GScanner, but it simply wasn't powerful enough. All operands have English-like abbreviations and C-like syntax: and, && ; or, || ; eq, == ; ne, != ; , etc. I removed the ETHER_VENDOR type in favor of letting the user use the [x:y] notation: ether.src[0:3] == 0:6:29 instead of ether.srcvendor == 00:06:29 I implemented the IPXNET field type; it had been there before, but was not implemented. I chose to make it use integer values rather than byte ranges, since an IPX Network is 4 bytes. So a display filter looks like this: ipx.srcnet == 0xc0a82c00 rather than this: ipx.srcnet == c0:a8:2c:00 I can supposrt the byte-range type IPXNET in the future, very trivially. I still have more work to do on the parser though. It needs to check ranges when extracting byte ranges ([x:y]) from packets. And I need to get rid of those reduce/reduce errors from yacc! svn path=/trunk/; revision=414
Diffstat (limited to 'dfilter.h')
-rw-r--r--dfilter.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/dfilter.h b/dfilter.h
index a325a1e51b..8fcf65bee7 100644
--- a/dfilter.h
+++ b/dfilter.h
@@ -1,7 +1,7 @@
/* dfilter.h
* Definitions for display filters
*
- * $Id: dfilter.h,v 1.3 1999/07/13 02:52:48 gram Exp $
+ * $Id: dfilter.h,v 1.4 1999/08/01 04:28:08 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -68,7 +68,8 @@ enum node_type {
ether,
ether_vendor,
bytes,
- ipv4
+ ipv4,
+ ipxnet
};
typedef gboolean(*CheckRelationFunc) (gint operand, GArray *a, GArray *b);
@@ -100,10 +101,11 @@ typedef struct dfilter_node {
} value;
/* used for byte-ranges */
- int offset;
- int length;
+ 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__ */