aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dfilter
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2019-01-09 12:27:56 +0100
committerDario Lombardo <lomato@gmail.com>2019-01-10 20:45:23 +0000
commitf1fa8df3241c7e3177e0504a608b1a943ccebc00 (patch)
treee835ecd9bf818774c02fb6042cdfe14bf009e030 /epan/dfilter
parent3cc0cfc48cb1c66612b69d9c6b07126412d2a069 (diff)
dfilter: remove size() function.
It is overlapping to len(), then they've been merged into len() that now gives the length of any field. Change-Id: I8e39536a4d15eff4c4b44bb39fd965729cc46951 Reviewed-on: https://code.wireshark.org/review/31462 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Dario Lombardo <lomato@gmail.com>
Diffstat (limited to 'epan/dfilter')
-rw-r--r--epan/dfilter/dfunctions.c61
1 files changed, 3 insertions, 58 deletions
diff --git a/epan/dfilter/dfunctions.c b/epan/dfilter/dfunctions.c
index 4ca0b59e73..6f71c23d40 100644
--- a/epan/dfilter/dfunctions.c
+++ b/epan/dfilter/dfunctions.c
@@ -74,44 +74,9 @@ df_func_len(GList* arg1list, GList *arg2junk _U_, GList **retval)
arg1 = arg1list;
while (arg1) {
arg_fvalue = (fvalue_t *)arg1->data;
- /* This should be a list of all of the types that make sense to have a length */
- switch (fvalue_type_ftenum(arg_fvalue))
- {
- case FT_STRING:
- case FT_STRINGZ:
- case FT_STRINGZPAD:
- case FT_UINT_STRING:
- case FT_BYTES:
- case FT_UINT_BYTES:
- ft_len = fvalue_new(FT_UINT32);
- fvalue_set_uinteger(ft_len, fvalue_length(arg_fvalue));
- *retval = g_list_append(*retval, ft_len);
- break;
- default:
- break;
- }
- arg1 = arg1->next;
- }
-
- return TRUE;
-}
-
-/* dfilter function: size() */
-static gboolean
-df_func_size(GList* arg1list, GList *arg2junk _U_, GList **retval)
-{
- GList *arg1;
- fvalue_t *arg_fvalue;
- fvalue_t *ft_len;
-
- arg1 = arg1list;
- while (arg1) {
- arg_fvalue = (fvalue_t *)arg1->data;
-
ft_len = fvalue_new(FT_UINT32);
fvalue_set_uinteger(ft_len, fvalue_length(arg_fvalue));
*retval = g_list_append(*retval, ft_len);
-
arg1 = arg1->next;
}
@@ -166,38 +131,20 @@ ul_semcheck_params(dfwork_t *dfw, int param_num, stnode_t *st_node)
}
}
-/* For len() checks that the parameter passed to it is an string or byte type */
+/* For len() checks that the parameter passed is valid */
static void
ul_semcheck_len_params(dfwork_t *dfw, int param_num, stnode_t *st_node)
{
sttype_id_t type;
- ftenum_t ftype;
- header_field_info *hfinfo;
type = stnode_type_id(st_node);
if (param_num == 0) {
switch(type) {
case STTYPE_FIELD:
- hfinfo = (header_field_info *)stnode_data(st_node);
- ftype = hfinfo->type;
- switch (ftype)
- {
- case FT_STRING:
- case FT_STRINGZ:
- case FT_STRINGZPAD:
- case FT_UINT_STRING:
- case FT_BYTES:
- case FT_UINT_BYTES:
- break;
- default:
- dfilter_fail(dfw, "Only string and byte type fields can be used in len()");
- THROW(TypeError);
- break;
- }
break;
default:
- dfilter_fail(dfw, "Only string and byte type fields can be used in len()");
+ dfilter_fail(dfw, "invalid type in function len()");
THROW(TypeError);
}
}
@@ -218,8 +165,7 @@ ul_semcheck_field_param(dfwork_t *dfw, int param_num, stnode_t *st_node)
case STTYPE_FIELD:
break;
default:
- dfilter_fail(dfw, "Only type fields can be used as parameter "
- "for size() or count()");
+ dfilter_fail(dfw, "Only type fields can be used as parameter for count()");
THROW(TypeError);
}
}
@@ -234,7 +180,6 @@ df_functions[] = {
{ "lower", df_func_lower, FT_STRING, 1, 1, ul_semcheck_params },
{ "upper", df_func_upper, FT_STRING, 1, 1, ul_semcheck_params },
{ "len", df_func_len, FT_UINT32, 1, 1, ul_semcheck_len_params },
- { "size", df_func_size, FT_UINT32, 1, 1, ul_semcheck_field_param },
{ "count", df_func_count, FT_UINT32, 1, 1, ul_semcheck_field_param },
{ NULL, NULL, FT_NONE, 0, 0, NULL }
};