diff --git a/doc/text2pcap.adoc b/doc/text2pcap.adoc index 66609445df..72efabb624 100644 --- a/doc/text2pcap.adoc +++ b/doc/text2pcap.adoc @@ -23,7 +23,7 @@ text2pcap - Generate a capture file from an ASCII hexdump of packets [ *-n* ] [ *-N* ] [ *-m* ] -[ *-o* hex|oct|dec ] +[ *-o* hex|oct|dec|none ] [ *-q* ] [ *-s* ,, ] [ *-S* ,, ] @@ -202,11 +202,14 @@ Specify a name for the interface included when writing a pcapng format file. By default no name is defined. -- --o hex|oct|dec:: +-o hex|oct|dec|none:: + -- -Specify the radix for the offsets (hex, octal or decimal). Defaults to +Specify the radix for the offsets (hex, octal, decimal, or none). Defaults to hex. This corresponds to the `-A` option for __od__. + +*NOTE:* With __-o none__, only one packet will be created, ignoring any +direction indicators or timestamps after the first byte along with any offsets. -- -q:: @@ -243,15 +246,12 @@ into the SCTP header. + -- Treats the text before the packet as a date/time code; __timefmt__ is a -format string of the sort supported by strftime(3). -Example: The time "10:15:14.5476" has the format code "%H:%M:%S." +format string supported by strftime(3), supplemented with the field +descriptor "%f" for fractional seconds up to nanoseconds. +Example: The time "10:15:14.5476" has the format code "%H:%M:%S.%f" The special format string __ISO__ indicates that the string should be parsed according to the ISO-8601 specification. -*NOTE:* The subsecond component delimiter must be specified (.) but no -pattern is required; the remaining number is assumed to be fractions of -a second. - *NOTE:* Date/time fields from the current date/time are used as the default for unspecified fields. -- diff --git a/text2pcap.c b/text2pcap.c index df5717d385..99bad1776a 100644 --- a/text2pcap.c +++ b/text2pcap.c @@ -171,9 +171,6 @@ static char *output_filename; static wtap_dumper* wdh; -/* Offset base to parse */ -static guint32 offset_base = 16; - /* Encapsulation type; see wiretap/wtap.h for details */ static guint32 wtap_encap_type = 1; /* Default is WTAP_ENCAP_ETHERNET */ @@ -259,7 +256,7 @@ print_usage (FILE *output) " specifies output filename (use - for standard output)\n" "\n" "Input:\n" - " -o hex|oct|dec parse offsets as (h)ex, (o)ctal or (d)ecimal;\n" + " -o hex|oct|dec|none parse offsets as (h)ex, (o)ctal, (d)ecimal, or (n)one;\n" " default is hex.\n" " -t treat the text before the packet as a date/time code;\n" " the specified argument is a format string of the sort\n" @@ -375,6 +372,7 @@ parse_options(int argc, char *argv[], text_import_info_t * const info, wtap_dump int err; char* err_info; + info->hexdump.offset_type = OFFSET_HEX; /* Initialize the version information. */ ws_init_version_info("Text2pcap (Wireshark)", NULL, NULL, NULL); @@ -394,15 +392,16 @@ parse_options(int argc, char *argv[], text_import_info_t * const info, wtap_dump case 'n': use_pcapng = TRUE; break; case 'N': interface_name = ws_optarg; break; case 'o': - if (ws_optarg[0] != 'h' && ws_optarg[0] != 'o' && ws_optarg[0] != 'd') { + if (ws_optarg[0] != 'h' && ws_optarg[0] != 'o' && ws_optarg[0] != 'd' && ws_optarg[0] != 'n') { cmdarg_err("Bad argument for '-o': %s", ws_optarg); print_usage(stderr); return INVALID_OPTION; } switch (ws_optarg[0]) { - case 'o': offset_base = 8; break; - case 'h': offset_base = 16; break; - case 'd': offset_base = 10; break; + case 'o': info->hexdump.offset_type = OFFSET_OCT; break; + case 'h': info->hexdump.offset_type = OFFSET_HEX; break; + case 'd': info->hexdump.offset_type = OFFSET_DEC; break; + case 'n': info->hexdump.offset_type = OFFSET_NONE; break; } break; case 'e': @@ -743,12 +742,6 @@ parse_options(int argc, char *argv[], text_import_info_t * const info, wtap_dump info->import_text_filename = input_filename; info->output_filename = output_filename; info->hexdump.import_text_FILE = input_file; - switch (offset_base) { - case (16): info->hexdump.offset_type = OFFSET_HEX; break; - case (10): info->hexdump.offset_type = OFFSET_DEC; break; - case (8): info->hexdump.offset_type = OFFSET_OCT; break; - default: info->hexdump.offset_type = OFFSET_HEX; break; - } info->hexdump.has_direction = has_direction; info->timestamp_format = ts_fmt;