From 895d2000d4ac59add3caafe447090bf3c8512723 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 20 Jun 2002 10:25:24 +0000 Subject: Some infolevels for SERVER_INFO_UNION svn path=/trunk/; revision=5713 --- packet-dcerpc-srvsvc.c | 616 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 535 insertions(+), 81 deletions(-) (limited to 'packet-dcerpc-srvsvc.c') diff --git a/packet-dcerpc-srvsvc.c b/packet-dcerpc-srvsvc.c index 74cd81cd68..cd24e8da8e 100644 --- a/packet-dcerpc-srvsvc.c +++ b/packet-dcerpc-srvsvc.c @@ -4,7 +4,7 @@ * Copyright 2002, Richard Sharpe * decode srvsvc calls where Samba knows them ... * - * $Id: packet-dcerpc-srvsvc.c,v 1.27 2002/06/19 10:22:55 sahlberg Exp $ + * $Id: packet-dcerpc-srvsvc.c,v 1.28 2002/06/20 10:25:24 sahlberg Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -51,6 +51,8 @@ typedef struct _srvsvc_info { static int proto_dcerpc_srvsvc = -1; static int hf_srvsvc_reserved = -1; static int hf_srvsvc_server = -1; +static int hf_srvsvc_alerts = -1; +static int hf_srvsvc_guest = -1; static int hf_srvsvc_transport = -1; static int hf_srvsvc_session = -1; static int hf_srvsvc_session_num_opens = -1; @@ -71,7 +73,6 @@ static int hf_srvsvc_cur_uses = -1; static int hf_srvsvc_con_time = -1; static int hf_srvsvc_con_type = -1; static int hf_srvsvc_con_num_opens = -1; -static int hf_srvsvc_con_num_users = -1; static int hf_srvsvc_chrqpri = -1; static int hf_srvsvc_chrqnumusers = -1; static int hf_srvsvc_chrqnumahead = -1; @@ -90,9 +91,10 @@ static int hf_srvsvc_server_type = -1; static int hf_srvsvc_client_type = -1; static int hf_srvsvc_server_comment = -1; static int hf_srvsvc_users = -1; +static int hf_srvsvc_disc = -1; static int hf_srvsvc_hidden = -1; static int hf_srvsvc_announce = -1; -static int hf_srvsvc_ann_delta = -1; +static int hf_srvsvc_anndelta = -1; static int hf_srvsvc_licences = -1; static int hf_srvsvc_user_path = -1; static int hf_srvsvc_share = -1; @@ -105,6 +107,38 @@ static int hf_srvsvc_num_pointers = -1; static int hf_srvsvc_preferred_len = -1; static int hf_srvsvc_parm_error = -1; static int hf_srvsvc_enum_handle = -1; +static int hf_srvsvc_ulist_mtime = -1; +static int hf_srvsvc_glist_mtime = -1; +static int hf_srvsvc_alist_mtime = -1; +static int hf_srvsvc_security = -1; +static int hf_srvsvc_numadmin = -1; +static int hf_srvsvc_lanmask = -1; +static int hf_srvsvc_chdevs = -1; +static int hf_srvsvc_chdevqs = -1; +static int hf_srvsvc_chdevjobs = -1; +static int hf_srvsvc_connections = -1; +static int hf_srvsvc_shares = -1; +static int hf_srvsvc_openfiles = -1; +static int hf_srvsvc_sessopens = -1; +static int hf_srvsvc_sessvcs = -1; +static int hf_srvsvc_sessreqs = -1; +static int hf_srvsvc_opensearch = -1; +static int hf_srvsvc_activelocks = -1; +static int hf_srvsvc_sizreqbufs = -1; +static int hf_srvsvc_numbigbufs = -1; +static int hf_srvsvc_numfiletasks = -1; +static int hf_srvsvc_alertsched = -1; +static int hf_srvsvc_erroralert = -1; +static int hf_srvsvc_logonalert = -1; +static int hf_srvsvc_accessalert = -1; +static int hf_srvsvc_diskalert = -1; +static int hf_srvsvc_netioalert = -1; +static int hf_srvsvc_maxauditsz = -1; +static int hf_srvsvc_srvheuristics = -1; +static int hf_srvsvc_auditedevents = -1; +static int hf_srvsvc_auditprofile = -1; +static int hf_srvsvc_autopath = -1; + static int hf_srvsvc_unknown_long = -1; static int hf_srvsvc_unknown_bytes = -1; static int hf_srvsvc_unknown_string = -1; @@ -487,7 +521,7 @@ srvsvc_dissect_CHARDEVQ_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, * IDL [string] [unique] wchar_t *dev; * IDL long priority; * IDL [string] [unique] wchar_t *devs; - * IDL long num_users; + * IDL long users; * IDL long num_ahead; * IDL } CHARDEVQ_INFO_1; */ @@ -865,7 +899,7 @@ srvsvc_dissect_CONNECT_INFO_0_CONTAINER(tvbuff_t *tvb, int offset, * IDL long conid; * IDL long type; * IDL long num_opens; - * IDL long num_users; + * IDL long users; * IDL long time; * IDL [string] [unique] wchar_t *username; * IDL [string] [unique] wchar_t *share; @@ -886,7 +920,7 @@ srvsvc_dissect_CONNECT_INFO_1(tvbuff_t *tvb, int offset, hf_srvsvc_con_num_opens, NULL); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, - hf_srvsvc_con_num_users, NULL); + hf_srvsvc_users, NULL); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_srvsvc_con_time, NULL); @@ -2600,126 +2634,446 @@ srvsvc_dissect_netrsharecheck_rqst(tvbuff_t *tvb, int offset, return offset; } +/* + * IDL typedef struct { + * IDL long platform_id; + * IDL [string] [unique] wchar_t *server; + * IDL } SERVER_INFO_100; + */ +static int +srvsvc_dissect_SERVER_INFO_100(tvbuff_t *tvb, int offset, + packet_info *pinfo, proto_tree *tree, + char *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_platform_id, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Server", + hf_srvsvc_server, 0); + + return offset; +} + +/* + * IDL typedef struct { + * IDL long platform_id; + * IDL [string] [unique] wchar_t *server; + * IDL long ver_major; + * IDL long ver_minor; + * IDL long type; + * IDL [string] [unique] wchar_t *comment; + * IDL } SERVER_INFO_101; + */ +static int +srvsvc_dissect_SERVER_INFO_101(tvbuff_t *tvb, int offset, + packet_info *pinfo, proto_tree *tree, + char *drep) +{ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_platform_id, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Server", + hf_srvsvc_server, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ver_major, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ver_minor, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_server_type, NULL); + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Comment", + hf_srvsvc_server_comment, 0); + return offset; +} +/* + * IDL typedef struct { + * IDL long platform_id; + * IDL [string] [unique] wchar_t *server; + * IDL long ver_major; + * IDL long ver_minor; + * IDL long type; + * IDL [string] [unique] wchar_t *comment; + * IDL long users; + * IDL long disc; + * IDL long hidden; + * IDL long announce; + * IDL long anndelta; + * IDL long licences; + * IDL [string] [unique] wchar_t *userpath; + * IDL } SERVER_INFO_102; + */ +static int +srvsvc_dissect_SERVER_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_srvsvc_platform_id, NULL); + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Server", + hf_srvsvc_server, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ver_major, NULL); -/* new functions in order and with idl above this line */ + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ver_minor, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_server_type, NULL); + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Comment", + hf_srvsvc_server_comment, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_users, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_disc, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_hidden, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_announce, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_anndelta, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_licences, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "User Path", + hf_srvsvc_user_path, 0); + + return offset; +} + +/* + * IDL typedef struct { + * IDL long ulist_mtime; + * IDL long glist_mtime; + * IDL long alist_mtime; + * IDL [string] [unique] wchar_t *alerts; + * IDL long security; + * IDL long numadmin; + * IDL long lanmask; + * IDL [string] [unique] wchar_t *guestaccount; + * IDL long chdevs; + * IDL long chdevqs; + * IDL long chdevjobs; + * IDL long connections; + * IDL long shares; + * IDL long openfiles; + * IDL long sessopens; + * IDL long sessvcs; + * IDL long sessreqs; + * IDL long opensearch; + * IDL long activelocks; + * IDL long sizreqbufs + * IDL long numbigbufs + * IDL long numfiletasks; + * IDL long alertsched; + * IDL long erroralert; + * IDL long logonalert; + * IDL long accessalert; + * IDL long diskalert; + * IDL long netioalert; + * IDL long maxauditsz; + * IDL [string] [unique] wchar_t *srvheuristics; + * IDL } SERVER_INFO_402; + */ static int -srvsvc_dissect_SRV_INFO_100_struct(tvbuff_t *tvb, int offset, +srvsvc_dissect_SERVER_INFO_402(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep) { + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ulist_mtime, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_platform_id, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_glist_mtime, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_UNIQUE, "Server", - hf_srvsvc_server, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_alist_mtime, NULL); - return offset; + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Alerts", + hf_srvsvc_alerts, 0); -} + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_security, NULL); -static int -srvsvc_dissect_pointer_comment_UNICODE_STRING(tvbuff_t *tvb, int offset, - packet_info *pinfo, - proto_tree *tree, - char *drep) -{ - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_UNIQUE, "Comment", - hf_srvsvc_server_comment, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numadmin, NULL); - return offset; + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_lanmask, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Guest", + hf_srvsvc_guest, 0); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevqs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevjobs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_openfiles, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessopens, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessvcs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessreqs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_opensearch, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_activelocks, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sizreqbufs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numbigbufs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numfiletasks, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_alertsched, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_erroralert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_logonalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_accessalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_diskalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_netioalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_maxauditsz, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Server Heuristics", + hf_srvsvc_srvheuristics, 0); + + return offset; } + + +/* + * IDL typedef struct { + * IDL long ulist_mtime; + * IDL long glist_mtime; + * IDL long alist_mtime; + * IDL [string] [unique] wchar_t *alerts; + * IDL long security; + * IDL long numadmin; + * IDL long lanmask; + * IDL [string] [unique] wchar_t *guestaccount; + * IDL long chdevs; + * IDL long chdevqs; + * IDL long chdevjobs; + * IDL long connections; + * IDL long shares; + * IDL long openfiles; + * IDL long sessopens; + * IDL long sessvcs; + * IDL long sessreqs; + * IDL long opensearch; + * IDL long activelocks; + * IDL long sizreqbufs + * IDL long numbigbufs + * IDL long numfiletasks; + * IDL long alertsched; + * IDL long erroralert; + * IDL long logonalert; + * IDL long accessalert; + * IDL long diskalert; + * IDL long netioalert; + * IDL long maxauditsz; + * IDL [string] [unique] wchar_t *srvheuristics; + * IDL long auditedevents; + * IDL long auditprofile; + * IDL [string] [unique] wchar_t *autopath; + * IDL } SERVER_INFO_403; + */ static int -srvsvc_dissect_SRV_INFO_101_struct(tvbuff_t *tvb, int offset, +srvsvc_dissect_SERVER_INFO_403(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *drep) { - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_platform_id, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_ulist_mtime, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_PTR, "Server", - hf_srvsvc_server, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_glist_mtime, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_ver_major, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_alist_mtime, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_ver_minor, NULL); + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Alerts", + hf_srvsvc_alerts, 0); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_server_type, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_security, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_UNIQUE, "Comment", - hf_srvsvc_server_comment, 0); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numadmin, NULL); - return offset; + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_lanmask, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Guest", + hf_srvsvc_guest, 0); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevqs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_chdevjobs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_openfiles, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessopens, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessvcs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sessreqs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_opensearch, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_activelocks, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_sizreqbufs, NULL); + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numbigbufs, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_numfiletasks, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_alertsched, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_erroralert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_logonalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_accessalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_diskalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_netioalert, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_maxauditsz, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Server Heuristics", + hf_srvsvc_srvheuristics, 0); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_auditedevents, NULL); + + offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, + hf_srvsvc_auditprofile, NULL); + + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, + srvsvc_dissect_pointer_UNICODE_STRING, + NDR_POINTER_UNIQUE, "Autopath", + hf_srvsvc_autopath, 0); + + return offset; } -/* Seems silly to cut and paste, but that is what I have done ... */ -static int -srvsvc_dissect_SRV_INFO_102_struct(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, - char *drep) -{ - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_platform_id, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_PTR, "Server", - hf_srvsvc_server, 0); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_ver_major, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_ver_minor, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_server_type, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, - srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_UNIQUE, "Comment", - hf_srvsvc_server_comment, 0); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_users, NULL); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, - hf_srvsvc_hidden, NULL); - offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, +/*qqq*/ +/* new functions in order and with idl above this line */ + + + + + + + + +static int +srvsvc_dissect_pointer_comment_UNICODE_STRING(tvbuff_t *tvb, int offset, + packet_info *pinfo, + proto_tree *tree, + char *drep) +{ + offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_pointer_UNICODE_STRING, - NDR_POINTER_UNIQUE, "User Path", - hf_srvsvc_user_path, 0); + NDR_POINTER_UNIQUE, "Comment", + hf_srvsvc_server_comment, 0); return offset; @@ -2749,21 +3103,21 @@ srvsvc_dissect_SVR_INFO_CTR(tvbuff_t *tvb, int offset, switch (level) { case 100: offset = dissect_ndr_pointer(tvb, offset, pinfo, stree, drep, - srvsvc_dissect_SRV_INFO_100_struct, + srvsvc_dissect_SERVER_INFO_100, NDR_POINTER_UNIQUE, "Info Level 100", -1, 0); break; case 101: offset = dissect_ndr_pointer(tvb, offset, pinfo, stree, drep, - srvsvc_dissect_SRV_INFO_101_struct, + srvsvc_dissect_SERVER_INFO_101, NDR_POINTER_UNIQUE, "Info Level 101", -1, 0); break; case 102: offset = dissect_ndr_pointer(tvb, offset, pinfo, stree, drep, - srvsvc_dissect_SRV_INFO_102_struct, + srvsvc_dissect_SERVER_INFO_102, NDR_POINTER_UNIQUE, "Info Level 102", -1, 0); break; @@ -2920,6 +3274,12 @@ proto_register_dcerpc_srvsvc(void) { &hf_srvsvc_server, { "Server", "srvsvc.server", FT_STRING, BASE_NONE, NULL, 0x0, "Server Name", HFILL}}, + { &hf_srvsvc_alerts, + { "Alerts", "srvsvc.alerts", FT_STRING, BASE_NONE, + NULL, 0x0, "Alerts", HFILL}}, + { &hf_srvsvc_guest, + { "Guest Account", "srvsvc.guest", FT_STRING, BASE_NONE, + NULL, 0x0, "Guest Account", HFILL}}, { &hf_srvsvc_transport, { "Transport", "srvsvc.transport", FT_STRING, BASE_NONE, NULL, 0x0, "Transport Name", HFILL}}, @@ -2997,6 +3357,9 @@ proto_register_dcerpc_srvsvc(void) { &hf_srvsvc_users, { "Users", "srvsvc.users", FT_UINT32, BASE_DEC, NULL, 0x0 , "User Count", HFILL}}, + { &hf_srvsvc_disc, + { "Disc", "srvsvc.disc", FT_UINT32, + BASE_DEC, NULL, 0x0 , "", HFILL}}, { &hf_srvsvc_hidden, { "Hidden", "srvsvc.hidden", FT_UINT32, BASE_DEC, NULL, 0x0, "Hidden", HFILL}}, @@ -3006,7 +3369,7 @@ proto_register_dcerpc_srvsvc(void) { &hf_srvsvc_announce, { "Announce", "srvsvc.announce", FT_UINT32, BASE_DEC, NULL, 0x0, "Announce", HFILL }}, - { &hf_srvsvc_ann_delta, + { &hf_srvsvc_anndelta, { "Announce Delta", "srvsvc.ann_delta", FT_UINT32, BASE_DEC, NULL, 0x0, "Announce Delta", HFILL}}, { &hf_srvsvc_licences, @@ -3063,15 +3426,105 @@ proto_register_dcerpc_srvsvc(void) { &hf_srvsvc_session_user_flags, { "User Flags", "srvsvc.session.user_flags", FT_UINT32, BASE_HEX, NULL, 0x0, "User Flags", HFILL}}, - { &hf_srvsvc_con_num_users, - { "Num Users", "srvsvc.con_num_users", FT_UINT32, - BASE_DEC, NULL, 0x0, "Num Users", HFILL}}, { &hf_srvsvc_con_type, { "Connection Type", "srvsvc.con_type", FT_UINT32, BASE_DEC, NULL, 0x0, "Connection Type", HFILL}}, { &hf_srvsvc_con_time, { "Connection Time", "srvsvc.con_time", FT_UINT32, BASE_DEC, NULL, 0x0, "Connection Time", HFILL}}, + { &hf_srvsvc_ulist_mtime, + { "Ulist mtime", "srvsvc.ulist_mtime", FT_UINT32, + BASE_DEC, NULL, 0x0, "Ulist mtime", HFILL}}, + { &hf_srvsvc_glist_mtime, + { "Glist mtime", "srvsvc.glist_mtime", FT_UINT32, + BASE_DEC, NULL, 0x0, "Glist mtime", HFILL}}, + { &hf_srvsvc_alist_mtime, + { "Alist mtime", "srvsvc.alist_mtime", FT_UINT32, + BASE_DEC, NULL, 0x0, "Alist mtime", HFILL}}, + { &hf_srvsvc_connections, + { "Connections", "srvsvc.connections", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Connections", HFILL}}, + { &hf_srvsvc_shares, + { "Shares", "srvsvc.shares", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Shares", HFILL}}, + { &hf_srvsvc_diskalert, + { "Disk Alerts", "srvsvc.diskalert", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of disk alerts", HFILL}}, + { &hf_srvsvc_netioalert, + { "Net I/O Alerts", "srvsvc.netioalert", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Net I/O Alerts", HFILL}}, + { &hf_srvsvc_maxauditsz, + { "Max Audits", "srvsvc.maxaudits", FT_UINT32, + BASE_DEC, NULL, 0x0, "Maximum number of audits", HFILL}}, + { &hf_srvsvc_srvheuristics, + { "Server Heuristics", "srvsvc.srvheuristics", FT_STRING, + BASE_DEC, NULL, 0x0, "Server Heuristics", HFILL}}, + { &hf_srvsvc_openfiles, + { "Open Files", "srvsvc.openfiles", FT_UINT32, + BASE_DEC, NULL, 0x0, "Open Files", HFILL}}, + { &hf_srvsvc_opensearch, + { "Open Search", "srvsvc.opensearch", FT_UINT32, + BASE_DEC, NULL, 0x0, "Open Search", HFILL}}, + { &hf_srvsvc_activelocks, + { "Active Locks", "srvsvc.activelocks", FT_UINT32, + BASE_DEC, NULL, 0x0, "Active Locks", HFILL}}, + { &hf_srvsvc_numfiletasks, + { "Num Filetasks", "srvsvc.numfiletasks", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of filetasks", HFILL}}, + { &hf_srvsvc_alertsched, + { "Alert Sched", "srvsvc.alertsched", FT_UINT32, + BASE_DEC, NULL, 0x0, "Alert Schedule", HFILL}}, + { &hf_srvsvc_erroralert, + { "Error Alerts", "srvsvc.erroralert", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of error alerts", HFILL}}, + { &hf_srvsvc_logonalert, + { "Logon Alerts", "srvsvc.logonalert", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of logon alerts", HFILL}}, + { &hf_srvsvc_accessalert, + { "Access Alerts", "srvsvc.accessalert", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of access alerts", HFILL}}, + { &hf_srvsvc_sizreqbufs, + { "Siz Req Bufs", "srvsvc.sizreqbufs", FT_UINT32, + BASE_DEC, NULL, 0x0, "", HFILL}}, + { &hf_srvsvc_numbigbufs, + { "Num Big Bufs", "srvsvc.numbigbufs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of big buffers", HFILL}}, + { &hf_srvsvc_sessopens, + { "Sessions Open", "srvsvc.sessopens", FT_UINT32, + BASE_DEC, NULL, 0x0, "Sessions Open", HFILL}}, + { &hf_srvsvc_sessvcs, + { "Sessions VCs", "srvsvc.sessvcs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Sessions VCs", HFILL}}, + { &hf_srvsvc_sessreqs, + { "Sessions Reqs", "srvsvc.sessreqs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Sessions Requests", HFILL}}, + { &hf_srvsvc_auditedevents, + { "Audited Events", "srvsvc.auditedevents", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of audited events", HFILL}}, + { &hf_srvsvc_auditprofile, + { "Audit Profile", "srvsvc.auditprofile", FT_UINT32, + BASE_HEX, NULL, 0x0, "Audit Profile", HFILL}}, + { &hf_srvsvc_autopath, + { "Autopath", "srvsvc.autopath", FT_STRING, + BASE_DEC, NULL, 0x0, "Autopath", HFILL}}, + { &hf_srvsvc_security, + { "Security", "srvsvc.security", FT_UINT32, + BASE_HEX, NULL, 0x0, "Security", HFILL}}, + { &hf_srvsvc_numadmin, + { "Num Admins", "srvsvc.num_admins", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Administrators", HFILL}}, + { &hf_srvsvc_lanmask, + { "LANMask", "srvsvc.lanmask", FT_UINT32, + BASE_HEX, NULL, 0x0, "LANMask", HFILL}}, + { &hf_srvsvc_chdevs, + { "Char Devs", "srvsvc.chdevs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Char Devices", HFILL}}, + { &hf_srvsvc_chdevqs, + { "Char Devqs", "srvsvc.chdevqs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Char Device Queues", HFILL}}, + { &hf_srvsvc_chdevjobs, + { "Char Dev Jobs", "srvsvc.chdevjobs", FT_UINT32, + BASE_DEC, NULL, 0x0, "Number of Char Device Jobs", HFILL}}, { &hf_srvsvc_num_entries, { "Number of entries", "srvsvc.share.num_entries", FT_UINT32, BASE_DEC, NULL, 0x0, "Number of Entries", HFILL}}, @@ -3123,3 +3576,4 @@ proto_reg_handoff_dcerpc_srvsvc(void) &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc, dcerpc_srvsvc_dissectors); } + -- cgit v1.2.3