aboutsummaryrefslogtreecommitdiffstats
path: root/editcap.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2016-07-14 16:01:57 -0700
committerGuy Harris <guy@alum.mit.edu>2016-07-14 23:02:39 +0000
commit1f8999bb96018446e48529e75e56bf17dd3c77cf (patch)
tree0103d875702fa1a7c64816e21e079d7ceee190c2 /editcap.c
parent42e72d529cdbab62d52a26332985ecf28b997a87 (diff)
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>
Diffstat (limited to 'editcap.c')
-rw-r--r--editcap.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/editcap.c b/editcap.c
index 4ece4ef944..5a106a630a 100644
--- a/editcap.c
+++ b/editcap.c
@@ -1378,9 +1378,9 @@ main(int argc, char *argv[])
g_assert(filename);
/* If we don't have an application name add Editcap */
- wtap_optionblock_get_option_string(g_array_index(shb_hdrs, wtap_optionblock_t, 0), OPT_SHB_USERAPPL, &shb_user_appl);
- if (shb_user_appl == NULL) {
- wtap_optionblock_set_option_string_format(g_array_index(shb_hdrs, wtap_optionblock_t, 0), OPT_SHB_USERAPPL, "Editcap " VERSION);
+ if (wtap_block_get_string_option_value(g_array_index(shb_hdrs, wtap_block_t, 0), OPT_SHB_USERAPPL, &shb_user_appl) != WTAP_OPTTYPE_SUCCESS ||
+ shb_user_appl == NULL) {
+ wtap_block_add_string_option_format(g_array_index(shb_hdrs, wtap_block_t, 0), OPT_SHB_USERAPPL, "Editcap " VERSION);
}
pdh = editcap_dump_open(filename,
@@ -1842,9 +1842,9 @@ main(int argc, char *argv[])
wtap_strerror(write_err));
goto error_on_exit;
}
- wtap_optionblock_array_free(shb_hdrs);
+ wtap_block_array_free(shb_hdrs);
shb_hdrs = NULL;
- wtap_optionblock_array_free(nrb_hdrs);
+ wtap_block_array_free(nrb_hdrs);
nrb_hdrs = NULL;
g_free(filename);
@@ -1868,8 +1868,8 @@ main(int argc, char *argv[])
return 0;
error_on_exit:
- wtap_optionblock_array_free(shb_hdrs);
- wtap_optionblock_array_free(nrb_hdrs);
+ wtap_block_array_free(shb_hdrs);
+ wtap_block_array_free(nrb_hdrs);
g_free(idb_inf);
exit(2);
}