Redo the block options APIs.
authorGuy Harris <guy@alum.mit.edu>
Thu, 14 Jul 2016 23:01:57 +0000 (16:01 -0700)
committerGuy Harris <guy@alum.mit.edu>
Thu, 14 Jul 2016 23:02:39 +0000 (23:02 +0000)
commit1f8999bb96018446e48529e75e56bf17dd3c77cf
tree0103d875702fa1a7c64816e21e079d7ceee190c2
parent42e72d529cdbab62d52a26332985ecf28b997a87
Redo the block options APIs.

A block can have zero or more instances of a given option.  We
distinguish between "one instance only" options, where a block can have
zero or one instance, and "multiple instances allowed" options, where a
block can have zero or more instances.

For "one instance only" options:

"add" routines add an instance if there isn't one already
and fail if there is;

"set" routines add an instance if there isn't one already
and change the value of the existing instance if there is one;

"set nth" routines fail;

"get" routines return the value of the instance if there is one
and fail if there isn't;

"get nth" routines fail.

For "multiple instances allowed" options:

"add" routines add an instance;

"set" routines fail;

"set nth" routines set the value of the nth instance if there is
one and fail otherwise;

"get" routines fail;

"get nth" routines get the value if the nth instance if there is
one and fail otherwise.

Rename "optionblock" to just "block"; it describes the contents of a
block, including both mandatory items and options.

Add some support for NRB options, including IPv4 and IPv6 option types.

Change-Id: Iad184f668626c3d1498b2ed00c7f1672e4abf52e
Reviewed-on: https://code.wireshark.org/review/16444
Reviewed-by: Guy Harris <guy@alum.mit.edu>
24 files changed:
capinfos.c
cfile.c
editcap.c
epan/wslua/wslua.h
epan/wslua/wslua_capture_info.c
file.c
reordercap.c
summary.c
tshark.c
ui/gtk/file_import_dlg.c
ui/gtk/summary_dlg.c
ui/qt/capture_file_properties_dialog.cpp
ui/qt/resolved_addresses_dialog.cpp
ui/tap_export_pdu.c
wiretap/erf.c
wiretap/file_access.c
wiretap/lanalyzer.c
wiretap/merge.c
wiretap/nettrace_3gpp_32_423.c
wiretap/pcapng.c
wiretap/wtap.c
wiretap/wtap.h
wiretap/wtap_opttypes.c
wiretap/wtap_opttypes.h