diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-06-19 12:12:41 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-06-19 12:12:41 +0000 |
commit | addf9236dc80679fb0701b3808f7d5264a9753dd (patch) | |
tree | 018fddc20b899c0af6a73b0bc39b2d10186f4867 /epan/dfilter/sttype-range.c | |
parent | 9ee8562c32dd4bf1968247e21460bce3fb3963a7 (diff) |
Support multiple relation test without logic and (python-like)
Like:
a == b == c
or
a < b <= c <= d < e
Real life example:
6660 <= tcp.port <= 6669
Just syntactic sugar, this is *NOT* optimized.
svn path=/trunk/; revision=43353
Diffstat (limited to 'epan/dfilter/sttype-range.c')
-rw-r--r-- | epan/dfilter/sttype-range.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/epan/dfilter/sttype-range.c b/epan/dfilter/sttype-range.c index 98d1930cb9..1bc7bfe00a 100644 --- a/epan/dfilter/sttype-range.c +++ b/epan/dfilter/sttype-range.c @@ -59,6 +59,19 @@ range_new(gpointer junk) return (gpointer) range; } +static gpointer +range_dup(gconstpointer data) +{ + const range_t *org = data; + range_t *range; + + range = range_new(NULL); + range->hfinfo = org->hfinfo; + range->drange = drange_dup(org->drange); + + return (gpointer) range; +} + static void range_free(gpointer value) { @@ -116,6 +129,7 @@ sttype_register_range(void) "RANGE", range_new, range_free, + range_dup }; sttype_register(&range_type); |