forked from osmocom/wireshark
in nfs name to filehandle mappings
when we check and ignore the two names "." and ".." we must do so for both methods a caller can provide the name : offset into a tvb, as well as a char* to a string. also add ->full_name in the dissection to the replies so that fh matches both request and reply and not ->name svn path=/trunk/; revision=25941
This commit is contained in:
parent
a4412aa3c1
commit
e0e1c45922
|
@ -52,6 +52,7 @@ PIDL_DISSECTOR_SRC = \
|
|||
packet-dcerpc-budb.c \
|
||||
packet-dcerpc-butc.c \
|
||||
packet-dcerpc-dfs.c \
|
||||
packet-dcerpc-dnsserver.c \
|
||||
packet-dcerpc-drsuapi.c \
|
||||
packet-dcerpc-dssetup.c \
|
||||
packet-dcerpc-efs.c \
|
||||
|
@ -281,7 +282,6 @@ CLEAN_DISSECTOR_SRC = \
|
|||
packet-dcerpc-conv.c \
|
||||
packet-dcerpc-cprpc_server.c \
|
||||
packet-dcerpc-dce122.c \
|
||||
packet-dcerpc-dnsserver.c \
|
||||
packet-dcerpc-dtsprovider.c \
|
||||
packet-dcerpc-dtsstime_req.c \
|
||||
packet-dcerpc-epm.c \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,42 +1,138 @@
|
|||
/* packet-dcerpc-dnsserver.h
|
||||
* Routines for SMB \PIPE\DNSSERVER packet disassembly
|
||||
* Copyright 2002, Tim Potter <tpot@samba.org>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* 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.
|
||||
*/
|
||||
/* autogenerated by pidl */
|
||||
|
||||
/* DO NOT EDIT
|
||||
This filter was automatically generated
|
||||
from dnsserver.idl and dnsserver.cnf.
|
||||
|
||||
Pidl is a perl based IDL compiler for DCE/RPC idl files.
|
||||
It is maintained by the Samba team, not the Wireshark team.
|
||||
Instructions on how to download and install Pidl can be
|
||||
found at http://wiki.wireshark.org/Pidl
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __PACKET_DCERPC_DNSSERVER_H
|
||||
#define __PACKET_DCERPC_DNSSERVER_H
|
||||
|
||||
/* Functions available on the DNSSERVER pipe */
|
||||
#define DNS_LOG_LEVEL_ALL_PACKETS ( 0x0000ffff )
|
||||
|
||||
#define DNSSERVER_DNSSRV_OPERATION 0x00
|
||||
#define DNSSERVER_DNSSRV_QUERY 0x01
|
||||
#define DNSSERVER_DNSSRV_COMPLEX_OPERATION 0x02
|
||||
#define DNSSERVER_DNSSRV_ENUM_RECORDS 0x03
|
||||
#define DNSSERVER_DNSSRV_UPDATE_RECORD 0x04
|
||||
#define DNSSERVER_DNSSRV_OPERATION_2 0x05
|
||||
#define DNSSERVER_DNSSRV_QUERY_2 0x06
|
||||
#define DNSSERVER_DNSSRV_COMPLEX_OPERATION_2 0x07
|
||||
#define DNSSERVER_DNSSRV_ENUM_RECORDS_2 0x08
|
||||
#define DNSSERVER_DNSSRV_UPDATE_RECORD_2 0x09
|
||||
#define DNS_LOG_LEVEL_NON_QUERY ( 0x000000fe )
|
||||
|
||||
#endif /* packet-dcerpc-dnsserver.h */
|
||||
#define DNS_RPC_USE_ALL_PROTOCOLS ( 0xffffffff )
|
||||
|
||||
#define DNS_CLIENT_VERSION_W2K (0x00000000)
|
||||
#define DNS_CLIENT_VERSION_DOTNET (0x00000006)
|
||||
#define DNS_CLIENT_VERSION_LONGHORN (0x00000007)
|
||||
extern const value_string dnsserver_DNS_RPC_CLIENT_VERSION_vals[];
|
||||
int dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#define DNS_RPC_BOOT_METHOD_FILE (0x01)
|
||||
#define DNS_RPC_BOOT_METHOD_REGISTRY (0x02)
|
||||
#define DNS_RPC_BOOT_METHOD_DIRECTORY (0x03)
|
||||
extern const value_string dnsserver_DNS_RPC_BOOT_METHOD_vals[];
|
||||
int dnsserver_dissect_enum_DNS_RPC_BOOT_METHOD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
int dnsserver_dissect_bitmap_DNS_LOG_LEVELS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_bitmap_DNS_RPC_PROTOCOLS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#define DNS_ALLOW_RFC_NAMES_ONLY (0x00000000)
|
||||
#define DNS_ALLOW_NONRFC_NAMES (0x00000001)
|
||||
#define DNS_ALLOW_MULTIBYTE_NAMES (0x00000002)
|
||||
#define DNS_ALLOW_ALL_NAMES (0x00000003)
|
||||
extern const value_string dnsserver_DNS_NAME_CHECK_FLAGS_vals[];
|
||||
int dnsserver_dissect_enum_DNS_NAME_CHECK_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
#define DNS_TYPE_ZERO (0x0000)
|
||||
#define DNS_TYPE_A (0x0001)
|
||||
#define DNS_TYPE_NS (0x0002)
|
||||
#define DNS_TYPE_MD (0x0003)
|
||||
#define DNS_TYPE_MF (0x0004)
|
||||
#define DNS_TYPE_CNAME (0x0005)
|
||||
#define DNS_TYPE_SOA (0x0006)
|
||||
#define DNS_TYPE_MB (0x0007)
|
||||
#define DNS_TYPE_MG (0x0008)
|
||||
#define DNS_TYPE_MR (0x0009)
|
||||
#define DNS_TYPE_NULL (0x000a)
|
||||
#define DNS_TYPE_WKS (0x000b)
|
||||
#define DNS_TYPE_PTR (0x000c)
|
||||
#define DNS_TYPE_HINFO (0x000d)
|
||||
#define DNS_TYPE_MINFO (0x000e)
|
||||
#define DNS_TYPE_MX (0x000f)
|
||||
#define DNS_TYPE_TXT (0x0010)
|
||||
#define DNS_TYPE_RP (0x0011)
|
||||
#define DNS_TYPE_AFSDB (0x0012)
|
||||
#define DNS_TYPE_X25 (0x0013)
|
||||
#define DNS_TYPE_ISDN (0x0014)
|
||||
#define DNS_TYPE_RT (0x0015)
|
||||
#define DNS_TYPE_NSAP (0x0016)
|
||||
#define DNS_TYPE_NSAPPTR (0x0017)
|
||||
#define DNS_TYPE_SIG (0x0018)
|
||||
#define DNS_TYPE_KEY (0x0019)
|
||||
#define DNS_TYPE_PX (0x001a)
|
||||
#define DNS_TYPE_GPOS (0x001b)
|
||||
#define DNS_TYPE_AAAA (0x001c)
|
||||
#define DNS_TYPE_LOC (0x001d)
|
||||
#define DNS_TYPE_NXT (0x001e)
|
||||
#define DNS_TYPE_SRV (0x0021)
|
||||
#define DNS_TYPE_ATMA (0x0022)
|
||||
#define DNS_TYPE_NAPTR (0x0023)
|
||||
#define DNS_TYPE_DNAME (0x0024)
|
||||
#define DNS_TYPE_ALL (0x00ff)
|
||||
#define DNS_TYPE_WINS (0xff01)
|
||||
#define DNS_TYPE_WINSR (0xff02)
|
||||
extern const value_string dnsserver_DNS_RECORD_TYPE_vals[];
|
||||
int dnsserver_dissect_enum_DNS_RECORD_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
int dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_bitmap_DNS_RPC_NODE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_RECORD_NODE_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_RECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_NODE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_IP4_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#define DNSSRV_TYPEID_NULL (0)
|
||||
#define DNSSRV_TYPEID_DWORD (1)
|
||||
#define DNSSRV_TYPEID_LPSTR (2)
|
||||
#define DNSSRV_TYPEID_LPWSTR (3)
|
||||
#define DNSSRV_TYPEID_IPARRAY (4)
|
||||
#define DNSSRV_TYPEID_BUFFER (5)
|
||||
#define DNSSRV_TYPEID_SERVER_INFO_W2K (6)
|
||||
#define DNSSRV_TYPEID_STATS (7)
|
||||
#define DNSSRV_TYPEID_FORWARDERS_W2K (8)
|
||||
#define DNSSRV_TYPEID_ZONE_W2K (9)
|
||||
#define DNSSRV_TYPEID_ZONE_INFO_W2K (10)
|
||||
#define DNSSRV_TYPEID_ZONE_SECONDARIES_W2K (11)
|
||||
#define DNSSRV_TYPEID_ZONE_DATABASE_W2K (12)
|
||||
#define DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K (13)
|
||||
#define DNSSRV_TYPEID_ZONE_CREATE_W2K (14)
|
||||
#define DNSSRV_TYPEID_NAME_AND_PARAM (15)
|
||||
#define DNSSRV_TYPEID_ZONE_LIST_W2K (16)
|
||||
#define DNSSRV_TYPEID_ZONE_RENAME (17)
|
||||
#define DNSSRV_TYPEID_ZONE_EXPORT (18)
|
||||
#define DNSSRV_TYPEID_SERVER_INFO_DOTNET (19)
|
||||
#define DNSSRV_TYPEID_FORWARDERS_DOTNET (20)
|
||||
#define DNSSRV_TYPEID_ZONE (21)
|
||||
#define DNSSRV_TYPEID_ZONE_INFO_DOTNET (22)
|
||||
#define DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET (23)
|
||||
#define DNSSRV_TYPEID_ZONE_DATABASE (24)
|
||||
#define DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET (25)
|
||||
#define DNSSRV_TYPEID_ZONE_CREATE_DOTNET (26)
|
||||
#define DNSSRV_TYPEID_ZONE_LIST (27)
|
||||
#define DNSSRV_TYPEID_DP_ENUM (28)
|
||||
#define DNSSRV_TYPEID_DP_INFO (29)
|
||||
#define DNSSRV_TYPEID_DP_LIST (30)
|
||||
#define DNSSRV_TYPEID_ENLIST_DP (31)
|
||||
#define DNSSRV_TYPEID_ZONE_CHANGE_DP (32)
|
||||
#define DNSSRV_TYPEID_ENUM_ZONES_FILTER (33)
|
||||
#define DNSSRV_TYPEID_ADDARRAY (34)
|
||||
#define DNSSRV_TYPEID_SERVER_INFO (35)
|
||||
#define DNSSRV_TYPEID_ZONE_INFO (36)
|
||||
#define DNSSRV_TYPEID_FORWARDERS (37)
|
||||
#define DNSSRV_TYPEID_ZONE_SECONDARIES (38)
|
||||
#define DNSSRV_TYPEID_ZONE_TYPE_RESET (39)
|
||||
#define DNSSRV_TYPEID_ZONE_CREATE (40)
|
||||
#define DNSSRV_TYPEID_IP_VALIDATE (41)
|
||||
#define DNSSRV_TYPEID_AUTOCONFIGURE (42)
|
||||
#define DNSSRV_TYPEID_UTF8_STRING_LIST (43)
|
||||
#define DNSSRV_TYPEID_UNICODE_STRING_LIST (44)
|
||||
extern const value_string dnsserver_DnssrvRpcTypeId_vals[];
|
||||
int dnsserver_dissect_enum_DnssrvRpcTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
int dnsserver_dissect_struct_DNS_RECORD_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#endif /* __PACKET_DCERPC_DNSSERVER_H */
|
||||
|
|
|
@ -792,15 +792,17 @@ nfs_name_snoop_add_name(int xid, tvbuff_t *tvb, int name_offset, int name_len, i
|
|||
/* filter out all '.' and '..' names */
|
||||
if(!name){
|
||||
ptr=(const unsigned char *)tvb_get_ptr(tvb, name_offset, name_len);
|
||||
if(ptr[0]=='.'){
|
||||
if(ptr[1]==0){
|
||||
} else {
|
||||
ptr=name;
|
||||
}
|
||||
if(ptr[0]=='.'){
|
||||
if(ptr[1]==0){
|
||||
return;
|
||||
}
|
||||
if(ptr[1]=='.'){
|
||||
if(ptr[2]==0){
|
||||
return;
|
||||
}
|
||||
if(ptr[1]=='.'){
|
||||
if(ptr[2]==0){
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1009,11 +1011,11 @@ nfs_name_snoop_fh(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int fh_of
|
|||
if(nns->full_name){
|
||||
if(hidden){
|
||||
fh_item=proto_tree_add_string(tree, hf_nfs_full_name, tvb,
|
||||
fh_offset, 0, nns->name);
|
||||
fh_offset, 0, nns->full_name);
|
||||
PROTO_ITEM_SET_HIDDEN(fh_item);
|
||||
} else {
|
||||
fh_item=proto_tree_add_string_format(tree, hf_nfs_full_name, tvb,
|
||||
fh_offset, 0, nns->name, "Full Name: %s", nns->full_name);
|
||||
fh_offset, 0, nns->full_name, "Full Name: %s", nns->full_name);
|
||||
}
|
||||
PROTO_ITEM_SET_GENERATED(fh_item);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue