diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2015-06-08 21:24:22 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-06-09 04:00:01 +0000 |
commit | e28339e59001baf9bb3aa02e29b931b316d07e1c (patch) | |
tree | f6d3296ed4c39af16957d6779178571f7bebc7c6 /ui/cli | |
parent | 0a78e0bb485d129e7d68e2984e335bad5c3585fb (diff) | |
download | wireshark-e28339e59001baf9bb3aa02e29b931b316d07e1c.tar.gz |
tshark: add ability to display streams in EBCDIC
As requested in https://ask.wireshark.org/questions/42958/tshark-follow-tcp-stream-for-ebcdic
Change-Id: Ia8d93f59aa038bd6328adea137c92ea5a52361b5
Reviewed-on: https://code.wireshark.org/review/8844
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/cli')
-rw-r--r-- | ui/cli/tap-follow.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ui/cli/tap-follow.c b/ui/cli/tap-follow.c index a658f4170a..4a7d27eb10 100644 --- a/ui/cli/tap-follow.c +++ b/ui/cli/tap-follow.c @@ -36,6 +36,7 @@ #include <glib.h> #include <epan/addr_resolv.h> +#include <epan/charsets.h> #include <epan/epan_dissect.h> #include <epan/follow.h> #include <epan/stat_tap_ui.h> @@ -66,6 +67,7 @@ typedef enum { mode_HEX, mode_ASCII, + mode_EBCDIC, mode_RAW } mode_e; @@ -96,6 +98,7 @@ typedef struct #define STR_HEX ",hex" #define STR_ASCII ",ascii" +#define STR_EBCDIC ",ebcdic" #define STR_RAW ",raw" static void @@ -133,6 +136,7 @@ followStrMode( { case mode_HEX: return "hex"; case mode_ASCII: return "ascii"; + case mode_EBCDIC: return "ebcdic"; case mode_RAW: return "raw"; } @@ -632,6 +636,7 @@ followDraw( break; case mode_ASCII: + case mode_EBCDIC: printf("%s%u\n", node ? "\t" : "", sc.dlen); break; @@ -659,6 +664,7 @@ followDraw( break; case mode_ASCII: + case mode_EBCDIC: for (ii = 0; ii < len; ii++) { switch (bin[ii]) @@ -677,6 +683,9 @@ followDraw( data[ii++] = '\n'; } data[ii] = 0; + if (fp->mode == mode_EBCDIC) { + EBCDIC_to_ASCII(data, ii); + } printf("%s", data); break; @@ -752,6 +761,10 @@ followArgMode( { fp->mode = mode_ASCII; } + else if (followArgStrncmp(opt_argp, STR_EBCDIC)) + { + fp->mode = mode_EBCDIC; + } else if (followArgStrncmp(opt_argp, STR_RAW)) { fp->mode = mode_RAW; |