aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sqloracle.h
blob: 49a643ee5e692a1cd880662e21853056daccbe56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
/* packet-sqloracle.h
 * Abstract: this file contains Net8 related definiton and structure
 *           gathered from jdbc thin driver
 *
 * $Id$
 *
 * Copyright (C) 2002 - 2002 AppDancer Networks, Inc. All rights reserved.
 * Author:      Charles Tai 01/28/2003
 *
 * The initial Wireshark version of this file was imported from the
 * ClearSight source code package.
 *
 * Wireshark - Network traffic analyzer
 *
 * 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.
 */



typedef unsigned char  UI8_T,  BYTE,*UI8_P;
typedef unsigned short UI16_T, *UI16_P;
typedef unsigned int   UI32_T, *UI32_P;
typedef int            I32_T,  *I32_P;
typedef short          I16_T,  *I16_P;
typedef char           I8_T,   *I8_P;

/*+-------------------------------
 *  NET8 protocol definition
 *--------------------------------
-*/


/*+-------------------------------
 *  NET8 Command Header
 *--------------------------------
-*/
#define NET8_TYPE_SETPROP       1       /* Set PROtocol */
#define NET8_TYPE_SETDATAREP    2       /* Set Data Representation */
#define NET8_TYPE_USERTOSERVER  3       /* User to Server request */
#define NET8_TYPE_ERRORSTATUS   4       /* Error return status */
#define NET8_TYPE_AUAS          5       /* Access User Address space */
#define NET8_TYPE_ROWTRANSFER   6       /* Row Transfer Header */
#define NET8_TYPE_ROWDATA       7       /* I made this to handle spanning data rows */
#define NET8_TYPE_OPIPARAM      8       /* return OPI parameter */
#define NET8_TYPE_FUNCCOMPLETE  9       /* return Function Complete */
#define NET8_TYPE_TTINOER      10       /* for msdos/os2  N oerdefs follow */
#define NET8_TYPE_TTIIOV       11       /* Sending IO vec only for fast UPI */
#define NET8_TYPE_TTISLG       12       /* Send LonG for fast UPI*/
#define NET8_TYPE_TTIICA       13       /* Invoke user CAllback*/
#define NET8_TYPE_TTILOBD      14       /* LOB/FILE data follows */
#define NET8_TYPE_TTIWRN       15       /* warning messages - may be a set of them */


#define NET8_TYPE_DESCINFO      16      /* Describe Information */
#define NET8_TYPE_PIGGYBACKFUNC 17      /* piggy back funtion follow */
#define NET8_TYPE_TTI3GL        18      /* signals special action for untrusted callout support */
#define NET8_TYPE_TTIFOB        19      /* Flush Out Bind data in DML/w RETURN when error */
#define NET8_TYPE_SECURENEG     0xde    /* Secure Network Services Negotiation */
#define MAX_QUERY_STRING_LEN    256

/*+--------------------------------------
 *  User to Server request function types
 *  NET8_TYPE_USERTOSERVER  0x03
 *  look in ttc7\FunCodes.java
 *---------------------------------------
-*/
#define NET8_USER_FUNC_OLOGON       1   /* logon to Oracle */
#define NET8_USER_FUNC_OPENCURSOR   2   /* Open Cursor */
#define NET8_USER_FUNC_PARSE        3   /* Parse */
#define NET8_USER_FUNC_EXECUTE      4   /* Execute */
#define NET8_USER_FUNC_OFETCH       5   /* fetch a row */

#define NET8_USER_FUNC_CLOSECURSOR  8   /* Close Cursor */


