diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-04-28 09:50:03 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-04-28 09:50:03 +0000 |
commit | 14cd9627b75f37d04a8f463cb8081d5b4164c7a1 (patch) | |
tree | 86899379d1edf4b0de8edb70c2416e5396508eaa /epan/dissectors/dcerpc | |
parent | a4950dec86eaf7ba54bbee96ef99d6fe0f59ba8d (diff) |
make dssetup an autogenerated dissector
and cancel my checkins from an hour ago, but they show the evolvement of the dissector at least. :-)
svn path=/trunk/; revision=14215
Diffstat (limited to 'epan/dissectors/dcerpc')
-rw-r--r-- | epan/dissectors/dcerpc/dssetup/Makefile | 16 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/dssetup/dssetup.cnf | 1 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/dssetup/dssetup.idl | 103 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.c | 892 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.h | 81 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/dssetup/template.c | 79 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/dssetup/template.h | 35 |
7 files changed, 1207 insertions, 0 deletions
diff --git a/epan/dissectors/dcerpc/dssetup/Makefile b/epan/dissectors/dcerpc/dssetup/Makefile new file mode 100644 index 0000000000..67904dba06 --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/Makefile @@ -0,0 +1,16 @@ +# $Id: Makefile 13071 2005-01-16 10:19:21Z guy $ + +DISSECTOR_FILES=packet-dcerpc-dssetup.c packet-dcerpc-dssetup.h + +all: generate_dissector + +generate_dissector: $(DISSECTOR_FILES) + +$(DISSECTOR_FILES): ../idl2eth dssetup.idl dssetup.cnf template.c template.h + ../idl2eth dssetup + +clean: + rm -f ETH_* $(DISSECTOR_FILES) + +copy_files: generate_dissector + cp $(DISSECTOR_FILES) ../.. diff --git a/epan/dissectors/dcerpc/dssetup/dssetup.cnf b/epan/dissectors/dcerpc/dssetup/dssetup.cnf new file mode 100644 index 0000000000..792d600548 --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/dssetup.cnf @@ -0,0 +1 @@ +# diff --git a/epan/dissectors/dcerpc/dssetup/dssetup.idl b/epan/dissectors/dcerpc/dssetup/dssetup.idl new file mode 100644 index 0000000000..cff982673b --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/dssetup.idl @@ -0,0 +1,103 @@ +/* IDL file taken from samba4 svn revision 5672 */ + +#include "idl_types.h" + +/* + dssetup interface definition +*/ + +[ + uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"), + version(0.0), + endpoint("ncacn_np:[\\pipe\\lsarpc]", "ncacn_np:[\\pipe\\lsass]", "ncacn_ip_tcp:", "ncalrpc:"), + pointer_default(unique), + helpstring("Active Directory Setup") +] interface dssetup +{ + /**********************************************/ + /* Function 0x00 */ + + typedef enum { + DS_ROLE_STANDALONE_WORKSTATION = 0, + DS_ROLE_MEMBER_WORKSTATION = 1, + DS_ROLE_STANDALONE_SERVER = 2, + DS_ROLE_MEMBER_SERVER = 3, + DS_ROLE_BACKUP_DC = 4, + DS_ROLE_PRIMARY_DC = 5 + } dssetup_DsRole; + + typedef [bitmap32bit] bitmap { + DS_ROLE_PRIMARY_DS_RUNNING = 0x00000001, + DS_ROLE_PRIMARY_DS_MIXED_MODE = 0x00000002, + DS_ROLE_UPGRADE_IN_PROGRESS = 0x00000004, + DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = 0x01000000 + } dssetup_DsRoleFlags; + + typedef struct { + dssetup_DsRole role; + dssetup_DsRoleFlags flags; + unistr *domain; + unistr *dns_domain; + unistr *forest; + GUID domain_guid; + } dssetup_DsRolePrimaryDomInfoBasic; + + typedef [v1_enum] enum { + DS_ROLE_NOT_UPGRADING = 0, + DS_ROLE_UPGRADING = 1 + } dssetup_DsUpgrade; + + typedef enum { + DS_ROLE_PREVIOUS_UNKNOWN = 0, + DS_ROLE_PREVIOUS_PRIMARY = 1, + DS_ROLE_PREVIOUS_BACKUP = 2 + } dssetup_DsPrevious; + + typedef struct { + dssetup_DsUpgrade upgrading; + dssetup_DsPrevious previous_role; + } dssetup_DsRoleUpgradeStatus; + + typedef enum { + DS_ROLE_OP_IDLE = 0, + DS_ROLE_OP_ACTIVE = 1, + DS_ROLE_OP_NEEDS_REBOOT = 2 + } dssetup_DsRoleOp; + + typedef struct { + dssetup_DsRoleOp status; + } dssetup_DsRoleOpStatus; + + typedef enum { + DS_ROLE_BASIC_INFORMATION = 1, + DS_ROLE_UPGRADE_STATUS = 2, + DS_ROLE_OP_STATUS = 3 + } dssetup_DsRoleInfoLevel; + + typedef [switch_type(dssetup_DsRoleInfoLevel)] union { + [case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic basic; + [case(DS_ROLE_UPGRADE_STATUS)] dssetup_DsRoleUpgradeStatus upgrade; + [case(DS_ROLE_OP_STATUS)] dssetup_DsRoleOpStatus opstatus; + } dssetup_DsRoleInfo; + + WERROR dssetup_DsRoleGetPrimaryDomainInformation( + [in] dssetup_DsRoleInfoLevel level, + [out,switch_is(level)] dssetup_DsRoleInfo *info + ); + + /* + w2k3 has removed all the calls below from their implementation. + These stubs are left here only as a way of documenting the names + of the calls in case they ever turn up on the wire. + */ + WERROR dssetup_DsRoleDnsNameToFlatName(); + WERROR dssetup_DsRoleDcAsDc(); + WERROR dssetup_DsRoleDcAsReplica(); + WERROR dssetup_DsRoleDemoteDc(); + WERROR dssetup_DsRoleGetDcOperationProgress(); + WERROR dssetup_DsRoleGetDcOperationResults(); + WERROR dssetup_DsRoleCancel(); + WERROR dssetup_DsRoleServerSaveStateForUpgrade(); + WERROR dssetup_DsRoleUpgradeDownlevelServer(); + WERROR dssetup_DsRoleAbortDownlevelServerUpgrade(); +} diff --git a/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.c b/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.c new file mode 100644 index 0000000000..4d6f7d155a --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.c @@ -0,0 +1,892 @@ +/* DO NOT EDIT + * This dissector is autogenerated + */ + +/* packet-dcerpc-dssetup.c + * Routines for DS SETUP packet disassembly + * ronnie sahlberg 2005 + * Autogenerated based on the IDL definitions from samba 4 + * + * $Id: packet-dcerpc-dssetup.c 11592 2004-08-03 02:28:49Z guy $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib.h> +#include <string.h> + +#include <epan/packet.h> +#include "packet-dcerpc.h" +#include "packet-dcerpc-nt.h" +#include "packet-windows-common.h" +#include "packet-dcerpc-dssetup.h" + +static int proto_dssetup = -1; + + +/* INCLUDED FILE : ETH_HF */ +static int hf_dssetup_opnum = -1; +static int hf_dssetup_rc = -1; +static int hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING = -1; +static int hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE = -1; +static int hf_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS = -1; +static int hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_role = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_flags = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_domain = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_dns_domain = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_forest = -1; +static int hf_dssetup_DsRolePrimaryDomInfoBasic_domain_guid = -1; +static int hf_dssetup_DsRoleUpgradeStatus_upgrading = -1; +static int hf_dssetup_DsRoleUpgradeStatus_previous_role = -1; +static int hf_dssetup_DsRoleOpStatus_status = -1; +static int hf_dssetup_DsRoleInfo_DS_ROLE_BASIC_INFORMATION_basic = -1; +static int hf_dssetup_DsRoleInfo_DS_ROLE_UPGRADE_STATUS_upgrade = -1; +static int hf_dssetup_DsRoleInfo_DS_ROLE_OP_STATUS_opstatus = -1; +static int hf_dssetup_DsRoleGetPrimaryDomainInformation_level = -1; +static int hf_dssetup_DsRoleGetPrimaryDomainInformation_info = -1; +/* END OF INCLUDED FILE : ETH_HF */ + + + + + +/* INCLUDED FILE : ETH_ETT */ +static gint ett_dssetup = -1; +static gint ett_dssetup_DsRoleFlags = -1; +static gint ett_dssetup_DsRolePrimaryDomInfoBasic = -1; +static gint ett_dssetup_DsRoleUpgradeStatus = -1; +static gint ett_dssetup_DsRoleOpStatus = -1; +static gint ett_dssetup_DsRoleInfo = -1; +/* END OF INCLUDED FILE : ETH_ETT */ + + + + + +/* INCLUDED FILE : ETH_CODE */ +static e_uuid_t uuid_dcerpc_dssetup = { + 0x3919286a, 0xb10c, 0x11d0, + { 0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5} +}; + +static guint16 ver_dssetup = 0; + + +const value_string dssetup_DsRole_vals[] = { + { 0 , "DS_ROLE_STANDALONE_WORKSTATION" }, + { 1 , "DS_ROLE_MEMBER_WORKSTATION" }, + { 2 , "DS_ROLE_STANDALONE_SERVER" }, + { 3 , "DS_ROLE_MEMBER_SERVER" }, + { 4 , "DS_ROLE_BACKUP_DC" }, + { 5 , "DS_ROLE_PRIMARY_DC" }, + { 0 , NULL } +}; + +int +dssetup_dissect_DsRole(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static const true_false_string DS_ROLE_PRIMARY_DS_RUNNING_tfs = { + "DS_ROLE_PRIMARY_DS_RUNNING is SET", + "DS_ROLE_PRIMARY_DS_RUNNING is NOT set" +}; + +static const true_false_string DS_ROLE_PRIMARY_DS_MIXED_MODE_tfs = { + "DS_ROLE_PRIMARY_DS_MIXED_MODE is SET", + "DS_ROLE_PRIMARY_DS_MIXED_MODE is NOT set" +}; + +static const true_false_string DS_ROLE_UPGRADE_IN_PROGRESS_tfs = { + "DS_ROLE_UPGRADE_IN_PROGRESS is SET", + "DS_ROLE_UPGRADE_IN_PROGRESS is NOT set" +}; + +static const true_false_string DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT_tfs = { + "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is SET", + "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is NOT set" +}; + + +int +dssetup_dissect_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_dssetup_DsRoleFlags); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DS_ROLE_PRIMARY_DS_RUNNING"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DS_ROLE_PRIMARY_DS_MIXED_MODE"); + } + flags&=(~0x00000002); + + proto_tree_add_boolean(tree, hf_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS, tvb, offset-4, 4, flags); + if(flags&0x00000004){ + proto_item_append_text(item, " DS_ROLE_UPGRADE_IN_PROGRESS"); + } + flags&=(~0x00000004); + + proto_tree_add_boolean(tree, hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT, tvb, offset-4, 4, flags); + if(flags&0x01000000){ + proto_item_append_text(item, " DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT"); + } + flags&=(~0x01000000); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRole(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_role, param); + return offset; +} + +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRoleFlags(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_flags, param); + return offset; +} + + +static int +dssetup_dissect_unistr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, 2, hf_index, FALSE, NULL); + return offset; +} + +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_domain, param); + return offset; +} + +static int +unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_DsRolePrimaryDomInfoBasic_domain, NDR_POINTER_UNIQUE, "domain", -1); + return offset; +} + +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_dns_domain, param); + return offset; +} + +static int +unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_DsRolePrimaryDomInfoBasic_dns_domain, NDR_POINTER_UNIQUE, "dns_domain", -1); + return offset; +} + +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_forest, param); + return offset; +} + +static int +unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_DsRolePrimaryDomInfoBasic_forest, NDR_POINTER_UNIQUE, "forest", -1); + return offset; +} + + +static int +dssetup_dissect_GUID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +dssetup_dissect_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRolePrimaryDomInfoBasic_domain_guid, param); + return offset; +} + + +int +dssetup_dissect_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); + tree=proto_item_add_subtree(item, ett_dssetup_DsRolePrimaryDomInfoBasic); + } + + offset=dssetup_dissect_DsRolePrimaryDomInfoBasic_role(tvb, offset, pinfo, tree, drep); + + offset=dssetup_dissect_DsRolePrimaryDomInfoBasic_flags(tvb, offset, pinfo, tree, drep); + + offset=unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_domain(tvb, offset, pinfo, tree, drep); + + offset=unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_dns_domain(tvb, offset, pinfo, tree, drep); + + offset=unique_dssetup_dissect_DsRolePrimaryDomInfoBasic_forest(tvb, offset, pinfo, tree, drep); + + offset=dssetup_dissect_DsRolePrimaryDomInfoBasic_domain_guid(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +const value_string dssetup_DsUpgrade_vals[] = { + { 0 , "DS_ROLE_NOT_UPGRADING" }, + { 1 , "DS_ROLE_UPGRADING" }, + { 0 , NULL } +}; + +int +dssetup_dissect_DsUpgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + + +const value_string dssetup_DsPrevious_vals[] = { + { 0 , "DS_ROLE_PREVIOUS_UNKNOWN" }, + { 1 , "DS_ROLE_PREVIOUS_PRIMARY" }, + { 2 , "DS_ROLE_PREVIOUS_BACKUP" }, + { 0 , NULL } +}; + +int +dssetup_dissect_DsPrevious(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +dssetup_dissect_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsUpgrade(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleUpgradeStatus_upgrading, param); + return offset; +} + +static int +dssetup_dissect_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsPrevious(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleUpgradeStatus_previous_role, param); + return offset; +} + + +int +dssetup_dissect_DsRoleUpgradeStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); + tree=proto_item_add_subtree(item, ett_dssetup_DsRoleUpgradeStatus); + } + + offset=dssetup_dissect_DsRoleUpgradeStatus_upgrading(tvb, offset, pinfo, tree, drep); + + offset=dssetup_dissect_DsRoleUpgradeStatus_previous_role(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +const value_string dssetup_DsRoleOp_vals[] = { + { 0 , "DS_ROLE_OP_IDLE" }, + { 1 , "DS_ROLE_OP_ACTIVE" }, + { 2 , "DS_ROLE_OP_NEEDS_REBOOT" }, + { 0 , NULL } +}; + +int +dssetup_dissect_DsRoleOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +dssetup_dissect_DsRoleOpStatus_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRoleOp(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleOpStatus_status, param); + return offset; +} + + +int +dssetup_dissect_DsRoleOpStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + + ALIGN_TO_2_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE); + tree=proto_item_add_subtree(item, ett_dssetup_DsRoleOpStatus); + } + + offset=dssetup_dissect_DsRoleOpStatus_status(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +const value_string dssetup_DsRoleInfoLevel_vals[] = { + { 1 , "DS_ROLE_BASIC_INFORMATION" }, + { 2 , "DS_ROLE_UPGRADE_STATUS" }, + { 3 , "DS_ROLE_OP_STATUS" }, + { 0 , NULL } +}; + +int +dssetup_dissect_DsRoleInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +dssetup_dissect_union_DsRoleInfo_DS_ROLE_BASIC_INFORMATION_basic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRolePrimaryDomInfoBasic(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleInfo_DS_ROLE_BASIC_INFORMATION_basic, param); + return offset; +} + +static int +dssetup_dissect_union_DsRoleInfo_DS_ROLE_UPGRADE_STATUS_upgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRoleUpgradeStatus(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleInfo_DS_ROLE_UPGRADE_STATUS_upgrade, param); + return offset; +} + +static int +dssetup_dissect_union_DsRoleInfo_DS_ROLE_OP_STATUS_opstatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRoleOpStatus(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleInfo_DS_ROLE_OP_STATUS_opstatus, param); + return offset; +} + + +static int +dssetup_dissect_union_DsRoleInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint16 level; + + ALIGN_TO_2_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsRoleInfo"); + tree=proto_item_add_subtree(item, ett_dssetup_DsRoleInfo); + } + + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case DS_ROLE_BASIC_INFORMATION: + ALIGN_TO_4_BYTES; + offset=dssetup_dissect_union_DsRoleInfo_DS_ROLE_BASIC_INFORMATION_basic(tvb, offset, pinfo, tree, drep); + break; + + case DS_ROLE_UPGRADE_STATUS: + ALIGN_TO_4_BYTES; + offset=dssetup_dissect_union_DsRoleInfo_DS_ROLE_UPGRADE_STATUS_upgrade(tvb, offset, pinfo, tree, drep); + break; + + case DS_ROLE_OP_STATUS: + ALIGN_TO_2_BYTES; + offset=dssetup_dissect_union_DsRoleInfo_DS_ROLE_OP_STATUS_opstatus(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +dssetup_dissect_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_DsRoleInfoLevel(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleGetPrimaryDomainInformation_level, param); + return offset; +} + +static int +dssetup_dissect_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=dssetup_dissect_union_DsRoleInfo(tvb, offset, pinfo, tree, drep, hf_dssetup_DsRoleGetPrimaryDomainInformation_info, param); + return offset; +} + +static int +unique_dssetup_dissect_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_DsRoleGetPrimaryDomainInformation_info, NDR_POINTER_UNIQUE, "info", -1); + return offset; +} + + +static int +dssetup_dissect_DsRoleGetPrimaryDomainInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dssetup_dissect_DsRoleGetPrimaryDomainInformation_level(tvb, offset, pinfo, tree, drep); + offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); + + + return offset; +} + +static int +dssetup_dissect_DsRoleGetPrimaryDomainInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=unique_dssetup_dissect_DsRoleGetPrimaryDomainInformation_info(tvb, offset, pinfo, tree, drep); + offset=dissect_deferred_pointers(pinfo, tvb, offset, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleDnsNameToFlatName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleDnsNameToFlatName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleDcAsDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleDcAsDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleDcAsReplica_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleDcAsReplica_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleDemoteDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleDemoteDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleGetDcOperationProgress_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleGetDcOperationProgress_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleGetDcOperationResults_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleGetDcOperationResults_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleCancel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleCancel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleServerSaveStateForUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleServerSaveStateForUpgrade_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleUpgradeDownlevelServer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleUpgradeDownlevelServer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} + +static int +dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_dssetup_rc, NULL); + + + return offset; +} +/* END OF INCLUDED FILE : ETH_CODE */ + + + +void +proto_register_dssetup(void) +{ + static hf_register_info hf[] = { + + +/* INCLUDED FILE : ETH_HFARR */ + { &hf_dssetup_opnum, + { "Operation", "dssetup.opnum", FT_UINT16, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_rc, + { "Return code", "dssetup.rc", FT_UINT32, BASE_HEX, + VALS(NT_errors), 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING, + { "DS_ROLE_PRIMARY_DS_RUNNING", "dssetup.DsRoleFlags.DS_ROLE_PRIMARY_DS_RUNNING", FT_BOOLEAN, 32, + TFS(&DS_ROLE_PRIMARY_DS_RUNNING_tfs), 0x00000001, + "", HFILL }}, + + { &hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE, + { "DS_ROLE_PRIMARY_DS_MIXED_MODE", "dssetup.DsRoleFlags.DS_ROLE_PRIMARY_DS_MIXED_MODE", FT_BOOLEAN, 32, + TFS(&DS_ROLE_PRIMARY_DS_MIXED_MODE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS, + { "DS_ROLE_UPGRADE_IN_PROGRESS", "dssetup.DsRoleFlags.DS_ROLE_UPGRADE_IN_PROGRESS", FT_BOOLEAN, 32, + TFS(&DS_ROLE_UPGRADE_IN_PROGRESS_tfs), 0x00000004, + "", HFILL }}, + + { &hf_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT, + { "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT", "dssetup.DsRoleFlags.DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT", FT_BOOLEAN, 32, + TFS(&DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT_tfs), 0x01000000, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_role, + { "role", "dssetup.DsRolePrimaryDomInfoBasic.role", FT_INT16, BASE_DEC, + VALS(dssetup_DsRole_vals), 0, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_flags, + { "flags", "dssetup.DsRolePrimaryDomInfoBasic.flags", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_domain, + { "domain", "dssetup.DsRolePrimaryDomInfoBasic.domain", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_dns_domain, + { "dns_domain", "dssetup.DsRolePrimaryDomInfoBasic.dns_domain", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_forest, + { "forest", "dssetup.DsRolePrimaryDomInfoBasic.forest", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRolePrimaryDomInfoBasic_domain_guid, + { "domain_guid", "dssetup.DsRolePrimaryDomInfoBasic.domain_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleUpgradeStatus_upgrading, + { "upgrading", "dssetup.DsRoleUpgradeStatus.upgrading", FT_INT32, BASE_DEC, + VALS(dssetup_DsUpgrade_vals), 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleUpgradeStatus_previous_role, + { "previous_role", "dssetup.DsRoleUpgradeStatus.previous_role", FT_INT16, BASE_DEC, + VALS(dssetup_DsPrevious_vals), 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleOpStatus_status, + { "status", "dssetup.DsRoleOpStatus.status", FT_INT16, BASE_DEC, + VALS(dssetup_DsRoleOp_vals), 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleInfo_DS_ROLE_BASIC_INFORMATION_basic, + { "basic", "dssetup.DsRoleInfo.basic", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleInfo_DS_ROLE_UPGRADE_STATUS_upgrade, + { "upgrade", "dssetup.DsRoleInfo.upgrade", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleInfo_DS_ROLE_OP_STATUS_opstatus, + { "opstatus", "dssetup.DsRoleInfo.opstatus", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleGetPrimaryDomainInformation_level, + { "level", "dssetup.DsRoleGetPrimaryDomainInformation.level", FT_INT16, BASE_DEC, + VALS(dssetup_DsRoleInfoLevel_vals), 0, + "", HFILL }}, + + { &hf_dssetup_DsRoleGetPrimaryDomainInformation_info, + { "info", "dssetup.DsRoleGetPrimaryDomainInformation.info", FT_UINT16, BASE_DEC, + NULL, 0, + "", HFILL }}, + +/* END OF INCLUDED FILE : ETH_HFARR */ + + + }; + + static gint *ett[] = { + + +/* INCLUDED FILE : ETH_ETTARR */ + &ett_dssetup, + &ett_dssetup_DsRoleFlags, + &ett_dssetup_DsRolePrimaryDomInfoBasic, + &ett_dssetup_DsRoleUpgradeStatus, + &ett_dssetup_DsRoleOpStatus, + &ett_dssetup_DsRoleInfo, +/* END OF INCLUDED FILE : ETH_ETTARR */ + + + }; + + proto_dssetup = proto_register_protocol( + "Active Directory Setup", + "DSSETUP", "dssetup"); + proto_register_field_array(proto_dssetup, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); +} + +static dcerpc_sub_dissector function_dissectors[] = { + + +/* INCLUDED FILE : ETH_FT */ + { 0, "DsRoleGetPrimaryDomainInformation", + dssetup_dissect_DsRoleGetPrimaryDomainInformation_request, + dssetup_dissect_DsRoleGetPrimaryDomainInformation_response }, + { 1, "DsRoleDnsNameToFlatName", + dssetup_dissect_DsRoleDnsNameToFlatName_request, + dssetup_dissect_DsRoleDnsNameToFlatName_response }, + { 2, "DsRoleDcAsDc", + dssetup_dissect_DsRoleDcAsDc_request, + dssetup_dissect_DsRoleDcAsDc_response }, + { 3, "DsRoleDcAsReplica", + dssetup_dissect_DsRoleDcAsReplica_request, + dssetup_dissect_DsRoleDcAsReplica_response }, + { 4, "DsRoleDemoteDc", + dssetup_dissect_DsRoleDemoteDc_request, + dssetup_dissect_DsRoleDemoteDc_response }, + { 5, "DsRoleGetDcOperationProgress", + dssetup_dissect_DsRoleGetDcOperationProgress_request, + dssetup_dissect_DsRoleGetDcOperationProgress_response }, + { 6, "DsRoleGetDcOperationResults", + dssetup_dissect_DsRoleGetDcOperationResults_request, + dssetup_dissect_DsRoleGetDcOperationResults_response }, + { 7, "DsRoleCancel", + dssetup_dissect_DsRoleCancel_request, + dssetup_dissect_DsRoleCancel_response }, + { 8, "DsRoleServerSaveStateForUpgrade", + dssetup_dissect_DsRoleServerSaveStateForUpgrade_request, + dssetup_dissect_DsRoleServerSaveStateForUpgrade_response }, + { 9, "DsRoleUpgradeDownlevelServer", + dssetup_dissect_DsRoleUpgradeDownlevelServer_request, + dssetup_dissect_DsRoleUpgradeDownlevelServer_response }, + { 10, "DsRoleAbortDownlevelServerUpgrade", + dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request, + dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response }, +/* END OF INCLUDED FILE : ETH_FT */ + + + { 0, NULL, NULL, NULL }, +}; + +void +proto_reg_handoff_dssetup(void) +{ + + +/* INCLUDED FILE : ETH_HANDOFF */ + dcerpc_init_uuid(proto_dssetup, ett_dssetup, + &uuid_dcerpc_dssetup, ver_dssetup, + function_dissectors, hf_dssetup_opnum); +/* END OF INCLUDED FILE : ETH_HANDOFF */ + + +} + diff --git a/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.h b/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.h new file mode 100644 index 0000000000..1040ba28a4 --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/packet-dcerpc-dssetup.h @@ -0,0 +1,81 @@ +/* DO NOT EDIT + * This dissector is autogenerated + * ronnie sahlberg 2005 + * Autogenerated based on the IDL definitions from samba4 + */ +/* packet-dcerpc-dssetup.h + * Routines for DSSETUP packet disassembly + * + * $Id: packet-dcerpc-dssetup.h 11410 2004-07-18 18:06:47Z gram $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __PACKET_DCERPC_DSSETUP_H +#define __PACKET_DCERPC_DSSETUP_H + + + +/* INCLUDED FILE : ETH_HDR */ + +#define DS_ROLE_STANDALONE_WORKSTATION 0 +#define DS_ROLE_MEMBER_WORKSTATION 1 +#define DS_ROLE_STANDALONE_SERVER 2 +#define DS_ROLE_MEMBER_SERVER 3 +#define DS_ROLE_BACKUP_DC 4 +#define DS_ROLE_PRIMARY_DC 5 + +extern const value_string dssetup_DsRole_vals[]; +int dssetup_dissect_DsRole(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int dssetup_dissect_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int dssetup_dissect_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DS_ROLE_NOT_UPGRADING 0 +#define DS_ROLE_UPGRADING 1 + +extern const value_string dssetup_DsUpgrade_vals[]; +int dssetup_dissect_DsUpgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DS_ROLE_PREVIOUS_UNKNOWN 0 +#define DS_ROLE_PREVIOUS_PRIMARY 1 +#define DS_ROLE_PREVIOUS_BACKUP 2 + +extern const value_string dssetup_DsPrevious_vals[]; +int dssetup_dissect_DsPrevious(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int dssetup_dissect_DsRoleUpgradeStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DS_ROLE_OP_IDLE 0 +#define DS_ROLE_OP_ACTIVE 1 +#define DS_ROLE_OP_NEEDS_REBOOT 2 + +extern const value_string dssetup_DsRoleOp_vals[]; +int dssetup_dissect_DsRoleOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int dssetup_dissect_DsRoleOpStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DS_ROLE_BASIC_INFORMATION 1 +#define DS_ROLE_UPGRADE_STATUS 2 +#define DS_ROLE_OP_STATUS 3 + +extern const value_string dssetup_DsRoleInfoLevel_vals[]; +int dssetup_dissect_DsRoleInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +/* END OF INCLUDED FILE : ETH_HDR */ + + + +#endif /* packet-dcerpc-dssetup.h */ diff --git a/epan/dissectors/dcerpc/dssetup/template.c b/epan/dissectors/dcerpc/dssetup/template.c new file mode 100755 index 0000000000..0cb823684d --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/template.c @@ -0,0 +1,79 @@ +/* DO NOT EDIT + * This dissector is autogenerated + */ + +/* packet-dcerpc-dssetup.c + * Routines for DS SETUP packet disassembly + * ronnie sahlberg 2005 + * Autogenerated based on the IDL definitions from samba 4 + * + * $Id: packet-dcerpc-dssetup.c 11592 2004-08-03 02:28:49Z guy $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <glib.h> +#include <string.h> + +#include <epan/packet.h> +#include "packet-dcerpc.h" +#include "packet-dcerpc-nt.h" +#include "packet-windows-common.h" +#include "packet-dcerpc-dssetup.h" + +static int proto_dssetup = -1; +ETH_HF + +ETH_ETT + +ETH_CODE + +void +proto_register_dssetup(void) +{ + static hf_register_info hf[] = { +ETH_HFARR + }; + + static gint *ett[] = { +ETH_ETTARR + }; + + proto_dssetup = proto_register_protocol( + "Active Directory Setup", + "DSSETUP", "dssetup"); + proto_register_field_array(proto_dssetup, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); +} + +static dcerpc_sub_dissector function_dissectors[] = { +ETH_FT + { 0, NULL, NULL, NULL }, +}; + +void +proto_reg_handoff_dssetup(void) +{ +ETH_HANDOFF +} + diff --git a/epan/dissectors/dcerpc/dssetup/template.h b/epan/dissectors/dcerpc/dssetup/template.h new file mode 100755 index 0000000000..8ef6c55af6 --- /dev/null +++ b/epan/dissectors/dcerpc/dssetup/template.h @@ -0,0 +1,35 @@ +/* DO NOT EDIT + * This dissector is autogenerated + * ronnie sahlberg 2005 + * Autogenerated based on the IDL definitions from samba4 + */ +/* packet-dcerpc-dssetup.h + * Routines for DSSETUP packet disassembly + * + * $Id: packet-dcerpc-dssetup.h 11410 2004-07-18 18:06:47Z gram $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __PACKET_DCERPC_DSSETUP_H +#define __PACKET_DCERPC_DSSETUP_H + +ETH_HDR + +#endif /* packet-dcerpc-dssetup.h */ |