Ethereal-dev: RE: [Ethereal-dev] Support for PCRE pattern matching in dfilters

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Biot Olivier <Olivier.Biot@xxxxxxxxxxx>
Date: Tue, 2 Dec 2003 23:16:07 +0100
| Hi all,
| 
| Attached patch implements Perl Compatible Regular Expressions 
| in Ethereal
| display filters with the "matches" operation. The patch includes all
| required autotools gizmos,

... except for the *.nmake files...

| and libpcre is not required but will be looked
| for if available (similar to zlib support).
| 
| I tested it with automake 1.4-p6 (freshly installed it some 
| hours ago).
| 
| Please review and check in.
| 
| I still need to work on the regular expressions (RE) options,

... which don't seem to be required, as one may write constructs like:

	http.request.method matches "(?i)get"
	wsp.header.name matches "(?i)tod"

for case-insensitive pattern matches. See
http://www.perldoc.com/perl5.8.0/pod/perlre.html.

To Do: refer to PCRE in the code as required by the PCRE license.

| but I first
| want to know which would be the best place to (already) 
| optimize the code.
| 
| The current implementation compiles the RE and evaluates it 
| afterwards for
| every matching filterable header field. I want to store the 
| compiled (and
| possibly also studied) RE once at dfilter parsing time. I was 
| thinking at
| doing this by means of a private FT_PCRE type, containing a 
| struct with a
| pcre * and a pcre_extra *.
| 
| Fire your comments!
| 
| Regards,
| 
| Olivier