#define NET8_USER_FUNC_OLOGOFF      9   /* logoff of ORACLE */
#define NET8_USER_FUNC_ODSCRIBE    10   /* describe a select list column */
#define NET8_USER_FUNC_ODEFIN      11   /* define[] where the column goes */
#define NET8_USER_FUNC_OCOMON      12   /* auto[] commit on */
#define NET8_USER_FUNC_OCOMOFF     13   /* auto commit off */
#define NET8_USER_FUNC_OCOMMIT     14   /* commit */
#define NET8_USER_FUNC_OROLLBACK   15   /* rollback */
#define NET8_USER_FUNC_OSFE        16   /* set fatal error options */
#define NET8_USER_FUNC_ORESUME     17   /* resume current operation */
#define NET8_USER_FUNC_OVERSN      18   /* get ORACLE version-date string */
#define NET8_USER_FUNC_OTEMP       19   /* until we get rid of OASQL */
#define NET8_USER_FUNC_CANCEL      20   /* cancel the current operation */
#define NET8_USER_FUNC_OGEM        21   /* get error message */
#define NET8_USER_FUNC_OEXIT       22   /* Exit oracle command */
#define NET8_USER_FUNC_OSPECIAL    23   /* special function */
#define NET8_USER_FUNC_OABORT      24   /* abort */
#define NET8_USER_FUNC_ODQRID      25   /* deq by rowid */
#define NET8_USER_FUNC_OLNGF6      26   /* fetch a long column value */
#define NET8_USER_FUNC_OCAM        27   /* Create Access Module */
#define NET8_USER_FUNC_OSAMS       28   /* Save Access Module Statement */
#define NET8_USER_FUNC_OSAM        29   /* Save Access Module */
#define NET8_USER_FUNC_OPAMS       30   /* Parse Access Module Statement */
#define NET8_USER_FUNC_OHOWMANY    31   /* How Many Items? */
#define NET8_USER_FUNC_OINIT       32   /* Initialize Oracle */
#define NET8_USER_FUNC_OCHANGEU    33   /* change user id */
#define NET8_USER_FUNC_OBINDRP     34   /* Bind by reference positional */
#define NET8_USER_FUNC_OGETBV      35   /* Get n'th Bind Variable */
#define NET8_USER_FUNC_OGETIV      36   /* Get n'th Into Variable */
#define NET8_USER_FUNC_OBINDRV     37   /* Bind by reference */
#define NET8_USER_FUNC_OBINDRN     38   /* Bind by reference numeric */
#define NET8_USER_FUNC_OPARSEX     39   /* Parse And Execute */
#define NET8_USER_FUNC_OPARSYN     40   /* Parse for Syntax only */
#define NET8_USER_FUNC_OPARSDI     41   /* Parse for Syntax & SQL Dictionary lookup */
#define NET8_USER_FUNC_OCONTINUE   42   /* continue serving after eof */
#define NET8_USER_FUNC_ODSCRARR    43   /* array describe */
#define NET8_USER_FUNC_OLCCINI     44   /* init sys pars command table */
#define NET8_USER_FUNC_OLCCFIN     45   /* finalize sys pars command table */
#define NET8_USER_FUNC_OLCCPUT     46   /* put sys par in command table */
#define NET8_USER_FUNC_OLCCGPI     47   /* get sys pars info from command table */
#define NET8_USER_FUNC_OV6STRT     48   /* start Oracle (V6) */
#define NET8_USER_FUNC_OV6STOP     49   /* [poll for] shut down Oracle (V6) */
#define NET8_USER_FUNC_ORIP        50   /* run independent process (V6) */
#define NET8_USER_FUNC_OTRAM       51   /* test RAM (V6) */
#define NET8_USER_FUNC_OARCHIVE    52   /* archive op (V6) */
#define NET8_USER_FUNC_OMRSTART    53   /* media recovery - start (V6) */
#define NET8_USER_FUNC_OMRRECTS    54   /* media recovery - record tablespace to recover (V6) */

#define NET8_USER_FUNC_OMRGSLSQ    55   /* media recovery - get starting log seq # (V6) */
#define NET8_USER_FUNC_OMRREC      56   /* media recovery - recover using offline log (V6) */
#define NET8_USER_FUNC_OMRCAN      57   /* media recovery - cancel media recovery (V6) */
#define NET8_USER_FUNC_O2LOGON     58   /* logon to ORACLE (V6) (supercedes OLOGON) */
#define NET8_USER_FUNC_OVERSION    59   /* get ORACLE version-date string in new format */
#define NET8_USER_FUNC_OINIT2      60   /* new init call (supersedes OINIT) */
#define NET8_USER_FUNC_OCLOALL     61   /* reserved for MAC; close all cursors */
#define NET8_USER_FUNC_OALL        62   /* bundled execution call */
#define NET8_USER_FUNC_OTEX        63   /* reserved for os2/msdos; transaction execute call */
#define NET8_USER_FUNC_OSDAUTH     64   /* reserved for os2/msdos; set DBA authorization call */

