static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid, NULL); return offset; }
static int dissect_sec_rgy_cursor_t (tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * parent_tree, guint8 * drep) { /* * Database cursor for iterative operations * typedef struct { uuid_t source; signed32 handle; boolean32 valid; } sec_rgy_cursor_t; */ proto_item *item = NULL; proto_tree *tree = NULL; int old_offset = offset; dcerpc_info *di; e_uuid_t source; guint32 handle, valid; di = (dcerpc_info *)pinfo->private_data; if (di->conformant_run) { return offset; } if (parent_tree) { item = proto_tree_add_text (parent_tree, tvb, offset, -1, " sec_rgy_cursor_t "); tree = proto_item_add_subtree (item, ett_sec_rgy_cursor_t); } offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_rs_uuid1, &source); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_rs_sec_rgy_pgo_item_t_unix_num, &handle); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_rs_sec_rgy_pgo_item_t_quota, &valid); if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " sec_rgy_cursor_t - source %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x handle:%u valid:%u", source.Data1, source.Data2, source.Data3, source.Data4[0], source.Data4[1], source.Data4[2], source.Data4[3], source.Data4[4], source.Data4[5], source.Data4[6], source.Data4[7], handle, valid); proto_item_set_len (item, offset - old_offset); return offset; }
static int conv_dissect_who_are_you2_resp (tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { /* * [out] unsigned32 *seq, * [out] uuid_t *cas_uuid, * * [out] unsigned32 *st */ guint32 seq, st; e_guid_t cas_uuid; offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_resp_seq, &seq); offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_resp_casuuid, &cas_uuid); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep, hf_conv_rc, &st); col_add_fstr(pinfo->cinfo, COL_INFO, "conv_who_are_you2 response seq:%u st:%s cas:%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", seq, val_to_str_ext(st, &dce_error_vals_ext, "%u"), cas_uuid.data1, cas_uuid.data2, cas_uuid.data3, cas_uuid.data4[0], cas_uuid.data4[1], cas_uuid.data4[2], cas_uuid.data4[3], cas_uuid.data4[4], cas_uuid.data4[5], cas_uuid.data4[6], cas_uuid.data4[7]); return offset; }
static int misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep) { offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_misc_policy_handle_uuid, NULL); return offset; }
static int dissect_sec_rgy_pgo_item_t (tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * parent_tree, dcerpc_info *di, guint8 * drep) { /* typedef struct { uuid_t id; signed32 unix_num; signed32 quota; sec_rgy_pgo_flags_t flags; sec_rgy_pname_t fullname; } sec_rgy_pgo_item_t; */ proto_item *item = NULL; proto_tree *tree = NULL; int old_offset = offset; e_uuid_t id; guint32 unix_num, quota; if (di->conformant_run) { return offset; } if (parent_tree) { item = proto_tree_add_text (parent_tree, tvb, offset, -1, " sec_rgy_pgo_item_t "); tree = proto_item_add_subtree (item, ett_sec_rgy_pgo_item_t); } offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_rs_uuid1, &id); offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_rs_sec_rgy_pgo_item_t_unix_num, &unix_num); offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_rs_sec_rgy_pgo_item_t_quota, "a); offset = dissect_sec_rgy_pgo_flags_t (tvb, offset, pinfo, tree, di, drep); offset += 4; /* XXX */ offset = dissect_sec_rgy_pname_t (tvb, offset, pinfo, tree, di, drep); col_append_fstr (pinfo->cinfo, COL_INFO, " sec_rgy_pgo_item_t - id %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x unix_num:%u quota:%u", id.Data1, id.Data2, id.Data3, id.Data4[0], id.Data4[1], id.Data4[2], id.Data4[3], id.Data4[4], id.Data4[5], id.Data4[6], id.Data4[7], unix_num, quota); proto_item_set_len (item, offset - old_offset); return offset; }
static int dissect_rs_cache_data_t (tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * parent_tree, dcerpc_info *di, guint8 * drep) { /* typedef struct { uuid_t site_id; sec_timeval_sec_t person_dtm; sec_timeval_sec_t group_dtm; sec_timeval_sec_t org_dtm; } rs_cache_data_t; */ proto_item *item = NULL; proto_tree *tree = NULL; int old_offset = offset; guint32 person_dtm, group_dtm, org_dtm; e_uuid_t uuid1; if (di->conformant_run) { return offset; } if (parent_tree) { item = proto_tree_add_text (parent_tree, tvb, offset, -1, "rs_cache_data_t"); tree = proto_item_add_subtree (item, ett_rs_cache_data_t); } offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_rs_uuid1, &uuid1); offset = dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep, hf_rs_timeval, &person_dtm); offset = dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep, hf_rs_timeval, &group_dtm); offset = dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep, hf_rs_timeval, &org_dtm); col_append_fstr (pinfo->cinfo, COL_INFO, " siteid %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x person_dtm:%u group_dtm:%u org_dtm:%u", uuid1.Data1, uuid1.Data2, uuid1.Data3, uuid1.Data4[0], uuid1.Data4[1], uuid1.Data4[2], uuid1.Data4[3], uuid1.Data4[4], uuid1.Data4[5], uuid1.Data4[6], uuid1.Data4[7], person_dtm, group_dtm, org_dtm); proto_item_set_len (item, offset - old_offset); return offset; }
static int epm_dissect_uuid (tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, di, drep, hf_epm_uuid, NULL); return offset; }
static int epm_dissect_pointer_UUID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { dcerpc_info *di; di=pinfo->private_data; offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, di->hf_index, NULL); return offset; }
static int epm_dissect_pointer_IF_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, di, drep, di->hf_index, NULL); offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, di, drep, hf_epm_ver_maj, NULL); offset = dissect_ndr_uint16 (tvb, offset, pinfo, tree, di, drep, hf_epm_ver_min, NULL); return offset; }
static int epm_dissect_ept_entry_t(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep) { proto_item *item=NULL; proto_tree *tree=NULL; int old_offset=offset; guint32 len; dcerpc_info *di; const char *str; di=pinfo->private_data; if(di->conformant_run){ return offset; } if(parent_tree){ item = proto_tree_add_text(parent_tree, tvb, offset, -1, "Entry:"); tree = proto_item_add_subtree(item, ett_epm_entry); } offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_epm_object, NULL); offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, epm_dissect_tower, NDR_POINTER_PTR, "Tower pointer:", -1); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_epm_ann_offset, NULL); offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_epm_ann_len, &len); str=tvb_get_ephemeral_string(tvb, offset, len); proto_tree_add_item(tree, hf_epm_annotation, tvb, offset, len, ENC_ASCII|ENC_NA); offset += len; if(str&&str[0]){ if(parent_tree) { proto_item_append_text(item, " Service:%s ", str); proto_item_append_text(tree->parent, " Service:%s ", str); } if (check_col(pinfo->cinfo, COL_INFO)) { col_append_fstr(pinfo->cinfo, COL_INFO, ", Service:%s", str); } } proto_item_set_len(item, offset-old_offset); return offset; }
static int dissect_rs_pgo_id_key_t (tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * parent_tree, guint8 * drep) { /* typedef struct { uuid_t id; sec_rgy_name_t scope; } rs_pgo_id_key_t; */ proto_item *item = NULL; proto_tree *tree = NULL; int old_offset = offset; dcerpc_info *di; e_uuid_t id; di = (dcerpc_info *)pinfo->private_data; if (di->conformant_run) { return offset; } if (parent_tree) { item = proto_tree_add_text (parent_tree, tvb, offset, -1, "rs_pgo_id_key_t "); tree = proto_item_add_subtree (item, ett_rs_pgo_id_key_t); } offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_rs_uuid1, &id); offset = dissect_sec_rgy_name_t (tvb, offset, pinfo, tree, drep); if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " rs_pgo_id_key_t - id %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", id.Data1, id.Data2, id.Data3, id.Data4[0], id.Data4[1], id.Data4[2], id.Data4[3], id.Data4[4], id.Data4[5], id.Data4[6], id.Data4[7]); proto_item_set_len (item, offset - old_offset); return offset; }
static int conv_dissect_who_are_you2_rqst (tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { /* * [in] uuid_t *actuid, * [in] unsigned32 boot_time, */ e_guid_t actuid; offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_actuid, &actuid); offset = dissect_ndr_time_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_boot_time, NULL); col_add_fstr(pinfo->cinfo, COL_INFO, "conv_who_are_you2 request actuid: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", actuid.data1, actuid.data2, actuid.data3, actuid.data4[0], actuid.data4[1], actuid.data4[2], actuid.data4[3], actuid.data4[4], actuid.data4[5], actuid.data4[6], actuid.data4[7]); return offset; }