diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-02-28 10:28:55 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-02-28 10:28:55 +0000 |
commit | 9815f805630f14c7d53928450d7acbe35692b6e9 (patch) | |
tree | 6dc9e29dc079d66d9a6a85914a52e53bd033ff69 | |
parent | f8f8957c0195fc5e269cdef866243ac9ca4f68b2 (diff) | |
download | wireshark-9815f805630f14c7d53928450d7acbe35692b6e9.tar.gz wireshark-9815f805630f14c7d53928450d7acbe35692b6e9.tar.bz2 wireshark-9815f805630f14c7d53928450d7acbe35692b6e9.zip |
Tvbuffify the TACACS dissector (such as it is).
svn path=/trunk/; revision=3086
-rw-r--r-- | packet-tacacs.c | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/packet-tacacs.c b/packet-tacacs.c index dc9170f207..8dcd337edb 100644 --- a/packet-tacacs.c +++ b/packet-tacacs.c @@ -1,7 +1,7 @@ /* packet-tacacs.c * Routines for cisco tacacs/tacplus/AAA packet dissection * - * $Id: packet-tacacs.c,v 1.10 2001/01/09 06:31:44 guy Exp $ + * $Id: packet-tacacs.c,v 1.11 2001/02/28 10:28:55 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -53,79 +53,80 @@ static gint ett_tacacs = -1; #define TCP_PORT_TACACS 49 static void -dissect_tacacs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) +dissect_tacacs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { proto_tree *tacacs_tree, *ti; - OLD_CHECK_DISPLAY_AS_DATA(proto_tacacs, pd, offset, fd, tree); + if (check_col(pinfo->fd, COL_PROTOCOL)) + col_set_str(pinfo->fd, COL_PROTOCOL, "TACACS"); - if (check_col(fd, COL_PROTOCOL)) - col_set_str(fd, COL_PROTOCOL, "TACACS"); - - if (check_col(fd, COL_INFO)) + if (check_col(pinfo->fd, COL_INFO)) { - col_add_fstr(fd, COL_INFO, "%s", - (pi.match_port == pi.destport) ? "Request" : "Response"); + col_add_str(pinfo->fd, COL_INFO, + (pinfo->match_port == pinfo->destport) ? "Request" : "Response"); } if (tree) { - ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, FALSE); + ti = proto_tree_add_item(tree, proto_tacacs, tvb, 0, + tvb_length(tvb), FALSE); tacacs_tree = proto_item_add_subtree(ti, ett_tacacs); - proto_tree_add_string(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "XTacacs"); + proto_tree_add_string(tacacs_tree, hf_tacacs_version, tvb, + 0, 0, "XTacacs"); - if (pi.match_port == pi.destport) + if (pinfo->match_port == pinfo->destport) { - proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, NullTVB, - offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, NullTVB, offset, - END_OF_FRAME, "Request: <opaque data>" ); + proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, tvb, + 0, tvb_length(tvb), TRUE); + proto_tree_add_text(tacacs_tree, tvb, 0, + tvb_length(tvb), "Request: <opaque data>" ); } else { - proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, NullTVB, - offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, NullTVB, offset, - END_OF_FRAME, "Response: <opaque data>"); + proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, tvb, + 0, tvb_length(tvb), TRUE); + proto_tree_add_text(tacacs_tree, tvb, 0, + tvb_length(tvb), "Response: <opaque data>"); } } } static void -dissect_tacplus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) +dissect_tacplus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { proto_tree *tacacs_tree, *ti; - if (check_col(fd, COL_PROTOCOL)) - col_set_str(fd, COL_PROTOCOL, "TACACS"); + if (check_col(pinfo->fd, COL_PROTOCOL)) + col_set_str(pinfo->fd, COL_PROTOCOL, "TACACS"); - if (check_col(fd, COL_INFO)) + if (check_col(pinfo->fd, COL_INFO)) { - col_add_fstr(fd, COL_INFO, "%s", - (pi.match_port == pi.destport) ? "Request" : "Response"); + col_add_str(pinfo->fd, COL_INFO, + (pinfo->match_port == pinfo->destport) ? "Request" : "Response"); } if (tree) { - ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, FALSE); + ti = proto_tree_add_item(tree, proto_tacacs, tvb, 0, + tvb_length(tvb), FALSE); tacacs_tree = proto_item_add_subtree(ti, ett_tacacs); - proto_tree_add_string(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "Tacacs+"); + proto_tree_add_string(tacacs_tree, hf_tacacs_version, tvb, 0, 0, "Tacacs+"); - if (pi.match_port == pi.destport) + if (pinfo->match_port == pinfo->destport) { - proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, NullTVB, - offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, NullTVB, offset, - END_OF_FRAME, "Request: <opaque data>" ); + proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, tvb, + 0, tvb_length(tvb), TRUE); + proto_tree_add_text(tacacs_tree, tvb, 0, + tvb_length(tvb), "Request: <opaque data>" ); } else { - proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, NullTVB, - offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, NullTVB, offset, - END_OF_FRAME, "Response: <opaque data>"); + proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, tvb, + 0, tvb_length(tvb), TRUE); + proto_tree_add_text(tacacs_tree, tvb, 0, + tvb_length(tvb), "Response: <opaque data>"); } } } @@ -159,8 +160,8 @@ proto_register_tacacs(void) void proto_reg_handoff_tacacs(void) { - old_dissector_add("udp.port", UDP_PORT_TACACS, dissect_tacacs, + dissector_add("udp.port", UDP_PORT_TACACS, dissect_tacacs, proto_tacacs); - old_dissector_add("tcp.port", TCP_PORT_TACACS, dissect_tacplus, + dissector_add("tcp.port", TCP_PORT_TACACS, dissect_tacplus, proto_tacacs); } |