#define NET8_USER_FUNC_OUDLFUN     65   /* for direct loader: functions */
#define NET8_USER_FUNC_OUDLBUF     66   /* for direct loader: buffer transfer */
#define NET8_USER_FUNC_OK2RPC      67   /* distrib. trans. mgr. RPC */
#define NET8_USER_FUNC_ODSCIDX     68   /* describe indexes for distributed query */
#define NET8_USER_FUNC_OSESOPN     69   /* session operations */
#define NET8_USER_FUNC_OEXECSCN    70   /* execute using synchronized system commit numbers */
#define NET8_USER_FUNC_OALL7       71   /* fast upi calls to opial7 */
#define NET8_USER_FUNC_OLONGF      72   /* Long fetch version 7 */
#define NET8_USER_FUNC_OEXECA      73   /* call opiexe from opiall; no two-task access */
#define NET8_USER_FUNC_OSQL7       74   /* New ver 7 parse call to deal with various flavours*/
#define NET8_USER_FUNC_OOBS        75   /* Please DO Not REUSE THIS CODE */
#define NET8_USER_FUNC_ORPC        76   /* RPC Call from pl/sql */
#define NET8_USER_FUNC_OKGL_OLD    77   /* do a KGL operation */
#define NET8_USER_FUNC_OEXFEN      78
#define NET8_USER_FUNC_OXAOPN      79   /* X/Open XA operation */
#define NET8_USER_FUNC_OKGL        80   /* New OKGL call */
#define NET8_USER_FUNC_03LOGON     81   /* 2nd Half of Logon */
#define NET8_USER_FUNC_03LOGA      82   /* 1st Half of Logon */
#define NET8_USER_FUNC_OFNSTM      83   /* Do Streaming Operation */
#define NET8_USER_FUNC_OPENSESS    84   /* Open Session */
#define NET8_USER_FUNC_O71XAOPN    85   /* X/Open XA operations (71 interface */
#define NET8_USER_FUNC_ODEBUG      86   /* debugging operation */
#define NET8_USER_FUNC_ODEBUGS     87   /* special debugging operation */
#define NET8_USER_FUNC_OXAST       88   /* XA start */
#define NET8_USER_FUNC_OXACM       89   /* XA Switch and Commit */
#define NET8_USER_FUNC_OXAPR       90   /* XA Switch and Prepare */
#define NET8_USER_FUNC_OXDP        91   /* direct copy from db buffers to client addr */

/* in Oracle 7 and lower, this used to be OCONNECT */
#define NET8_USER_FUNC_OKOD        92   /* New OKOD call */

