Use "tvb_get_ntohieee_float()" to fetch floating-point numbers from the
[obnox/wireshark/wip.git] / packet-dcerpc-srvsvc.c
1 /* packet-dcerpc-srvsvc.c
2  * Routines for SMB \\PIPE\\srvsvc packet disassembly
3  * Copyright 2001, Tim Potter <tpot@samba.org>
4  *
5  * $Id: packet-dcerpc-srvsvc.c,v 1.2 2002/01/21 07:36:33 guy Exp $
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-srvsvc.h"
34
35 static int proto_dcerpc_srvsvc = -1;
36 static gint ett_dcerpc_srvsvc = -1;
37
38 static e_uuid_t uuid_dcerpc_srvsvc = {
39         0x4b324fc8, 0x1670, 0x01d3,
40         { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
41 };
42
43 static guint16 ver_dcerpc_srvsvc = 3;
44
45 static dcerpc_sub_dissector dcerpc_srvsvc_dissectors[] = {
46         { SRV_NETCONNENUM, "SRV_NETCONNENUM", NULL, NULL },
47         { SRV_NETFILEENUM, "SRV_NETFILEENUM", NULL, NULL },
48         { SRV_NETSESSENUM, "SRV_NETSESSENUM", NULL, NULL },
49         { SRV_NET_SHARE_ADD, "SRV_NET_SHARE_ADD", NULL, NULL },
50         { SRV_NETSHAREENUM_ALL, "SRV_NETSHAREENUM_ALL", NULL, NULL },
51         { SRV_NET_SHARE_GET_INFO, "SRV_NET_SHARE_GET_INFO", NULL, NULL },
52         { SRV_NET_SHARE_SET_INFO, "SRV_NET_SHARE_SET_INFO", NULL, NULL },
53         { SRV_NET_SHARE_DEL, "SRV_NET_SHARE_DEL", NULL, NULL },
54         { SRV_NET_SRV_GET_INFO, "SRV_NET_SRV_GET_INFO", NULL, NULL },
55         { SRV_NET_SRV_SET_INFO, "SRV_NET_SRV_SET_INFO", NULL, NULL },
56         { SRV_NET_DISK_ENUM, "SRV_NET_DISK_ENUM", NULL, NULL },
57         { SRV_NET_REMOTE_TOD, "SRV_NET_REMOTE_TOD", NULL, NULL },
58         { SRV_NET_NAME_VALIDATE, "SRV_NET_NAME_VALIDATE", NULL, NULL },
59         { SRV_NETSHAREENUM, "SRV_NETSHAREENUM", NULL, NULL },
60         { SRV_NETFILEQUERYSECDESC, "SRV_NETFILEQUERYSECDESC", NULL, NULL },
61         { SRV_NETFILESETSECDESC, "SRV_NETFILESETSECDESC", NULL, NULL },
62
63         {0, NULL, NULL,  NULL },
64 };
65
66 void 
67 proto_register_dcerpc_srvsvc(void)
68 {
69         static gint *ett[] = {
70                 &ett_dcerpc_srvsvc,
71         };
72
73         proto_dcerpc_srvsvc = proto_register_protocol(
74                 "Microsoft Server Service", "SRVSVC", "srvsvc");
75
76         proto_register_subtree_array(ett, array_length(ett));
77 }
78
79 void
80 proto_reg_handoff_dcerpc_srvsvc(void)
81 {
82         /* Register protocol as dcerpc */
83
84         dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc, 
85                          &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc, 
86                          dcerpc_srvsvc_dissectors);
87 }