As the gtk2 directory is no longer needed (GTK1 and 2 are using the same sources...
[obnox/wireshark/wip.git] / packet-dcerpc-dfs.c
1 /* packet-dcerpc-dfs.c
2  * Routines for SMB \\PIPE\\netdfs packet disassembly
3  * Copyright 2001, Tim Potter <tpot@samba.org>
4  *
5  * $Id$
6  *
7  * Ethereal - Network traffic analyzer
8  * By Gerald Combs <gerald@ethereal.com>
9  * Copyright 1998 Gerald Combs
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  */
25
26 #ifdef HAVE_CONFIG_H
27 #include "config.h"
28 #endif
29
30 #include <glib.h>
31 #include <epan/packet.h>
32 #include "packet-dcerpc.h"
33 #include "packet-dcerpc-dfs.h"
34
35 static int proto_dcerpc_dfs = -1;
36 static gint ett_dcerpc_dfs = -1;
37
38 static int hf_dfs_opnum = -1;
39
40 static e_uuid_t uuid_dcerpc_dfs = {
41         0x4fc742e0, 0x4a10, 0x11cf,
42         { 0x82, 0x73, 0x00, 0xaa, 0x00, 0x4a, 0xe6, 0x73 }
43 };
44
45 static guint16 ver_dcerpc_dfs = 3;
46
47 static dcerpc_sub_dissector dcerpc_dfs_dissectors[] = {
48         { DFS_MANAGER_GET_VERSION, "NetrDfsManagerGetVersion", NULL, NULL },
49         { DFS_ADD, "NetrDfsAdd", NULL, NULL },
50         { DFS_REMOVE, "NetrDfsRemove", NULL, NULL },
51         { DFS_SET_INFO, "NetrDfsSetInfo", NULL, NULL },
52         { DFS_GET_INFO, "NetrDfsGetInfo", NULL, NULL },
53         { DFS_ENUM, "NetrDfsEnum", NULL, NULL },
54         { DFS_RENAME, "NetrDfsRename", NULL, NULL },
55         { DFS_MOVE, "NetrDfsMove", NULL, NULL },                        
56         { DFS_MANAGER_GET_CONFIG_INFO, "NetrDfsManagerGetConfigInfo", NULL, NULL },
57         { DFS_MANAGER_SEND_SITE_INFO, "NetrDfsManagerSendSiteInfo", NULL, NULL },       
58         { DFS_ADD_FT_ROOT, "NetrDfsAddFtRoot", NULL, NULL },            
59         { DFS_REMOVE_FT_ROOT, "NetrDfsRemoveFtRoot", NULL, NULL },
60         { DFS_ADD_STD_ROOT, "NetrDfsAddStdRoot", NULL, NULL },          
61         { DFS_REMOVE_STD_ROOT, "NetrDfsRemoveStdRoot", NULL, NULL },    
62         { DFS_MANAGER_INITIALIZE, "NetrDfsManagerInitialize", NULL, NULL },
63         { DFS_ADD_STD_ROOT_FORCED, "NetrDfsAddStdRootForced", NULL, NULL },             
64         { DFS_GET_DC_ADDRESS, "NetrDfsGetDcAddress", NULL, NULL },      
65         { DFS_SET_DC_ADDRESS, "NetrDfsSetDcAddress", NULL, NULL },
66         { DFS_FLUSH_FT_TABLE, "NetrDfsFlushFtTable", NULL, NULL },              
67         { DFS_ADD2, "NetrDfsAdd2", NULL, NULL },                
68         { DFS_REMOVE2, "NetrDfsRemove2", NULL, NULL },                  
69         { DFS_ENUM_EX, "NetrDfsEnumEx", NULL, NULL },           
70         { DFS_SET_INFO_2, "NetrDfsSetInfo2 ", NULL, NULL },                     
71         {0, NULL, NULL,  NULL }
72 };
73
74 void
75 proto_register_dcerpc_dfs(void)
76 {
77         static hf_register_info hf[] = {
78                 { &hf_dfs_opnum,
79                   { "Operation", "dfs.opnum", FT_UINT16, BASE_DEC,
80                     NULL, 0x0, "Operation", HFILL }},
81         };
82
83         static gint *ett[] = {
84                 &ett_dcerpc_dfs
85         };
86
87         proto_dcerpc_dfs = proto_register_protocol(
88                 "Microsoft Distributed File System", "DFS", "dfs");
89
90         proto_register_field_array(proto_dcerpc_dfs, hf, array_length(hf));
91
92         proto_register_subtree_array(ett, array_length(ett));
93 }
94
95 void
96 proto_reg_handoff_dcerpc_dfs(void)
97 {
98         /* Register protocol as dcerpc */
99
100         dcerpc_init_uuid(proto_dcerpc_dfs, ett_dcerpc_dfs, &uuid_dcerpc_dfs,
101                          ver_dcerpc_dfs, dcerpc_dfs_dissectors, hf_dfs_opnum);
102 }