diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-10-16 23:32:24 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-10-16 23:32:24 +0000 |
commit | d8dddd111c92f7fb442e47b2ed724d66c0ab1861 (patch) | |
tree | 9fe0f60bac0ddcee9a3c48d3ff0ca8003b3ca707 /epan/range.h | |
parent | 82bc8765ec59041b69ec9f9013747b399e0c7d9c (diff) |
Remove the fixed maximum number of subranges in a range_t; dynamically
allocate them to be large enough.
Add checks that the numbers in the range fit in a guint32.
Check the validity of a range before saving or printing, and report
errors in an alert box.
Clean up white space.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12320 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/range.h')
-rw-r--r-- | epan/range.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/epan/range.h b/epan/range.h index 8f6f43f6ba..de88cfb77a 100644 --- a/epan/range.h +++ b/epan/range.h @@ -32,9 +32,6 @@ #include <epan/frame_data.h> -/* Range parser variables */ -#define MaxRange 30 - #define MAXRANGESTRING 255 typedef struct range_admin_tag { @@ -44,8 +41,8 @@ typedef struct range_admin_tag { typedef struct range { /* user specified range(s) */ - guint nranges; /* number of entries in ranges (0 based) */ - range_admin_t ranges[MaxRange]; + guint nranges; /* number of entries in ranges */ + range_admin_t ranges[1]; /* variable-length array */ } range_t; /* @@ -54,12 +51,12 @@ typedef struct range { typedef enum { CVT_NO_ERROR, CVT_SYNTAX_ERROR, - CVT_TOO_MANY_SUBRANGES + CVT_NUMBER_TOO_BIG } convert_ret_t; -extern void range_init(range_t *range); +extern range_t *range_empty(void); -extern convert_ret_t range_convert_str(range_t *range, const gchar *es, +extern convert_ret_t range_convert_str(range_t **range, const gchar *es, guint32 max_value); extern gboolean value_is_in_range(range_t *range, guint32 val); @@ -70,4 +67,6 @@ extern void range_foreach(range_t *range, void (*callback)(guint32 val)); extern char *range_convert_range(range_t *range, char *string); +extern range_t *range_copy(range_t *src); + #endif /* __RANGE_H__ */ |