/* Oracle 8 changes follow */
#define NET8_USER_FUNC_OCBK        93   /* OCBK call (kernel side only) */
#define NET8_USER_FUNC_OALL8       94   /* new v8 bundled call */
#define NET8_USER_FUNC_OFNSTM2     95   /* OFNSTM without the begintxn */
#define NET8_USER_FUNC_OLOBOPS     96   /* LOB and FILE related calls */
#define NET8_USER_FUNC_OFILECRT    97   /* FILE create call */
#define NET8_USER_FUNC_ODNY        98   /* new describe query call */
#define NET8_USER_FUNC_OCONNECT    99   /* code for non blocking attach host */
#define NET8_USER_FUNC_OOPENRCS   100   /* Open a recursive cursor */
#define NET8_USER_FUNC_OKPRALL    101   /* Bundled KPR execution */
#define NET8_USER_FUNC_OPLS       102   /* Bundled PL/SQL execution */
#define NET8_USER_FUNC_OTXSE      103   /* transaction start, attach, detach */
#define NET8_USER_FUNC_OTXEN      104   /* transaction commit, rollback, recover */
#define NET8_USER_FUNC_OCCA       105   /* Cursor Close All */
#define NET8_USER_FUNC_OFOI       106   /* Failover info piggyback */
#define NET8_USER_FUNC_O80SES     107   /* V8 session switching piggyback */
#define NET8_USER_FUNC_ODDF       108   /* Do Dummy Defines */
#define NET8_USER_FUNC_OLRMINI    109   /* init sys pars */
#define NET8_USER_FUNC_OLRMFIN    110   /* finalize sys pars */
#define NET8_USER_FUNC_OLRMPUT    111   /* put sys par in par space */
#define NET8_USER_FUNC_OLRMTRM    112   /* terminate sys pars */
#define NET8_USER_FUNC_OEXFENA    113   /* execute but don't unmap (used from opiall0) */
#define NET8_USER_FUNC_OINIUCB    114   /* OINIT for Untrusted CallBacks */
#define NET8_USER_FUNC_AUTH       115   /* Generic authentication call */
#define NET8_USER_FUNC_OFGI       116   /* FailOver Get Instance Info */
#define NET8_USER_FUNC_OOTCO      117   /* Oracle Transaction service COmmit remote sites */
#define NET8_USER_FUNC_GETSESSKEY 118   /* Get the session key */
#define NET8_USER_FUNC_ODSY       119   /* V8 Describe Any */
#define NET8_USER_FUNC_OCANA      120   /* Cancel All */
#define NET8_USER_FUNC_OAQEQ      121   /* AQ EnQueue */
#define NET8_USER_FUNC_OAQDQ      122   /* AQ Dequeue */
#define NET8_USER_FUNC_ORFS       123   /* RFS call */
#define NET8_USER_FUNC_OKPN       124   /* Kernel Programmatic Notification */
#define NET8_USER_FUNC_MAX_OFCN   124   /* last item allocated */
/*+--------------------------------------------------
 * query results db types in the describe pkt
 * for NET8_TYPE_OPIPARAM       0x08
 * & for NET8_TYPE_DESCINFO     0x10
 *---------------------------------------------------
-*/
#define NET8_DATATYPE_VARCHAR           0x01
#define NET8_DATATYPE_NUMBER            0x02
#define NET8_DATATYPE_VARNUM            0x06
#define NET8_DATATYPE_LONG              0x08
#define NET8_DATATYPE_DATE              0x0C
#define NET8_DATATYPE_RAW               0x17
#define NET8_DATATYPE_LONG_RAW          0x18
#define NET8_DATATYPE_CHAR              0x60
#define NET8_DATATYPE_RESULT_SET        0x66
#define NET8_DATATYPE_ROWID             0x68
#define NET8_DATATYPE_NAMED_TYPE        0x6D
#define NET8_DATATYPE_REF_TYPE          0x6F
#define NET8_DATATYPE_CLOB              0x70
#define NET8_DATATYPE_BLOB              0x71
#define NET8_DATATYPE_BFILE             0x72
#define NET8_DATATYPE_TIMESTAMP         0xB4
#define NET8_DATATYPE_TIMESTAMPTZ       0xB5
#define NET8_DATATYPE_INTERVALYM        0xB6
#define NET8_DATATYPE_INTERVALDS        0xB7
#define NET8_DATATYPE_TIMESTAMPLTZ      0xE7
#define NET8_DATATYPE_PLSQL_INDEX_TABLE 0x3E6
#define NET8_DATATYPE_FIXED_CHAR        0x3E7

/*+--------------------------------------------------
 * datatype sizes
 *---------------------------------------------------
-*/
#define NET8_DATATYPE_SIZE_TIMESTAMP          11
#define NET8_DATATYPE_SIZE_TIMESTAMPNOFRAC     7
#define NET8_DATATYPE_SIZE_DATE                7
#define NET8_DATATYPE_SIZE_TIMESTAMPZ         13
#define NET8_TIMESTAMPZ_REGIONIDBIT         0x80 /*-128*/
#define NET8_DATATYPE_SIZE_TIMESTAMPLTZ       11
#define NET8_DATATYPE_SIZE_TIMESTAMPLTZNOFRAC  7




void proto_register_sqloracle(void);
void proto_reg_handoff_sqloracle(void);