prefs: Make all auto port preferences ranges
When a single port is added to a dissector along with an auto preference, make it create a range preference (defaulting to that single value.) This converts the rest of the auto port preferences to ranges. Ping #14319. Still to do are converting other non-auto port preferences to auto preferences (e.g., sctp ports), and maybe some minor cleanups.
This commit is contained in:
parent
7238dad792
commit
8604d03a98
|
@ -1215,41 +1215,6 @@ void dissector_add_uint_range(const char *name, range_t *range,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
dissector_add_preference(const char *name, dissector_handle_t handle, guint init_value)
|
|
||||||
{
|
|
||||||
guint* uint_var;
|
|
||||||
module_t *module;
|
|
||||||
gchar *description, *title;
|
|
||||||
dissector_table_t pref_dissector_table = find_dissector_table(name);
|
|
||||||
int proto_id = proto_get_id(handle->protocol);
|
|
||||||
|
|
||||||
uint_var = wmem_new(wmem_epan_scope(), guint);
|
|
||||||
*uint_var = init_value;
|
|
||||||
|
|
||||||
/* If the dissector already has a preference module, use it */
|
|
||||||
module = prefs_find_module(proto_get_protocol_filter_name(proto_id));
|
|
||||||
if (module == NULL)
|
|
||||||
{
|
|
||||||
/* Otherwise create a new one */
|
|
||||||
module = prefs_register_protocol(proto_id, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
description = wmem_strdup_printf(wmem_epan_scope(), "Set the %s for %s (if other than the default of %u)",
|
|
||||||
pref_dissector_table->ui_name, proto_get_protocol_short_name(handle->protocol), *uint_var);
|
|
||||||
title = wmem_strdup_printf(wmem_epan_scope(), "%s %s", proto_get_protocol_short_name(handle->protocol),
|
|
||||||
pref_dissector_table->ui_name);
|
|
||||||
|
|
||||||
prefs_register_decode_as_preference(module, name, title, description, uint_var);
|
|
||||||
}
|
|
||||||
|
|
||||||
void dissector_add_uint_with_preference(const char *name, const guint32 pattern,
|
|
||||||
dissector_handle_t handle)
|
|
||||||
{
|
|
||||||
dissector_add_preference(name, handle, pattern);
|
|
||||||
dissector_add_uint(name, pattern, handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
static range_t*
|
static range_t*
|
||||||
dissector_add_range_preference(const char *name, dissector_handle_t handle, const char* range_str)
|
dissector_add_range_preference(const char *name, dissector_handle_t handle, const char* range_str)
|
||||||
{
|
{
|
||||||
|
@ -1313,6 +1278,17 @@ dissector_add_range_preference(const char *name, dissector_handle_t handle, cons
|
||||||
return *range;
|
return *range;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dissector_add_uint_with_preference(const char *name, const guint32 pattern,
|
||||||
|
dissector_handle_t handle)
|
||||||
|
{
|
||||||
|
char* range_str;
|
||||||
|
|
||||||
|
range_str = wmem_strdup_printf(NULL, "%d", pattern);
|
||||||
|
dissector_add_range_preference(name, handle, range_str);
|
||||||
|
wmem_free(NULL, range_str);
|
||||||
|
dissector_add_uint(name, pattern, handle);
|
||||||
|
}
|
||||||
|
|
||||||
void dissector_add_uint_range_with_preference(const char *name, const char* range_str,
|
void dissector_add_uint_range_with_preference(const char *name, const char* range_str,
|
||||||
dissector_handle_t handle)
|
dissector_handle_t handle)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue