diff options
author | Guy Harris <gharris@sonic.net> | 2021-06-28 17:20:26 -0700 |
---|---|---|
committer | Guy Harris <gharris@sonic.net> | 2021-06-28 17:20:26 -0700 |
commit | c0dc9106dd522d1fdec6b9f5fde2e1a16ac88887 (patch) | |
tree | 67c56043954bf980a650d6d9061dc7e813632229 /wiretap/pcapng.c | |
parent | 73e058032f8151aabc66818460f1c94de65b2061 (diff) |
pcapng: clean up some function names.
Consistently use pcapng_compute_XXX_option_size() for routines to
compute the size of an option of type XXX and pcapng_write_XXX_option()
for routins to write out an option of type XXX.
Sort the routines by the order in which their option type values are
defined.
Diffstat (limited to 'wiretap/pcapng.c')
-rw-r--r-- | wiretap/pcapng.c | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c index 365851ae30..6ec992cda7 100644 --- a/wiretap/pcapng.c +++ b/wiretap/pcapng.c @@ -3541,7 +3541,7 @@ typedef struct compute_options_size_t compute_option_size_func compute_option_size; } compute_options_size_t; -static guint32 pcapng_compute_option_string_size(char *str) +static guint32 pcapng_compute_string_option_size(char *str) { guint32 size = 0, pad; @@ -3557,26 +3557,7 @@ static guint32 pcapng_compute_option_string_size(char *str) return size; } -static guint32 pcapng_compute_custom_option_size(size_t custom_data_len) -{ - size_t size, pad; - - size = custom_data_len + sizeof(guint32); - if (size > 65535) { - size = 65535; - } - if ((size % 4)) { - pad = 4 - (size % 4); - } else { - pad = 0; - } - - size += pad; - - return (guint32)size; -} - -static guint32 compute_if_filter_option_size(wtap_optval_t *optval) +static guint32 pcapng_compute_if_filter_option_size(wtap_optval_t *optval) { if_filter_opt_t* filter = &optval->if_filterval; guint32 size; @@ -3599,6 +3580,25 @@ static guint32 compute_if_filter_option_size(wtap_optval_t *optval) return size; } +static guint32 pcapng_compute_custom_option_size(size_t custom_data_len) +{ + size_t size, pad; + + size = custom_data_len + sizeof(guint32); + if (size > 65535) { + size = 65535; + } + if ((size % 4)) { + pad = 4 - (size % 4); + } else { + pad = 0; + } + + size += pad; + + return (guint32)size; +} + static gboolean compute_block_option_size(wtap_block_t block _U_, guint option_id, wtap_opttype_e option_type, wtap_optval_t *optval, void *user_data) { @@ -3612,7 +3612,7 @@ compute_block_option_size(wtap_block_t block _U_, guint option_id, wtap_opttype_ switch(option_id) { case OPT_COMMENT: - size = pcapng_compute_option_string_size(optval->stringval); + size = pcapng_compute_string_option_size(optval->stringval); break; case OPT_CUSTOM_STR_COPY: case OPT_CUSTOM_BIN_COPY: @@ -3686,7 +3686,7 @@ static guint32 compute_shb_option_size(wtap_block_t block _U_, guint option_id, case OPT_SHB_HARDWARE: case OPT_SHB_OS: case OPT_SHB_USERAPPL: - size = pcapng_compute_option_string_size(optval->stringval); + size = pcapng_compute_string_option_size(optval->stringval); break; default: /* Unknown options - size by datatype? */ @@ -3706,58 +3706,6 @@ typedef struct write_options_t } write_options_t; -static gboolean pcapng_write_custom_option(wtap_dumper *wdh, guint option_id, custom_opt_t *custom_option, int *err) -{ - struct pcapng_option_header option_hdr; - const guint32 zero_pad = 0; - size_t pad; - - if ((option_id == OPT_CUSTOM_STR_NO_COPY) || - (option_id == OPT_CUSTOM_BIN_NO_COPY)) - return TRUE; - if (custom_option->custom_data_len + sizeof(guint32) > 65535) { - /* - * Too big to fit in the option. - * Don't write anything. - * - * XXX - truncate it? Report an error? - */ - return TRUE; - } - - /* write option header */ - option_hdr.type = (guint16)option_id; - option_hdr.value_length = (guint16)(custom_option->custom_data_len + sizeof(guint32)); - if (!wtap_dump_file_write(wdh, &option_hdr, sizeof(struct pcapng_option_header), err)) - return FALSE; - wdh->bytes_dumped += sizeof(struct pcapng_option_header); - - /* write PEN */ - if (!wtap_dump_file_write(wdh, &custom_option->pen, sizeof(guint32), err)) - return FALSE; - wdh->bytes_dumped += sizeof(guint32); - - /* write custom data */ - if (!wtap_dump_file_write(wdh, custom_option->custom_data, custom_option->custom_data_len, err)) - return FALSE; - wdh->bytes_dumped += custom_option->custom_data_len; - - /* write padding (if any) */ - if ((custom_option->custom_data_len % 4)) { - pad = 4 - (custom_option->custom_data_len % 4); - } else { - pad = 0; - } - if (pad != 0) { - if (!wtap_dump_file_write(wdh, &zero_pad, pad, err)) - return FALSE; - wdh->bytes_dumped += pad; - } - ws_debug("Wrote custom option: type %u, length %u", option_hdr.type, option_hdr.value_length); - - return TRUE; -} - static gboolean pcapng_write_option_eofopt(wtap_dumper *wdh, int *err) { struct pcapng_option_header option_hdr; @@ -3771,76 +3719,46 @@ static gboolean pcapng_write_option_eofopt(wtap_dumper *wdh, int *err) return TRUE; } -static gboolean pcapng_write_option_string(wtap_dumper *wdh, guint option_id, char *str, int *err) +static gboolean pcapng_write_uint8_option(wtap_dumper *wdh, guint option_id, guint8 uint8, int *err) { struct pcapng_option_header option_hdr; - size_t size = strlen(str); const guint32 zero_pad = 0; - guint32 pad; - - if (size == 0) - return TRUE; - if (size > 65535) { - /* - * Too big to fit in the option. - * Don't write anything. - * - * XXX - truncate it? Report an error? - */ - return TRUE; - } - /* String options don't consider pad bytes part of the length */ option_hdr.type = (guint16)option_id; - option_hdr.value_length = (guint16)size; + option_hdr.value_length = (guint16)1; if (!wtap_dump_file_write(wdh, &option_hdr, 4, err)) return FALSE; wdh->bytes_dumped += 4; - if (!wtap_dump_file_write(wdh, str, size, err)) + if (!wtap_dump_file_write(wdh, &uint8, 1, err)) return FALSE; - wdh->bytes_dumped += size; - - if ((size % 4)) { - pad = 4 - (size % 4); - } else { - pad = 0; - } - - /* write padding (if any) */ - if (pad != 0) { - if (!wtap_dump_file_write(wdh, &zero_pad, pad, err)) - return FALSE; + wdh->bytes_dumped += 1; - wdh->bytes_dumped += pad; - } + if (!wtap_dump_file_write(wdh, &zero_pad, 3, err)) + return FALSE; + wdh->bytes_dumped += 3; return TRUE; } -static gboolean pcapng_write_option_uint8(wtap_dumper *wdh, guint option_id, guint8 uint8, int *err) +static gboolean pcapng_write_uint64_option(wtap_dumper *wdh, guint option_id, guint64 uint64, int *err) { struct pcapng_option_header option_hdr; - const guint32 zero_pad = 0; option_hdr.type = (guint16)option_id; - option_hdr.value_length = (guint16)1; + option_hdr.value_length = (guint16)8; if (!wtap_dump_file_write(wdh, &option_hdr, 4, err)) return FALSE; wdh->bytes_dumped += 4; - if (!wtap_dump_file_write(wdh, &uint8, 1, err)) - return FALSE; - wdh->bytes_dumped += 1; - - if (!wtap_dump_file_write(wdh, &zero_pad, 3, err)) + if (!wtap_dump_file_write(wdh, &uint64, sizeof(guint64), err)) return FALSE; - wdh->bytes_dumped += 3; + wdh->bytes_dumped += 8; return TRUE; } -static gboolean pcapng_write_option_timestamp(wtap_dumper *wdh, guint option_id, guint64 timestamp, int *err) +static gboolean pcapng_write_timestamp_option(wtap_dumper *wdh, guint option_id, guint64 timestamp, int *err) { struct pcapng_option_header option_hdr; guint32 high, low; @@ -3863,24 +3781,54 @@ static gboolean pcapng_write_option_timestamp(wtap_dumper *wdh, guint option_id, return TRUE; } -static gboolean pcapng_write_option_uint64(wtap_dumper *wdh, guint option_id, guint64 uint64, int *err) +static gboolean pcapng_write_string_option(wtap_dumper *wdh, guint option_id, char *str, int *err) { struct pcapng_option_header option_hdr; + size_t size = strlen(str); + const guint32 zero_pad = 0; + guint32 pad; + if (size == 0) + return TRUE; + if (size > 65535) { + /* + * Too big to fit in the option. + * Don't write anything. + * + * XXX - truncate it? Report an error? + */ + return TRUE; + } + + /* String options don't consider pad bytes part of the length */ option_hdr.type = (guint16)option_id; - option_hdr.value_length = (guint16)8; + option_hdr.value_length = (guint16)size; if (!wtap_dump_file_write(wdh, &option_hdr, 4, err)) return FALSE; wdh->bytes_dumped += 4; - if (!wtap_dump_file_write(wdh, &uint64, sizeof(guint64), err)) + if (!wtap_dump_file_write(wdh, str, size, err)) return FALSE; - wdh->bytes_dumped += 8; + wdh->bytes_dumped += size; + + if ((size % 4)) { + pad = 4 - (size % 4); + } else { + pad = 0; + } + + /* write padding (if any) */ + if (pad != 0) { + if (!wtap_dump_file_write(wdh, &zero_pad, pad, err)) + return FALSE; + + wdh->bytes_dumped += pad; + } return TRUE; } -static gboolean pcapng_write_option_if_filter(wtap_dumper *wdh, guint option_id, wtap_optval_t *optval, int *err) +static gboolean pcapng_write_if_filter_option(wtap_dumper *wdh, guint option_id, wtap_optval_t *optval, int *err) { if_filter_opt_t* filter = &optval->if_filterval; guint32 size, pad; @@ -3971,6 +3919,58 @@ static gboolean pcapng_write_option_if_filter(wtap_dumper *wdh, guint option_id, return TRUE; } +static gboolean pcapng_write_custom_option(wtap_dumper *wdh, guint option_id, custom_opt_t *custom_option, int *err) +{ + struct pcapng_option_header option_hdr; + const guint32 zero_pad = 0; + size_t pad; + + if ((option_id == OPT_CUSTOM_STR_NO_COPY) || + (option_id == OPT_CUSTOM_BIN_NO_COPY)) + return TRUE; + if (custom_option->custom_data_len + sizeof(guint32) > 65535) { + /* + * Too big to fit in the option. + * Don't write anything. + * + * XXX - truncate it? Report an error? + */ + return TRUE; + } + + /* write option header */ + option_hdr.type = (guint16)option_id; + option_hdr.value_length = (guint16)(custom_option->custom_data_len + sizeof(guint32)); + if (!wtap_dump_file_write(wdh, &option_hdr, sizeof(struct pcapng_option_header), err)) + return FALSE; + wdh->bytes_dumped += sizeof(struct pcapng_option_header); + + /* write PEN */ + if (!wtap_dump_file_write(wdh, &custom_option->pen, sizeof(guint32), err)) + return FALSE; + wdh->bytes_dumped += sizeof(guint32); + + /* write custom data */ + if (!wtap_dump_file_write(wdh, custom_option->custom_data, custom_option->custom_data_len, err)) + return FALSE; + wdh->bytes_dumped += custom_option->custom_data_len; + + /* write padding (if any) */ + if ((custom_option->custom_data_len % 4)) { + pad = 4 - (custom_option->custom_data_len % 4); + } else { + pad = 0; + } + if (pad != 0) { + if (!wtap_dump_file_write(wdh, &zero_pad, pad, err)) + return FALSE; + wdh->bytes_dumped += pad; + } + ws_debug("Wrote custom option: type %u, length %u", option_hdr.type, option_hdr.value_length); + + return TRUE; +} + static gboolean write_block_option(wtap_block_t block, guint option_id, wtap_opttype_e option_type _U_, wtap_optval_t *optval, void* user_data) { write_options_t* write_options = (write_options_t*)user_data; @@ -3982,7 +3982,7 @@ static gboolean write_block_option(wtap_block_t block, guint option_id, wtap_opt switch(option_id) { case OPT_COMMENT: - if (!pcapng_write_option_string(write_options->wdh, option_id, optval->stringval, write_options->err)) + if (!pcapng_write_string_option(write_options->wdh, option_id, optval->stringval, write_options->err)) return FALSE; break; case OPT_CUSTOM_STR_COPY: @@ -4031,7 +4031,7 @@ static gboolean write_wtap_shb_option(wtap_dumper *wdh, wtap_block_t block _U_, case OPT_SHB_HARDWARE: case OPT_SHB_OS: case OPT_SHB_USERAPPL: - if (!pcapng_write_option_string(wdh, option_id, optval->stringval, err)) + if (!pcapng_write_string_option(wdh, option_id, optval->stringval, err)) return FALSE; break; default: @@ -4750,7 +4750,7 @@ compute_nrb_option_size(wtap_block_t block _U_, guint option_id, wtap_opttype_e switch(option_id) { case OPT_NS_DNSNAME: - size = pcapng_compute_option_string_size(optval->stringval); + size = pcapng_compute_string_option_size(optval->stringval); break; case OPT_NS_DNSIP4ADDR: size = 4; @@ -5169,7 +5169,7 @@ static gboolean write_wtap_isb_option(wtap_dumper *wdh, wtap_block_t block _U_, { case OPT_ISB_STARTTIME: case OPT_ISB_ENDTIME: - if (!pcapng_write_option_timestamp(wdh, option_id, optval->uint64val, err)) + if (!pcapng_write_timestamp_option(wdh, option_id, optval->uint64val, err)) return FALSE; break; case OPT_ISB_IFRECV: @@ -5177,7 +5177,7 @@ static gboolean write_wtap_isb_option(wtap_dumper *wdh, wtap_block_t block _U_, case OPT_ISB_FILTERACCEPT: case OPT_ISB_OSDROP: case OPT_ISB_USRDELIV: - if (!pcapng_write_option_uint64(wdh, option_id, optval->uint64val, err)) + if (!pcapng_write_uint64_option(wdh, option_id, optval->uint64val, err)) return FALSE; break; default: @@ -5242,7 +5242,7 @@ static guint32 compute_idb_option_size(wtap_block_t block _U_, guint option_id, case OPT_IDB_DESCR: case OPT_IDB_OS: case OPT_IDB_HARDWARE: - size = pcapng_compute_option_string_size(optval->stringval); + size = pcapng_compute_string_option_size(optval->stringval); break; case OPT_IDB_SPEED: size = 8; @@ -5251,7 +5251,7 @@ static guint32 compute_idb_option_size(wtap_block_t block _U_, guint option_id, size = 1; break; case OPT_IDB_FILTER: - size = compute_if_filter_option_size(optval); + size = pcapng_compute_if_filter_option_size(optval); break; case OPT_IDB_FCSLEN: size = 1; @@ -5272,23 +5272,23 @@ static gboolean write_wtap_idb_option(wtap_dumper *wdh, wtap_block_t block _U_, case OPT_IDB_DESCR: case OPT_IDB_OS: case OPT_IDB_HARDWARE: - if (!pcapng_write_option_string(wdh, option_id, optval->stringval, err)) + if (!pcapng_write_string_option(wdh, option_id, optval->stringval, err)) return FALSE; break; case OPT_IDB_SPEED: - if (!pcapng_write_option_uint64(wdh, option_id, optval->uint64val, err)) + if (!pcapng_write_uint64_option(wdh, option_id, optval->uint64val, err)) return FALSE; break; case OPT_IDB_TSRESOL: - if (!pcapng_write_option_uint8(wdh, option_id, optval->uint8val, err)) + if (!pcapng_write_uint8_option(wdh, option_id, optval->uint8val, err)) return FALSE; break; case OPT_IDB_FILTER: - if (!pcapng_write_option_if_filter(wdh, option_id, optval, err)) + if (!pcapng_write_if_filter_option(wdh, option_id, optval, err)) return FALSE; break; case OPT_IDB_FCSLEN: - if (!pcapng_write_option_uint8(wdh, option_id, optval->uint8val, err)) + if (!pcapng_write_uint8_option(wdh, option_id, optval->uint8val, err)) return FALSE; break; default: |