from Gerhard Gappmeier (ascolab):
[obnox/wireshark/wip.git] / plugins / opcua / opcua_servicetable.c
1 /******************************************************************************\r
2 ** $Id$\r
3 **\r
4 ** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.\r
5 ** Web: http://www.ascolab.com\r
6 ** \r
7 ** This program is free software; you can redistribute it and/or\r
8 ** modify it under the terms of the GNU General Public License\r
9 ** as published by the Free Software Foundation; either version 2\r
10 ** of the License, or (at your option) any later version.\r
11 ** \r
12 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE\r
13 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
14 ** \r
15 ** Project: OpcUa Wireshark Plugin\r
16 **\r
17 ** Description: Service table and service dispatcher.\r
18 **\r
19 ** This file was autogenerated on 8.5.2007 18:53:26.\r
20 ** DON'T MODIFY THIS FILE!\r
21 **\r
22 ******************************************************************************/\r
23 \r
24 #ifdef HAVE_CONFIG_H\r
25 # include "config.h"\r
26 #endif\r
27 \r
28 #include <gmodule.h>\r
29 #include <epan/packet.h>\r
30 #include "opcua_identifiers.h"\r
31 #include "opcua_serviceparser.h"\r
32 \r
33 ParserEntry g_arParserTable[] = {\r
34   { 1358, parseTestStackRequest }, 
35   { 1363, parseTestStackResponse }, 
36   { 1368, parseTestStackExRequest }, 
37   { 1373, parseTestStackExResponse }, 
38   { 1414, parseFindServersRequest }, 
39   { 1419, parseFindServersResponse }, 
40   { 1424, parseGetEndpointsRequest }, 
41   { 1429, parseGetEndpointsResponse }, 
42   { 1439, parseRegisterServerRequest }, 
43   { 1444, parseRegisterServerResponse }, 
44   { 1454, parseOpenSecureChannelRequest }, 
45   { 1459, parseOpenSecureChannelResponse }, 
46   { 1464, parseCloseSecureChannelRequest }, 
47   { 1469, parseCloseSecureChannelResponse }, 
48   { 1479, parseCreateSessionRequest }, 
49   { 1484, parseCreateSessionResponse }, 
50   { 1489, parseActivateSessionRequest }, 
51   { 1494, parseActivateSessionResponse }, 
52   { 1499, parseCloseSessionRequest }, 
53   { 1504, parseCloseSessionResponse }, 
54   { 1509, parseCancelRequest }, 
55   { 1514, parseCancelResponse }, 
56   { 1524, parseAddNodesRequest }, 
57   { 1529, parseAddNodesResponse }, 
58   { 1534, parseAddReferencesRequest }, 
59   { 1539, parseAddReferencesResponse }, 
60   { 1544, parseDeleteNodesRequest }, 
61   { 1549, parseDeleteNodesResponse }, 
62   { 1554, parseDeleteReferencesRequest }, 
63   { 1559, parseDeleteReferencesResponse }, 
64   { 1574, parseBrowsePropertiesRequest }, 
65   { 1579, parseBrowsePropertiesResponse }, 
66   { 1599, parseBrowseRequest }, 
67   { 1604, parseBrowseResponse }, 
68   { 1609, parseBrowseNextRequest }, 
69   { 1614, parseBrowseNextResponse }, 
70   { 1630, parseTranslateBrowsePathsToNodeIdsRequest }, 
71   { 1635, parseTranslateBrowsePathsToNodeIdsResponse }, 
72   { 1710, parseQueryFirstRequest }, 
73   { 1715, parseQueryFirstResponse }, 
74   { 1720, parseQueryNextRequest }, 
75   { 1725, parseQueryNextResponse }, 
76   { 1740, parseReadRequest }, 
77   { 1745, parseReadResponse }, 
78   { 1790, parseHistoryReadRequest }, 
79   { 1795, parseHistoryReadResponse }, 
80   { 1805, parseWriteRequest }, 
81   { 1810, parseWriteResponse }, 
82   { 1845, parseHistoryUpdateRequest }, 
83   { 1850, parseHistoryUpdateResponse }, 
84   { 1865, parseCallRequest }, 
85   { 1870, parseCallResponse }, 
86   { 1930, parseCreateMonitoredItemsRequest }, 
87   { 1935, parseCreateMonitoredItemsResponse }, 
88   { 1950, parseModifyMonitoredItemsRequest }, 
89   { 1955, parseModifyMonitoredItemsResponse }, 
90   { 1960, parseSetMonitoringModeRequest }, 
91   { 1965, parseSetMonitoringModeResponse }, 
92   { 1970, parseSetTriggeringRequest }, 
93   { 1975, parseSetTriggeringResponse }, 
94   { 1980, parseDeleteMonitoredItemsRequest }, 
95   { 1985, parseDeleteMonitoredItemsResponse }, 
96   { 1990, parseCreateSubscriptionRequest }, 
97   { 1995, parseCreateSubscriptionResponse }, 
98   { 2000, parseModifySubscriptionRequest }, 
99   { 2005, parseModifySubscriptionResponse }, 
100   { 2010, parseSetPublishingModeRequest }, 
101   { 2015, parseSetPublishingModeResponse }, 
102   { 2050, parsePublishRequest }, 
103   { 2055, parsePublishResponse }, 
104   { 2060, parseRepublishRequest }, 
105   { 2065, parseRepublishResponse }, 
106   { 2075, parseTransferSubscriptionsRequest }, 
107   { 2080, parseTransferSubscriptionsResponse }, 
108   { 2085, parseDeleteSubscriptionsRequest }, 
109   { 2090, parseDeleteSubscriptionsResponse }
110 \r
111 };\r
112 const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry);\r
113 \r
114 /** Service type table */\r
115 const value_string g_requesttypes[] = {
116   { 1358, "TestStackRequest" },
117   { 1363, "TestStackResponse" },
118   { 1368, "TestStackExRequest" },
119   { 1373, "TestStackExResponse" },
120   { 1414, "FindServersRequest" },
121   { 1419, "FindServersResponse" },
122   { 1424, "GetEndpointsRequest" },
123   { 1429, "GetEndpointsResponse" },
124   { 1439, "RegisterServerRequest" },
125   { 1444, "RegisterServerResponse" },
126   { 1454, "OpenSecureChannelRequest" },
127   { 1459, "OpenSecureChannelResponse" },
128   { 1464, "CloseSecureChannelRequest" },
129   { 1469, "CloseSecureChannelResponse" },
130   { 1479, "CreateSessionRequest" },
131   { 1484, "CreateSessionResponse" },
132   { 1489, "ActivateSessionRequest" },
133   { 1494, "ActivateSessionResponse" },
134   { 1499, "CloseSessionRequest" },
135   { 1504, "CloseSessionResponse" },
136   { 1509, "CancelRequest" },
137   { 1514, "CancelResponse" },
138   { 1524, "AddNodesRequest" },
139   { 1529, "AddNodesResponse" },
140   { 1534, "AddReferencesRequest" },
141   { 1539, "AddReferencesResponse" },
142   { 1544, "DeleteNodesRequest" },
143   { 1549, "DeleteNodesResponse" },
144   { 1554, "DeleteReferencesRequest" },
145   { 1559, "DeleteReferencesResponse" },
146   { 1574, "BrowsePropertiesRequest" },
147   { 1579, "BrowsePropertiesResponse" },
148   { 1599, "BrowseRequest" },
149   { 1604, "BrowseResponse" },
150   { 1609, "BrowseNextRequest" },
151   { 1614, "BrowseNextResponse" },
152   { 1630, "TranslateBrowsePathsToNodeIdsRequest" },
153   { 1635, "TranslateBrowsePathsToNodeIdsResponse" },
154   { 1710, "QueryFirstRequest" },
155   { 1715, "QueryFirstResponse" },
156   { 1720, "QueryNextRequest" },
157   { 1725, "QueryNextResponse" },
158   { 1740, "ReadRequest" },
159   { 1745, "ReadResponse" },
160   { 1790, "HistoryReadRequest" },
161   { 1795, "HistoryReadResponse" },
162   { 1805, "WriteRequest" },
163   { 1810, "WriteResponse" },
164   { 1845, "HistoryUpdateRequest" },
165   { 1850, "HistoryUpdateResponse" },
166   { 1865, "CallRequest" },
167   { 1870, "CallResponse" },
168   { 1930, "CreateMonitoredItemsRequest" },
169   { 1935, "CreateMonitoredItemsResponse" },
170   { 1950, "ModifyMonitoredItemsRequest" },
171   { 1955, "ModifyMonitoredItemsResponse" },
172   { 1960, "SetMonitoringModeRequest" },
173   { 1965, "SetMonitoringModeResponse" },
174   { 1970, "SetTriggeringRequest" },
175   { 1975, "SetTriggeringResponse" },
176   { 1980, "DeleteMonitoredItemsRequest" },
177   { 1985, "DeleteMonitoredItemsResponse" },
178   { 1990, "CreateSubscriptionRequest" },
179   { 1995, "CreateSubscriptionResponse" },
180   { 2000, "ModifySubscriptionRequest" },
181   { 2005, "ModifySubscriptionResponse" },
182   { 2010, "SetPublishingModeRequest" },
183   { 2015, "SetPublishingModeResponse" },
184   { 2050, "PublishRequest" },
185   { 2055, "PublishResponse" },
186   { 2060, "RepublishRequest" },
187   { 2065, "RepublishResponse" },
188   { 2075, "TransferSubscriptionsRequest" },
189   { 2080, "TransferSubscriptionsResponse" },
190   { 2085, "DeleteSubscriptionsRequest" },
191   { 2090, "DeleteSubscriptionsResponse" },\r
192   { 0, NULL }\r
193 };\r
194 \r
195 /** Dispatch all services to a special parser function. */\r
196 void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)\r
197 {\r
198     int index = 0;\r
199 \r
200     while (index < g_NumServices)\r
201     {\r
202         if (g_arParserTable[index].iRequestId == ServiceId)\r
203         {\r
204             (*g_arParserTable[index].pParser)(tree, tvb, pOffset);\r
205             break;\r
206         }\r
207         index++;\r
208     }\r
209 }\r