diff options
author | Richard Sharpe <sharpe@ns.aus.com> | 2003-04-27 06:23:16 +0000 |
---|---|---|
committer | Richard Sharpe <sharpe@ns.aus.com> | 2003-04-27 06:23:16 +0000 |
commit | 1834fb882ad0ede77949e5a7454430224219af95 (patch) | |
tree | a16ad347e52722bb69ca013ef2a59dbe243091b1 /packet-dcerpc-wkssvc.c | |
parent | dd570bd1fdcd50f02e8ee6dfe53038306981abfa (diff) | |
download | wireshark-1834fb882ad0ede77949e5a7454430224219af95.tar.gz wireshark-1834fb882ad0ede77949e5a7454430224219af95.tar.bz2 wireshark-1834fb882ad0ede77949e5a7454430224219af95.zip |
Add support for level 102 info ...
svn path=/trunk/; revision=7581
Diffstat (limited to 'packet-dcerpc-wkssvc.c')
-rw-r--r-- | packet-dcerpc-wkssvc.c | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/packet-dcerpc-wkssvc.c b/packet-dcerpc-wkssvc.c index bfd19b9de4..4bd1481091 100644 --- a/packet-dcerpc-wkssvc.c +++ b/packet-dcerpc-wkssvc.c @@ -3,7 +3,7 @@ * Copyright 2001, Tim Potter <tpot@samba.org> * Copyright 2003, Richard Sharpe <rsharpe@richardsharpe.com> * - * $Id: packet-dcerpc-wkssvc.c,v 1.9 2003/04/27 06:16:57 sharpe Exp $ + * $Id: packet-dcerpc-wkssvc.c,v 1.10 2003/04/27 06:23:16 sharpe Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -44,6 +44,7 @@ static int hf_wkssvc_ver_major = -1; static int hf_wkssvc_ver_minor = -1; static int hf_wkssvc_lan_root = -1; static int hf_wkssvc_rc = -1; +static int hf_wkssvc_logged_on_users = -1; static gint ett_dcerpc_wkssvc = -1; extern const value_string platform_id_vals[]; @@ -124,6 +125,46 @@ wkssvc_dissect_WKS_INFO_101(tvbuff_t *tvb, int offset, } /* + * IDL typedef struct { + * IDL long platform_id; + * IDL [string] [unique] wchar_t *server; + * IDL [string] [unique] wchar_t *lan_grp; + * IDL long ver_major; + * IDL long ver_minor; + * IDL [string] [unique] wchar_t *lan_root; + * IDL long logged_on_users; + * IDL } WKS_INFO_102; + */ +static int +wkssvc_dissect_WKS_INFO_102(tvbuff_t *tvb, int offset, + packet_info *pinfo, proto_tree *tree, + char *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_wkssvc_platform_id, NULL); + + offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep, + NDR_POINTER_UNIQUE, "Server", hf_wkssvc_server, 0); + + offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep, + NDR_POINTER_UNIQUE, "Net Group", hf_wkssvc_net_group, 0); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_wkssvc_ver_major, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_wkssvc_ver_minor, NULL); + + offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, drep, + NDR_POINTER_UNIQUE, "Lan Root", hf_wkssvc_lan_root, 0); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_wkssvc_logged_on_users, NULL); + + return offset; +} + +/* * IDL long NetWkstaGetInfo( * IDL [in] [string] [unique] wchar_t *ServerName, * IDL [in] long level, @@ -177,6 +218,12 @@ wkssvc_dissect_WKS_INFO_UNION(tvbuff_t *tvb, int offset, NDR_POINTER_UNIQUE, "WKS_INFO_101:", -1); break; + case 102: + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + wkssvc_dissect_WKS_INFO_102, + NDR_POINTER_UNIQUE, "WKS_INFO_101:", -1); + break; + } return offset; @@ -230,6 +277,9 @@ proto_register_dcerpc_wkssvc(void) { &hf_wkssvc_lan_root, { "Lan Root", "wkssvc.lan.root", FT_STRING, BASE_NONE, NULL, 0x0, "Lan Root", HFILL}}, + { &hf_wkssvc_logged_on_users, + { "Logged On Users", "wkssvc.logged.on.users", FT_UINT32, + BASE_DEC, NULL, 0x0, "Logged On Users", HFILL}}, { &hf_wkssvc_rc, { "Return code", "srvsvc.rc", FT_UINT32, BASE_HEX, VALS(DOS_errors), 0x0, "Return Code", HFILL}}, |