summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-drda.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2012-04-26 16:47:37 +0000
committerBill Meier <wmeier@newsguy.com>2012-04-26 16:47:37 +0000
commit557ed5e97175f0eba8e0d0a3b9a90de14cb533cc (patch)
tree8b1de4079e42414a6aa17874917de35a0fa6a3a6 /epan/dissectors/packet-drda.c
parent781891bd7bd06316fc6859f02eae107d41fcfc3a (diff)
downloadwireshark-557ed5e97175f0eba8e0d0a3b9a90de14cb533cc.tar.gz
Minor: reformatting, unneeded #includes, whitespace cleanup;
Also: use val_to_str_const(0 instead of val_to_str() in a few cases. svn path=/trunk/; revision=42271
Diffstat (limited to 'epan/dissectors/packet-drda.c')
-rw-r--r--epan/dissectors/packet-drda.c1590
1 files changed, 813 insertions, 777 deletions
diff --git a/epan/dissectors/packet-drda.c b/epan/dissectors/packet-drda.c
index 5fe95ceb0c..b5f37ee501 100644
--- a/epan/dissectors/packet-drda.c
+++ b/epan/dissectors/packet-drda.c
@@ -36,15 +36,15 @@
* of the DDM commands and reply messages are in EBCDIC.
*
* Documentation:
-* DRDA Version 3 Vol. 3: Distributed Relational Database Architecture,
-* Open Group.
-* Version 3 is no longer available; for the latest version, see
+* DRDA Version 3 Vol. 3: Distributed Relational Database Architecture,
+* Open Group.
+* Version 3 is no longer available; for the latest version, see
*
-* http://www.opengroup.org/dbiop/
+* http://www.opengroup.org/dbiop/
*
-* Reference for Remote DRDA Requesters and Servers, IBM.
+* Reference for Remote DRDA Requesters and Servers, IBM.
*
-* https://www-304.ibm.com/support/docview.wss?uid=pub1sc18985301
+* https://www-304.ibm.com/support/docview.wss?uid=pub1sc18985301
*/
#ifdef HAVE_CONFIG_H
@@ -85,580 +85,578 @@ static dissector_handle_t drda_tcp_handle;
static gboolean drda_desegment = TRUE;
-#define DRDA_MAGIC 0xD0
-
-#define DRDA_CP_DATA 0x0000
-#define DRDA_CP_CODPNT 0x000C
-#define DRDA_CP_FDODSC 0x0010
-#define DRDA_CP_TYPDEFNAM 0x002F
-#define DRDA_CP_TYPDEFOVR 0x0035
-#define DRDA_CP_CODPNTDR 0x0064
-#define DRDA_CP_EXCSAT 0x1041
-#define DRDA_CP_SYNCCTL 0x1055
-#define DRDA_CP_SYNCRSY 0x1069
-#define DRDA_CP_ACCSEC 0x106D
-#define DRDA_CP_SECCHK 0x106E
-#define DRDA_CP_SYNCLOG 0x106F
-#define DRDA_CP_RSCTYP 0x111F
-#define DRDA_CP_RSNCOD 0x1127
-#define DRDA_CP_RSCNAM 0x112D
-#define DRDA_CP_PRDID 0x112E
-#define DRDA_CP_PRCCNVCD 0x113F
-#define DRDA_CP_VRSNAM 0x1144
-#define DRDA_CP_SRVCLSNM 0x1147
-#define DRDA_CP_SVRCOD 0x1149
-#define DRDA_CP_SYNERRCD 0x114A
-#define DRDA_CP_SRVDGN 0x1153
-#define DRDA_CP_SRVRLSLV 0x115A
-#define DRDA_CP_SPVNAM 0x115D
-#define DRDA_CP_EXTNAM 0x115E
-#define DRDA_CP_SRVNAM 0x116D
-#define DRDA_CP_SECMGRNM 0x1196
-#define DRDA_CP_DEPERRCD 0x119B
-#define DRDA_CP_CCSIDSBC 0x119C
-#define DRDA_CP_CCSIDDBC 0x119D
-#define DRDA_CP_CCSIDMBC 0x119E
-#define DRDA_CP_USRID 0x11A0
-#define DRDA_CP_PASSWORD 0x11A1
-#define DRDA_CP_SECMEC 0x11A2
-#define DRDA_CP_SECCHKCD 0x11A4
-#define DRDA_CP_SVCERRNO 0x11B4
-#define DRDA_CP_SECTKN 0x11DC
-#define DRDA_CP_NEWPASSWORD 0x11DE
-#define DRDA_CP_MGRLVLRM 0x1210
-#define DRDA_CP_MGRDEPRM 0x1218
-#define DRDA_CP_SECCHKRM 0x1219
-#define DRDA_CP_CMDATHRM 0x121C
-#define DRDA_CP_AGNPRMRM 0x1232
-#define DRDA_CP_RSCLMTRM 0x1233
-#define DRDA_CP_PRCCNVRM 0x1245
-#define DRDA_CP_CMDCMPRM 0x124B
-#define DRDA_CP_SYNTAXRM 0x124C
-#define DRDA_CP_CMDNSPRM 0x1250
-#define DRDA_CP_PRMNSPRM 0x1251
-#define DRDA_CP_VALNSPRM 0x1252
-#define DRDA_CP_OBJNSPRM 0x1253
-#define DRDA_CP_CMDCHKRM 0x1254
-#define DRDA_CP_TRGNSPRM 0x125F
-#define DRDA_CP_AGENT 0x1403
-#define DRDA_CP_MGRLVLLS 0x1404
-#define DRDA_CP_SUPERVISOR 0x143C
-#define DRDA_CP_SECMGR 0x1440
-#define DRDA_CP_EXCSATRD 0x1443
-#define DRDA_CP_CMNAPPC 0x1444
-#define DRDA_CP_DICTIONARY 0x1458
-#define DRDA_CP_MGRLVLN 0x1473
-#define DRDA_CP_CMNTCPIP 0x1474
-#define DRDA_CP_FDODTA 0x147A
-#define DRDA_CP_CMNSYNCPT 0x147C
-#define DRDA_CP_ACCSECRD 0x14AC
-#define DRDA_CP_SYNCPTMGR 0x14C0
-#define DRDA_CP_RSYNCMGR 0x14C1
-#define DRDA_CP_CCSIDMGR 0x14CC
-#define DRDA_CP_MONITOR 0x1900
-#define DRDA_CP_MONITORRD 0x1C00
-#define DRDA_CP_XAMGR 0x1C01
-#define DRDA_CP_ACCRDB 0x2001
-#define DRDA_CP_BGNBND 0x2002
-#define DRDA_CP_BNDSQLSTT 0x2004
-#define DRDA_CP_CLSQRY 0x2005
-#define DRDA_CP_CNTQRY 0x2006
-#define DRDA_CP_DRPPKG 0x2007
-#define DRDA_CP_DSCSQLSTT 0x2008
-#define DRDA_CP_ENDBND 0x2009
-#define DRDA_CP_EXCSQLIMM 0x200A
-#define DRDA_CP_EXCSQLSTT 0x200B
-#define DRDA_CP_OPNQRY 0x200C
-#define DRDA_CP_PRPSQLSTT 0x200D
-#define DRDA_CP_RDBCMM 0x200E
-#define DRDA_CP_RDBRLLBCK 0x200F
-#define DRDA_CP_REBIND 0x2010
-#define DRDA_CP_DSCRDBTBL 0x2012
-#define DRDA_CP_EXCSQLSET 0x2014
-#define DRDA_CP_DSCERRCD 0x2101
-#define DRDA_CP_QRYPRCTYP 0x2102
-#define DRDA_CP_RDBINTTKN 0x2103
-#define DRDA_CP_PRDDTA 0x2104
-#define DRDA_CP_RDBCMTOK 0x2105
-#define DRDA_CP_RDBCOLID 0x2108
-#define DRDA_CP_PKGID 0x2109
-#define DRDA_CP_PKGCNSTKN 0x210D
-#define DRDA_CP_RTNSETSTT 0x210E
-#define DRDA_CP_RDBACCCL 0x210F
-#define DRDA_CP_RDBNAM 0x2110
-#define DRDA_CP_OUTEXP 0x2111
-#define DRDA_CP_PKGNAMCT 0x2112
-#define DRDA_CP_PKGNAMCSN 0x2113
-#define DRDA_CP_QRYBLKSZ 0x2114
-#define DRDA_CP_UOWDSP 0x2115
-#define DRDA_CP_RTNSQLDA 0x2116
-#define DRDA_CP_RDBALWUPD 0x211A
-#define DRDA_CP_SQLCSRHLD 0x211F
-#define DRDA_CP_STTSTRDEL 0x2120
-#define DRDA_CP_STTDECDEL 0x2121
-#define DRDA_CP_PKGDFTCST 0x2125
-#define DRDA_CP_QRYBLKCTL 0x2132
-#define DRDA_CP_CRRTKN 0x2135
-#define DRDA_CP_PRCNAM 0x2138
-#define DRDA_CP_PKGSNLST 0x2139
-#define DRDA_CP_NBRROW 0x213A
-#define DRDA_CP_TRGDFTRT 0x213B
-#define DRDA_CP_QRYRELSCR 0x213C
-#define DRDA_CP_QRYROWNBR 0x213D
-#define DRDA_CP_QRYRFRTBL 0x213E
-#define DRDA_CP_MAXRSLCNT 0x2140
-#define DRDA_CP_MAXBLKEXT 0x2141
-#define DRDA_CP_RSLSETFLG 0x2142
-#define DRDA_CP_TYPSQLDA 0x2146
-#define DRDA_CP_OUTOVROPT 0x2147
-#define DRDA_CP_RTNEXTDTA 0x2148
-#define DRDA_CP_QRYATTSCR 0x2149
-#define DRDA_CP_QRYATTUPD 0x2150
-#define DRDA_CP_QRYSCRORN 0x2152
-#define DRDA_CP_QRYROWSNS 0x2153
-#define DRDA_CP_QRYBLKRST 0x2154
-#define DRDA_CP_QRYRTNDTA 0x2155
-#define DRDA_CP_QRYROWSET 0x2156
-#define DRDA_CP_QRYATTSNS 0x2157
-#define DRDA_CP_QRYINSID 0x215B
-#define DRDA_CP_QRYCLSIMP 0x215D
-#define DRDA_CP_QRYCLSRLS 0x215E
-#define DRDA_CP_QRYOPTVAL 0x215F
-#define DRDA_CP_DIAGLVL 0x2160
-#define DRDA_CP_ACCRDBRM 0x2201
-#define DRDA_CP_QRYNOPRM 0x2202
-#define DRDA_CP_RDBNACRM 0x2204
-#define DRDA_CP_OPNQRYRM 0x2205
-#define DRDA_CP_PKGBNARM 0x2206
-#define DRDA_CP_RDBACCRM 0x2207
-#define DRDA_CP_BGNBNDRM 0x2208
-#define DRDA_CP_PKGBPARM 0x2209
-#define DRDA_CP_DSCINVRM 0x220A
-#define DRDA_CP_ENDQRYRM 0x220B
-#define DRDA_CP_ENDUOWRM 0x220C
-#define DRDA_CP_ABNUOWRM 0x220D
-#define DRDA_CP_DTAMCHRM 0x220E
-#define DRDA_CP_QRYPOPRM 0x220F
-#define DRDA_CP_RDBNFNRM 0x2211
-#define DRDA_CP_OPNQFLRM 0x2212
-#define DRDA_CP_SQLERRRM 0x2213
-#define DRDA_CP_RDBUPDRM 0x2218
-#define DRDA_CP_RSLSETRM 0x2219
-#define DRDA_CP_RDBAFLRM 0x221A
-#define DRDA_CP_CMDVLTRM 0x221D
-#define DRDA_CP_CMMRQSRM 0x2225
-#define DRDA_CP_RDBATHRM 0x22CB
-#define DRDA_CP_SQLAM 0x2407
-#define DRDA_CP_SQLCARD 0x2408
-#define DRDA_CP_SQLCINRD 0x240B
-#define DRDA_CP_SQLRSLRD 0x240E
-#define DRDA_CP_RDB 0x240F
-#define DRDA_CP_FRCFIXROW 0x2410
-#define DRDA_CP_SQLDARD 0x2411
-#define DRDA_CP_SQLDTA 0x2412
-#define DRDA_CP_SQLDTARD 0x2413
-#define DRDA_CP_SQLSTT 0x2414
-#define DRDA_CP_OUTOVR 0x2415
-#define DRDA_CP_LMTBLKPRC 0x2417
-#define DRDA_CP_FIXROWPRC 0x2418
-#define DRDA_CP_SQLSTTVRB 0x2419
-#define DRDA_CP_QRYDSC 0x241A
-#define DRDA_CP_QRYDTA 0x241B
-#define DRDA_CP_CSTMBCS 0x2435
-#define DRDA_CP_SRVLST 0x244E
-#define DRDA_CP_SQLATTR 0x2450
-
-#define DRDA_DSSFMT_SAME_CORR 0x01
-#define DRDA_DSSFMT_CONTINUE 0x02
-#define DRDA_DSSFMT_CHAINED 0x04
-#define DRDA_DSSFMT_RESERVED 0x08
-
-#define DRDA_DSSFMT_RQSDSS 0x01
-#define DRDA_DSSFMT_RPYDSS 0x02
-#define DRDA_DSSFMT_OBJDSS 0x03
-#define DRDA_DSSFMT_CMNDSS 0x04
-#define DRDA_DSSFMT_NORPYDSS 0x05
+#define DRDA_MAGIC 0xD0
+
+#define DRDA_CP_DATA 0x0000
+#define DRDA_CP_CODPNT 0x000C
+#define DRDA_CP_FDODSC 0x0010
+#define DRDA_CP_TYPDEFNAM 0x002F
+#define DRDA_CP_TYPDEFOVR 0x0035
+#define DRDA_CP_CODPNTDR 0x0064
+#define DRDA_CP_EXCSAT 0x1041
+#define DRDA_CP_SYNCCTL 0x1055
+#define DRDA_CP_SYNCRSY 0x1069
+#define DRDA_CP_ACCSEC 0x106D
+#define DRDA_CP_SECCHK 0x106E
+#define DRDA_CP_SYNCLOG 0x106F
+#define DRDA_CP_RSCTYP 0x111F
+#define DRDA_CP_RSNCOD 0x1127
+#define DRDA_CP_RSCNAM 0x112D
+#define DRDA_CP_PRDID 0x112E
+#define DRDA_CP_PRCCNVCD 0x113F
+#define DRDA_CP_VRSNAM 0x1144
+#define DRDA_CP_SRVCLSNM 0x1147
+#define DRDA_CP_SVRCOD 0x1149
+#define DRDA_CP_SYNERRCD 0x114A
+#define DRDA_CP_SRVDGN 0x1153
+#define DRDA_CP_SRVRLSLV 0x115A
+#define DRDA_CP_SPVNAM 0x115D
+#define DRDA_CP_EXTNAM 0x115E
+#define DRDA_CP_SRVNAM 0x116D
+#define DRDA_CP_SECMGRNM 0x1196
+#define DRDA_CP_DEPERRCD 0x119B
+#define DRDA_CP_CCSIDSBC 0x119C
+#define DRDA_CP_CCSIDDBC 0x119D
+#define DRDA_CP_CCSIDMBC 0x119E
+#define DRDA_CP_USRID 0x11A0
+#define DRDA_CP_PASSWORD 0x11A1
+#define DRDA_CP_SECMEC 0x11A2
+#define DRDA_CP_SECCHKCD 0x11A4
+#define DRDA_CP_SVCERRNO 0x11B4
+#define DRDA_CP_SECTKN 0x11DC
+#define DRDA_CP_NEWPASSWORD 0x11DE
+#define DRDA_CP_MGRLVLRM 0x1210
+#define DRDA_CP_MGRDEPRM 0x1218
+#define DRDA_CP_SECCHKRM 0x1219
+#define DRDA_CP_CMDATHRM 0x121C
+#define DRDA_CP_AGNPRMRM 0x1232
+#define DRDA_CP_RSCLMTRM 0x1233
+#define DRDA_CP_PRCCNVRM 0x1245
+#define DRDA_CP_CMDCMPRM 0x124B
+#define DRDA_CP_SYNTAXRM 0x124C
+#define DRDA_CP_CMDNSPRM 0x1250
+#define DRDA_CP_PRMNSPRM 0x1251
+#define DRDA_CP_VALNSPRM 0x1252
+#define DRDA_CP_OBJNSPRM 0x1253
+#define DRDA_CP_CMDCHKRM 0x1254
+#define DRDA_CP_TRGNSPRM 0x125F
+#define DRDA_CP_AGENT 0x1403
+#define DRDA_CP_MGRLVLLS 0x1404
+#define DRDA_CP_SUPERVISOR 0x143C
+#define DRDA_CP_SECMGR 0x1440
+#define DRDA_CP_EXCSATRD 0x1443
+#define DRDA_CP_CMNAPPC 0x1444
+#define DRDA_CP_DICTIONARY 0x1458
+#define DRDA_CP_MGRLVLN 0x1473
+#define DRDA_CP_CMNTCPIP 0x1474
+#define DRDA_CP_FDODTA 0x147A
+#define DRDA_CP_CMNSYNCPT 0x147C
+#define DRDA_CP_ACCSECRD 0x14AC
+#define DRDA_CP_SYNCPTMGR 0x14C0
+#define DRDA_CP_RSYNCMGR 0x14C1
+#define DRDA_CP_CCSIDMGR 0x14CC
+#define DRDA_CP_MONITOR 0x1900
+#define DRDA_CP_MONITORRD 0x1C00
+#define DRDA_CP_XAMGR 0x1C01
+#define DRDA_CP_ACCRDB 0x2001
+#define DRDA_CP_BGNBND 0x2002
+#define DRDA_CP_BNDSQLSTT 0x2004
+#define DRDA_CP_CLSQRY 0x2005
+#define DRDA_CP_CNTQRY 0x2006
+#define DRDA_CP_DRPPKG 0x2007
+#define DRDA_CP_DSCSQLSTT 0x2008
+#define DRDA_CP_ENDBND 0x2009
+#define DRDA_CP_EXCSQLIMM 0x200A
+#define DRDA_CP_EXCSQLSTT 0x200B
+#define DRDA_CP_OPNQRY 0x200C
+#define DRDA_CP_PRPSQLSTT 0x200D
+#define DRDA_CP_RDBCMM 0x200E
+#define DRDA_CP_RDBRLLBCK 0x200F
+#define DRDA_CP_REBIND 0x2010
+#define DRDA_CP_DSCRDBTBL 0x2012
+#define DRDA_CP_EXCSQLSET 0x2014
+#define DRDA_CP_DSCERRCD 0x2101
+#define DRDA_CP_QRYPRCTYP 0x2102
+#define DRDA_CP_RDBINTTKN 0x2103
+#define DRDA_CP_PRDDTA 0x2104
+#define DRDA_CP_RDBCMTOK 0x2105
+#define DRDA_CP_RDBCOLID 0x2108
+#define DRDA_CP_PKGID 0x2109
+#define DRDA_CP_PKGCNSTKN 0x210D
+#define DRDA_CP_RTNSETSTT 0x210E
+#define DRDA_CP_RDBACCCL 0x210F
+#define DRDA_CP_RDBNAM 0x2110
+#define DRDA_CP_OUTEXP 0x2111
+#define DRDA_CP_PKGNAMCT 0x2112
+#define DRDA_CP_PKGNAMCSN 0x2113
+#define DRDA_CP_QRYBLKSZ 0x2114
+#define DRDA_CP_UOWDSP 0x2115
+#define DRDA_CP_RTNSQLDA 0x2116
+#define DRDA_CP_RDBALWUPD 0x211A
+#define DRDA_CP_SQLCSRHLD 0x211F
+#define DRDA_CP_STTSTRDEL 0x2120
+#define DRDA_CP_STTDECDEL 0x2121
+#define DRDA_CP_PKGDFTCST 0x2125
+#define DRDA_CP_QRYBLKCTL 0x2132
+#define DRDA_CP_CRRTKN 0x2135
+#define DRDA_CP_PRCNAM 0x2138
+#define DRDA_CP_PKGSNLST 0x2139
+#define DRDA_CP_NBRROW 0x213A
+#define DRDA_CP_TRGDFTRT 0x213B
+#define DRDA_CP_QRYRELSCR 0x213C
+#define DRDA_CP_QRYROWNBR 0x213D
+#define DRDA_CP_QRYRFRTBL 0x213E
+#define DRDA_CP_MAXRSLCNT 0x2140
+#define DRDA_CP_MAXBLKEXT 0x2141
+#define DRDA_CP_RSLSETFLG 0x2142
+#define DRDA_CP_TYPSQLDA 0x2146
+#define DRDA_CP_OUTOVROPT 0x2147
+#define DRDA_CP_RTNEXTDTA 0x2148
+#define DRDA_CP_QRYATTSCR 0x2149
+#define DRDA_CP_QRYATTUPD 0x2150
+#define DRDA_CP_QRYSCRORN 0x2152
+#define DRDA_CP_QRYROWSNS 0x2153
+#define DRDA_CP_QRYBLKRST 0x2154
+#define DRDA_CP_QRYRTNDTA 0x2155
+#define DRDA_CP_QRYROWSET 0x2156
+#define DRDA_CP_QRYATTSNS 0x2157
+#define DRDA_CP_QRYINSID 0x215B
+#define DRDA_CP_QRYCLSIMP 0x215D
+#define DRDA_CP_QRYCLSRLS 0x215E
+#define DRDA_CP_QRYOPTVAL 0x215F
+#define DRDA_CP_DIAGLVL 0x2160
+#define DRDA_CP_ACCRDBRM 0x2201
+#define DRDA_CP_QRYNOPRM 0x2202
+#define DRDA_CP_RDBNACRM 0x2204
+#define DRDA_CP_OPNQRYRM 0x2205
+#define DRDA_CP_PKGBNARM 0x2206
+#define DRDA_CP_RDBACCRM 0x2207
+#define DRDA_CP_BGNBNDRM 0x2208
+#define DRDA_CP_PKGBPARM 0x2209
+#define DRDA_CP_DSCINVRM 0x220A
+#define DRDA_CP_ENDQRYRM 0x220B
+#define DRDA_CP_ENDUOWRM 0x220C
+#define DRDA_CP_ABNUOWRM 0x220D
+#define DRDA_CP_DTAMCHRM 0x220E
+#define DRDA_CP_QRYPOPRM 0x220F
+#define DRDA_CP_RDBNFNRM 0x2211
+#define DRDA_CP_OPNQFLRM 0x2212
+#define DRDA_CP_SQLERRRM 0x2213
+#define DRDA_CP_RDBUPDRM 0x2218
+#define DRDA_CP_RSLSETRM 0x2219
+#define DRDA_CP_RDBAFLRM 0x221A
+#define DRDA_CP_CMDVLTRM 0x221D
+#define DRDA_CP_CMMRQSRM 0x2225
+#define DRDA_CP_RDBATHRM 0x22CB
+#define DRDA_CP_SQLAM 0x2407
+#define DRDA_CP_SQLCARD 0x2408
+#define DRDA_CP_SQLCINRD 0x240B
+#define DRDA_CP_SQLRSLRD 0x240E
+#define DRDA_CP_RDB 0x240F
+#define DRDA_CP_FRCFIXROW 0x2410
+#define DRDA_CP_SQLDARD 0x2411
+#define DRDA_CP_SQLDTA 0x2412
+#define DRDA_CP_SQLDTARD 0x2413
+#define DRDA_CP_SQLSTT 0x2414
+#define DRDA_CP_OUTOVR 0x2415
+#define DRDA_CP_LMTBLKPRC 0x2417
+#define DRDA_CP_FIXROWPRC 0x2418
+#define DRDA_CP_SQLSTTVRB 0x2419
+#define DRDA_CP_QRYDSC 0x241A
+#define DRDA_CP_QRYDTA 0x241B
+#define DRDA_CP_CSTMBCS 0x2435
+#define DRDA_CP_SRVLST 0x244E
+#define DRDA_CP_SQLATTR 0x2450
+
+#define DRDA_DSSFMT_SAME_CORR 0x01
+#define DRDA_DSSFMT_CONTINUE 0x02
+#define DRDA_DSSFMT_CHAINED 0x04
+#define DRDA_DSSFMT_RESERVED 0x08
+
+#define DRDA_DSSFMT_RQSDSS 0x01
+#define DRDA_DSSFMT_RPYDSS 0x02
+#define DRDA_DSSFMT_OBJDSS 0x03
+#define DRDA_DSSFMT_CMNDSS 0x04
+#define DRDA_DSSFMT_NORPYDSS 0x05
#define DRDA_TEXT_DDM "DDM"
#define DRDA_TEXT_PARAM "Parameter"
static const value_string drda_opcode_vals[] = {
- { DRDA_CP_DATA, "Data" },
- { DRDA_CP_CODPNT, "Code Point" },
- { DRDA_CP_FDODSC, "FD:OCA Data Descriptor" },
- { DRDA_CP_TYPDEFNAM, "Data Type Definition Name" },
- { DRDA_CP_TYPDEFOVR, "TYPDEF Overrides" },
- { DRDA_CP_CODPNTDR, "Code Point Data Representation" },
- { DRDA_CP_EXCSAT, "Exchange Server Attributes" },
- { DRDA_CP_SYNCCTL, "Sync Point Control Request" },
- { DRDA_CP_SYNCRSY, "Sync Point Resync Command" },
- { DRDA_CP_ACCSEC, "Access Security" },
- { DRDA_CP_SECCHK, "Security Check" },
- { DRDA_CP_SYNCLOG, "Sync Point Log" },
- { DRDA_CP_RSCTYP, "Resource Type Information" },
- { DRDA_CP_RSNCOD, "Reason Code Information" },
- { DRDA_CP_RSCNAM, "Resource Name Information" },
- { DRDA_CP_PRDID, "Product-Specific Identifier" },
- { DRDA_CP_PRCCNVCD, "Conversation Protocol Error Code" },
- { DRDA_CP_VRSNAM, "Version Name" },
- { DRDA_CP_SRVCLSNM, "Server Class Name" },
- { DRDA_CP_SVRCOD, "Severity Code" },
- { DRDA_CP_SYNERRCD, "Syntax Error Code" },
- { DRDA_CP_SRVDGN, "Server Diagnostic Information" },
- { DRDA_CP_SRVRLSLV, "Server Product Release Level" },
- { DRDA_CP_SPVNAM, "Supervisor Name" },
- { DRDA_CP_EXTNAM, "External Name" },
- { DRDA_CP_SRVNAM, "Server Name" },
- { DRDA_CP_SECMGRNM, "Security Manager Name" },
- { DRDA_CP_DEPERRCD, "Manager Dependency Error Code" },
- { DRDA_CP_CCSIDSBC, "CCSID for Single-Byte Characters" },
- { DRDA_CP_CCSIDDBC, "CCSID for Double-byte Characters" },
- { DRDA_CP_CCSIDMBC, "CCSID for Mixed-byte Characters" },
- { DRDA_CP_USRID, "User ID at the Target System" },
- { DRDA_CP_PASSWORD, "Password" },
- { DRDA_CP_SECMEC, "Security Mechanism" },
- { DRDA_CP_SECCHKCD, "Security Check Code" },
- { DRDA_CP_SVCERRNO, "Security Service ErrorNumber" },
- { DRDA_CP_SECTKN, "Security Token" },
- { DRDA_CP_NEWPASSWORD, "New Password" },
- { DRDA_CP_MGRLVLRM, "Manager-Level Conflict" },
- { DRDA_CP_MGRDEPRM, "Manager Dependency Error" },
- { DRDA_CP_SECCHKRM, "Security Check" },
- { DRDA_CP_CMDATHRM, "Not Authorized to Command" },
- { DRDA_CP_AGNPRMRM, "Permanent Agent Error" },
- { DRDA_CP_RSCLMTRM, "Resource Limits Reached" },
- { DRDA_CP_PRCCNVRM, "Conversational Protocol Error" },
- { DRDA_CP_CMDCMPRM, "Command Processing Completed" },
- { DRDA_CP_SYNTAXRM, "Data Stream Syntax Error" },
- { DRDA_CP_CMDNSPRM, "Command Not Supported" },
- { DRDA_CP_PRMNSPRM, "Parameter Not Supported" },
- { DRDA_CP_VALNSPRM, "Parameter Value Not Supported" },
- { DRDA_CP_OBJNSPRM, "Object Not Supported" },
- { DRDA_CP_CMDCHKRM, "Command Check" },
- { DRDA_CP_TRGNSPRM, "Target Not Supported" },
- { DRDA_CP_AGENT, "Agent" },
- { DRDA_CP_MGRLVLLS, "Manager-Level List" },
- { DRDA_CP_SUPERVISOR, "Supervisor" },
- { DRDA_CP_SECMGR, "Security Manager" },
- { DRDA_CP_EXCSATRD, "Server Attributes Reply Data" },
- { DRDA_CP_CMNAPPC, "LU 6.2 Conversational Communications Manager" },
- { DRDA_CP_DICTIONARY, "Dictionary" },
- { DRDA_CP_MGRLVLN, "Manager-Level Number Attribute" },
- { DRDA_CP_CMNTCPIP, "TCP/IP CommunicationManager" },
- { DRDA_CP_FDODTA, "FD:OCA Data" },
- { DRDA_CP_CMNSYNCPT,
- "SNA LU 6.2 Sync Point Conversational Communications Manager" },
- { DRDA_CP_ACCSECRD, "Access Security Reply Data" },
- { DRDA_CP_SYNCPTMGR, "Sync Point Manager" },
- { DRDA_CP_RSYNCMGR, "ResynchronizationManager" },
- { DRDA_CP_CCSIDMGR, "CCSID Manager" },
- { DRDA_CP_MONITOR, "Monitor Events" },
- { DRDA_CP_MONITORRD, "Monitor Reply Data" },
- { DRDA_CP_XAMGR, "XAManager" },
- { DRDA_CP_ACCRDB, "Access RDB" },
- { DRDA_CP_BGNBND, "Begin Binding a Package to an RDB" },
- { DRDA_CP_BNDSQLSTT, "Bind SQL Statement to an RDB Package" },
- { DRDA_CP_CLSQRY, "Close Query" },
- { DRDA_CP_CNTQRY, "Continue Query" },
- { DRDA_CP_DRPPKG, "Drop RDB Package" },
- { DRDA_CP_DSCSQLSTT, "Describe SQL Statement" },
- { DRDA_CP_ENDBND, "End Binding a Package to an RDB" },
- { DRDA_CP_EXCSQLIMM, "Execute Immediate SQL Statement" },
- { DRDA_CP_EXCSQLSTT, "Execute SQL Statement" },
- { DRDA_CP_OPNQRY, "Open Query" },
- { DRDA_CP_PRPSQLSTT, "Prepare SQL Statement" },
- { DRDA_CP_RDBCMM, "RDB Commit Unit of Work" },
- { DRDA_CP_RDBRLLBCK, "RDB Rollback Unit of Work" },
- { DRDA_CP_REBIND, "Rebind an Existing RDB Package" },
- { DRDA_CP_DSCRDBTBL, "Describe RDB Table" },
- { DRDA_CP_EXCSQLSET, "Set SQL Environment" },
- { DRDA_CP_DSCERRCD, "Description Error Code" },
- { DRDA_CP_QRYPRCTYP, "Query Protocol Type" },
- { DRDA_CP_RDBINTTKN, "RDB Interrupt Token" },
- { DRDA_CP_PRDDTA, "Product-Specific Data" },
- { DRDA_CP_RDBCMTOK, "RDB Commit Allowed" },
- { DRDA_CP_RDBCOLID, "RDB Collection Identifier" },
- { DRDA_CP_PKGID, "RDB Package Identifier" },
- { DRDA_CP_PKGCNSTKN, "RDB Package Consistency Token" },
- { DRDA_CP_RTNSETSTT, "Return SET Statement" },
- { DRDA_CP_RDBACCCL, "RDB Access Manager Class" },
- { DRDA_CP_RDBNAM, "Relational Database Name" },
- { DRDA_CP_OUTEXP, "Output Expected" },
- { DRDA_CP_PKGNAMCT, "RDB Package Name and Consistency Token" },
- { DRDA_CP_PKGNAMCSN,
- "RDB Package Name, Consistency Token, and Section Number" },
- { DRDA_CP_QRYBLKSZ, "Query Block Size" },
- { DRDA_CP_UOWDSP, "Unit of Work Disposition" },
- { DRDA_CP_RTNSQLDA, "Maximum Result Set Count" },
- { DRDA_CP_RDBALWUPD, "RDB Allow Updates" },
- { DRDA_CP_SQLCSRHLD, "Hold Cursor Position" },
- { DRDA_CP_STTSTRDEL, "Statement String Delimiter" },
- { DRDA_CP_STTDECDEL, "Statement Decimal Delimiter" },
- { DRDA_CP_PKGDFTCST, "Package Default Character Subtype" },
- { DRDA_CP_QRYBLKCTL, "Query Block Protocol Control" },
- { DRDA_CP_CRRTKN, "Correlation Token" },
- { DRDA_CP_PRCNAM, "Procedure Name" },
- { DRDA_CP_PKGSNLST, "RDB Result Set Reply Message" },
- { DRDA_CP_NBRROW, "Number of Fetch or Insert Rows" },
- { DRDA_CP_TRGDFTRT, "Target Default Value Return" },
- { DRDA_CP_QRYRELSCR, "Query Relative Scrolling Action" },
- { DRDA_CP_QRYROWNBR, "Query Row Number" },
- { DRDA_CP_QRYRFRTBL, "Query Refresh Answer Set Table" },
- { DRDA_CP_MAXRSLCNT, "Maximum Result Set Count" },
- { DRDA_CP_MAXBLKEXT, "Maximum Number of Extra Blocks" },
- { DRDA_CP_RSLSETFLG, "Result Set Flags" },
- { DRDA_CP_TYPSQLDA, "Type of SQL Descriptor Area" },
- { DRDA_CP_OUTOVROPT, "Output Override Option" },
- { DRDA_CP_RTNEXTDTA, "Return of EXTDTA Option" },
- { DRDA_CP_QRYATTSCR, "Query Attribute for Scrollability" },
- { DRDA_CP_QRYATTUPD, "Query Attribute for Updatability" },
- { DRDA_CP_QRYSCRORN, "Query Scroll Orientation" },
- { DRDA_CP_QRYROWSNS, "Query Row Sensitivity" },
- { DRDA_CP_QRYBLKRST, "Query Block Reset" },
- { DRDA_CP_QRYRTNDTA, "Query Returns Datat" },
- { DRDA_CP_QRYROWSET, "Query Rowset Size" },
- { DRDA_CP_QRYATTSNS, "Query Attribute for Sensitivity" },
- { DRDA_CP_QRYINSID, "Query Instance Identifier" },
- { DRDA_CP_QRYCLSIMP, "Query Close Implicit" },
- { DRDA_CP_QRYCLSRLS, "Query Close Lock Release" },
- { DRDA_CP_QRYOPTVAL, "QRYOPTVAL" },
- { DRDA_CP_DIAGLVL, "SQL Error Diagnostic Level" },
- { DRDA_CP_ACCRDBRM, "Access to RDB Completed" },
- { DRDA_CP_QRYNOPRM, "Query Not Open" },
- { DRDA_CP_RDBNACRM, "RDB Not Accessed" },
- { DRDA_CP_OPNQRYRM, "Open Query Complete" },
- { DRDA_CP_PKGBNARM, "RDB Package Binding Not Active" },
- { DRDA_CP_RDBACCRM, "RDB Currently Accessed" },
- { DRDA_CP_BGNBNDRM, "Begin Bind Error" },
- { DRDA_CP_PKGBPARM, "RDB Package Binding Process Active" },
- { DRDA_CP_DSCINVRM, "Invalid Description" },
- { DRDA_CP_ENDQRYRM, "End of Query" },
- { DRDA_CP_ENDUOWRM, "End Unit of Work Condition" },
- { DRDA_CP_ABNUOWRM, "Abnormal End Unit ofWork Condition" },
- { DRDA_CP_DTAMCHRM, "Data Descriptor Mismatch" },
- { DRDA_CP_QRYPOPRM, "Query Previously Opened" },
- { DRDA_CP_RDBNFNRM, "RDB Not Found" },
- { DRDA_CP_OPNQFLRM, "Open Query Failure" },
- { DRDA_CP_SQLERRRM, "SQL Error Condition" },
- { DRDA_CP_RDBUPDRM, "RDB Update Reply Message" },
- { DRDA_CP_RSLSETRM, "RDB Result Set Reply Message" },
- { DRDA_CP_RDBAFLRM, "RDB Access Failed Reply Message" },
- { DRDA_CP_CMDVLTRM, "Command Violation" },
- { DRDA_CP_CMMRQSRM, "Commitment Request" },
- { DRDA_CP_RDBATHRM, "Not Authorized to RDB" },
- { DRDA_CP_SQLAM, "SQL Application Manager" },
- { DRDA_CP_SQLCARD, "SQL Communications Area Reply Data" },
- { DRDA_CP_SQLCINRD, "SQL Result Set Column Information Reply Data" },
- { DRDA_CP_SQLRSLRD, "SQL Result Set Reply Data" },
- { DRDA_CP_RDB, "Relational Database" },
- { DRDA_CP_FRCFIXROW, "Force Fixed Row Query Protocol" },
- { DRDA_CP_SQLDARD, "SQLDA Reply Data" },
- { DRDA_CP_SQLDTA, "SQL Program Variable Data" },
- { DRDA_CP_SQLDTARD, "SQL Data Reply Data" },
- { DRDA_CP_SQLSTT, "SQL Statement" },
- { DRDA_CP_OUTOVR, "Output Override Descriptor" },
- { DRDA_CP_LMTBLKPRC, "Limited Block Protocol" },
- { DRDA_CP_FIXROWPRC, "Fixed Row Query Protocol" },
- { DRDA_CP_SQLSTTVRB, "SQL Statement Variable Descriptions" },
- { DRDA_CP_QRYDSC, "Query Answer Set Description" },
- { DRDA_CP_QRYDTA, "Query Answer Set Data" },
- { DRDA_CP_SQLATTR, "SQL Statement Attributes" },
- { 0, NULL }
+ { DRDA_CP_DATA, "Data" },
+ { DRDA_CP_CODPNT, "Code Point" },
+ { DRDA_CP_FDODSC, "FD:OCA Data Descriptor" },
+ { DRDA_CP_TYPDEFNAM, "Data Type Definition Name" },
+ { DRDA_CP_TYPDEFOVR, "TYPDEF Overrides" },
+ { DRDA_CP_CODPNTDR, "Code Point Data Representation" },
+ { DRDA_CP_EXCSAT, "Exchange Server Attributes" },
+ { DRDA_CP_SYNCCTL, "Sync Point Control Request" },
+ { DRDA_CP_SYNCRSY, "Sync Point Resync Command" },
+ { DRDA_CP_ACCSEC, "Access Security" },
+ { DRDA_CP_SECCHK, "Security Check" },
+ { DRDA_CP_SYNCLOG, "Sync Point Log" },
+ { DRDA_CP_RSCTYP, "Resource Type Information" },
+ { DRDA_CP_RSNCOD, "Reason Code Information" },
+ { DRDA_CP_RSCNAM, "Resource Name Information" },
+ { DRDA_CP_PRDID, "Product-Specific Identifier" },
+ { DRDA_CP_PRCCNVCD, "Conversation Protocol Error Code" },
+ { DRDA_CP_VRSNAM, "Version Name" },
+ { DRDA_CP_SRVCLSNM, "Server Class Name" },
+ { DRDA_CP_SVRCOD, "Severity Code" },
+ { DRDA_CP_SYNERRCD, "Syntax Error Code" },
+ { DRDA_CP_SRVDGN, "Server Diagnostic Information" },
+ { DRDA_CP_SRVRLSLV, "Server Product Release Level" },
+ { DRDA_CP_SPVNAM, "Supervisor Name" },
+ { DRDA_CP_EXTNAM, "External Name" },
+ { DRDA_CP_SRVNAM, "Server Name" },
+ { DRDA_CP_SECMGRNM, "Security Manager Name" },
+ { DRDA_CP_DEPERRCD, "Manager Dependency Error Code" },
+ { DRDA_CP_CCSIDSBC, "CCSID for Single-Byte Characters" },
+ { DRDA_CP_CCSIDDBC, "CCSID for Double-byte Characters" },
+ { DRDA_CP_CCSIDMBC, "CCSID for Mixed-byte Characters" },
+ { DRDA_CP_USRID, "User ID at the Target System" },
+ { DRDA_CP_PASSWORD, "Password" },
+ { DRDA_CP_SECMEC, "Security Mechanism" },
+ { DRDA_CP_SECCHKCD, "Security Check Code" },
+ { DRDA_CP_SVCERRNO, "Security Service ErrorNumber" },
+ { DRDA_CP_SECTKN, "Security Token" },
+ { DRDA_CP_NEWPASSWORD, "New Password" },
+ { DRDA_CP_MGRLVLRM, "Manager-Level Conflict" },
+ { DRDA_CP_MGRDEPRM, "Manager Dependency Error" },
+ { DRDA_CP_SECCHKRM, "Security Check" },
+ { DRDA_CP_CMDATHRM, "Not Authorized to Command" },
+ { DRDA_CP_AGNPRMRM, "Permanent Agent Error" },
+ { DRDA_CP_RSCLMTRM, "Resource Limits Reached" },
+ { DRDA_CP_PRCCNVRM, "Conversational Protocol Error" },
+ { DRDA_CP_CMDCMPRM, "Command Processing Completed" },
+ { DRDA_CP_SYNTAXRM, "Data Stream Syntax Error" },
+ { DRDA_CP_CMDNSPRM, "Command Not Supported" },
+ { DRDA_CP_PRMNSPRM, "Parameter Not Supported" },
+ { DRDA_CP_VALNSPRM, "Parameter Value Not Supported" },
+ { DRDA_CP_OBJNSPRM, "Object Not Supported" },
+ { DRDA_CP_CMDCHKRM, "Command Check" },
+ { DRDA_CP_TRGNSPRM, "Target Not Supported" },
+ { DRDA_CP_AGENT, "Agent" },
+ { DRDA_CP_MGRLVLLS, "Manager-Level List" },
+ { DRDA_CP_SUPERVISOR, "Supervisor" },
+ { DRDA_CP_SECMGR, "Security Manager" },
+ { DRDA_CP_EXCSATRD, "Server Attributes Reply Data" },
+ { DRDA_CP_CMNAPPC, "LU 6.2 Conversational Communications Manager" },
+ { DRDA_CP_DICTIONARY, "Dictionary" },
+ { DRDA_CP_MGRLVLN, "Manager-Level Number Attribute" },
+ { DRDA_CP_CMNTCPIP, "TCP/IP CommunicationManager" },
+ { DRDA_CP_FDODTA, "FD:OCA Data" },
+ { DRDA_CP_CMNSYNCPT,
+ "SNA LU 6.2 Sync Point Conversational Communications Manager" },
+ { DRDA_CP_ACCSECRD, "Access Security Reply Data" },
+ { DRDA_CP_SYNCPTMGR, "Sync Point Manager" },
+ { DRDA_CP_RSYNCMGR, "ResynchronizationManager" },
+ { DRDA_CP_CCSIDMGR, "CCSID Manager" },
+ { DRDA_CP_MONITOR, "Monitor Events" },
+ { DRDA_CP_MONITORRD, "Monitor Reply Data" },
+ { DRDA_CP_XAMGR, "XAManager" },
+ { DRDA_CP_ACCRDB, "Access RDB" },
+ { DRDA_CP_BGNBND, "Begin Binding a Package to an RDB" },
+ { DRDA_CP_BNDSQLSTT, "Bind SQL Statement to an RDB Package" },
+ { DRDA_CP_CLSQRY, "Close Query" },
+ { DRDA_CP_CNTQRY, "Continue Query" },
+ { DRDA_CP_DRPPKG, "Drop RDB Package" },
+ { DRDA_CP_DSCSQLSTT, "Describe SQL Statement" },
+ { DRDA_CP_ENDBND, "End Binding a Package to an RDB" },
+ { DRDA_CP_EXCSQLIMM, "Execute Immediate SQL Statement" },
+ { DRDA_CP_EXCSQLSTT, "Execute SQL Statement" },
+ { DRDA_CP_OPNQRY, "Open Query" },
+ { DRDA_CP_PRPSQLSTT, "Prepare SQL Statement" },
+ { DRDA_CP_RDBCMM, "RDB Commit Unit of Work" },
+ { DRDA_CP_RDBRLLBCK, "RDB Rollback Unit of Work" },
+ { DRDA_CP_REBIND, "Rebind an Existing RDB Package" },
+ { DRDA_CP_DSCRDBTBL, "Describe RDB Table" },
+ { DRDA_CP_EXCSQLSET, "Set SQL Environment" },
+ { DRDA_CP_DSCERRCD, "Description Error Code" },
+ { DRDA_CP_QRYPRCTYP, "Query Protocol Type" },
+ { DRDA_CP_RDBINTTKN, "RDB Interrupt Token" },
+ { DRDA_CP_PRDDTA, "Product-Specific Data" },
+ { DRDA_CP_RDBCMTOK, "RDB Commit Allowed" },
+ { DRDA_CP_RDBCOLID, "RDB Collection Identifier" },
+ { DRDA_CP_PKGID, "RDB Package Identifier" },
+ { DRDA_CP_PKGCNSTKN, "RDB Package Consistency Token" },
+ { DRDA_CP_RTNSETSTT, "Return SET Statement" },
+ { DRDA_CP_RDBACCCL, "RDB Access Manager Class" },
+ { DRDA_CP_RDBNAM, "Relational Database Name" },
+ { DRDA_CP_OUTEXP, "Output Expected" },
+ { DRDA_CP_PKGNAMCT, "RDB Package Name and Consistency Token" },
+ { DRDA_CP_PKGNAMCSN,
+ "RDB Package Name, Consistency Token, and Section Number" },
+ { DRDA_CP_QRYBLKSZ, "Query Block Size" },
+ { DRDA_CP_UOWDSP, "Unit of Work Disposition" },
+ { DRDA_CP_RTNSQLDA, "Maximum Result Set Count" },
+ { DRDA_CP_RDBALWUPD, "RDB Allow Updates" },
+ { DRDA_CP_SQLCSRHLD, "Hold Cursor Position" },
+ { DRDA_CP_STTSTRDEL, "Statement String Delimiter" },
+ { DRDA_CP_STTDECDEL, "Statement Decimal Delimiter" },
+ { DRDA_CP_PKGDFTCST, "Package Default Character Subtype" },
+ { DRDA_CP_QRYBLKCTL, "Query Block Protocol Control" },
+ { DRDA_CP_CRRTKN, "Correlation Token" },
+ { DRDA_CP_PRCNAM, "Procedure Name" },
+ { DRDA_CP_PKGSNLST, "RDB Result Set Reply Message" },
+ { DRDA_CP_NBRROW, "Number of Fetch or Insert Rows" },
+ { DRDA_CP_TRGDFTRT, "Target Default Value Return" },
+ { DRDA_CP_QRYRELSCR, "Query Relative Scrolling Action" },
+ { DRDA_CP_QRYROWNBR, "Query Row Number" },
+ { DRDA_CP_QRYRFRTBL, "Query Refresh Answer Set Table" },
+ { DRDA_CP_MAXRSLCNT, "Maximum Result Set Count" },
+ { DRDA_CP_MAXBLKEXT, "Maximum Number of Extra Blocks" },
+ { DRDA_CP_RSLSETFLG, "Result Set Flags" },
+ { DRDA_CP_TYPSQLDA, "Type of SQL Descriptor Area" },
+ { DRDA_CP_OUTOVROPT, "Output Override Option" },
+ { DRDA_CP_RTNEXTDTA, "Return of EXTDTA Option" },
+ { DRDA_CP_QRYATTSCR, "Query Attribute for Scrollability" },
+ { DRDA_CP_QRYATTUPD, "Query Attribute for Updatability" },
+ { DRDA_CP_QRYSCRORN, "Query Scroll Orientation" },
+ { DRDA_CP_QRYROWSNS, "Query Row Sensitivity" },
+ { DRDA_CP_QRYBLKRST, "Query Block Reset" },
+ { DRDA_CP_QRYRTNDTA, "Query Returns Datat" },
+ { DRDA_CP_QRYROWSET, "Query Rowset Size" },
+ { DRDA_CP_QRYATTSNS, "Query Attribute for Sensitivity" },
+ { DRDA_CP_QRYINSID, "Query Instance Identifier" },
+ { DRDA_CP_QRYCLSIMP, "Query Close Implicit" },
+ { DRDA_CP_QRYCLSRLS, "Query Close Lock Release" },
+ { DRDA_CP_QRYOPTVAL, "QRYOPTVAL" },
+ { DRDA_CP_DIAGLVL, "SQL Error Diagnostic Level" },
+ { DRDA_CP_ACCRDBRM, "Access to RDB Completed" },
+ { DRDA_CP_QRYNOPRM, "Query Not Open" },
+ { DRDA_CP_RDBNACRM, "RDB Not Accessed" },
+ { DRDA_CP_OPNQRYRM, "Open Query Complete" },
+ { DRDA_CP_PKGBNARM, "RDB Package Binding Not Active" },
+ { DRDA_CP_RDBACCRM, "RDB Currently Accessed" },
+ { DRDA_CP_BGNBNDRM, "Begin Bind Error" },
+ { DRDA_CP_PKGBPARM, "RDB Package Binding Process Active" },
+ { DRDA_CP_DSCINVRM, "Invalid Description" },
+ { DRDA_CP_ENDQRYRM, "End of Query" },
+ { DRDA_CP_ENDUOWRM, "End Unit of Work Condition" },
+ { DRDA_CP_ABNUOWRM, "Abnormal End Unit ofWork Condition" },
+ { DRDA_CP_DTAMCHRM, "Data Descriptor Mismatch" },
+ { DRDA_CP_QRYPOPRM, "Query Previously Opened" },
+ { DRDA_CP_RDBNFNRM, "RDB Not Found" },
+ { DRDA_CP_OPNQFLRM, "Open Query Failure" },
+ { DRDA_CP_SQLERRRM, "SQL Error Condition" },
+ { DRDA_CP_RDBUPDRM, "RDB Update Reply Message" },
+ { DRDA_CP_RSLSETRM, "RDB Result Set Reply Message" },
+ { DRDA_CP_RDBAFLRM, "RDB Access Failed Reply Message" },
+ { DRDA_CP_CMDVLTRM, "Command Violation" },
+ { DRDA_CP_CMMRQSRM, "Commitment Request" },
+ { DRDA_CP_RDBATHRM, "Not Authorized to RDB" },
+ { DRDA_CP_SQLAM, "SQL Application Manager" },
+ { DRDA_CP_SQLCARD, "SQL Communications Area Reply Data" },
+ { DRDA_CP_SQLCINRD, "SQL Result Set Column Information Reply Data" },
+ { DRDA_CP_SQLRSLRD, "SQL Result Set Reply Data" },
+ { DRDA_CP_RDB, "Relational Database" },
+ { DRDA_CP_FRCFIXROW, "Force Fixed Row Query Protocol" },
+ { DRDA_CP_SQLDARD, "SQLDA Reply Data" },
+ { DRDA_CP_SQLDTA, "SQL Program Variable Data" },
+ { DRDA_CP_SQLDTARD, "SQL Data Reply Data" },
+ { DRDA_CP_SQLSTT, "SQL Statement" },
+ { DRDA_CP_OUTOVR, "Output Override Descriptor" },
+ { DRDA_CP_LMTBLKPRC, "Limited Block Protocol" },
+ { DRDA_CP_FIXROWPRC, "Fixed Row Query Protocol" },
+ { DRDA_CP_SQLSTTVRB, "SQL Statement Variable Descriptions" },
+ { DRDA_CP_QRYDSC, "Query Answer Set Description" },
+ { DRDA_CP_QRYDTA, "Query Answer Set Data" },
+ { DRDA_CP_SQLATTR, "SQL Statement Attributes" },
+ { 0, NULL }
};
-
static value_string_ext drda_opcode_vals_ext = VALUE_STRING_EXT_INIT(drda_opcode_vals);
static const value_string drda_opcode_abbr[] = {
- { DRDA_CP_DATA, "DATA" },
- { DRDA_CP_CODPNT, "CODPNT" },
- { DRDA_CP_FDODSC, "FDODSC" },
- { DRDA_CP_TYPDEFNAM, "TYPDEFNAM" },
- { DRDA_CP_TYPDEFOVR, "TYPDEFOVR" },
- { DRDA_CP_CODPNTDR, "CODPNTDR" },
- { DRDA_CP_EXCSAT, "EXCSAT" },
- { DRDA_CP_SYNCCTL, "SYNCCTL" },
- { DRDA_CP_SYNCRSY, "SYNCRSY" },
- { DRDA_CP_ACCSEC, "ACCSEC" },
- { DRDA_CP_SECCHK, "SECCHK" },
- { DRDA_CP_SYNCLOG, "SYNCLOG" },
- { DRDA_CP_RSCTYP, "RSCTYP" },
- { DRDA_CP_RSNCOD, "RSNCOD" },
- { DRDA_CP_RSCNAM, "RSCNAM" },
- { DRDA_CP_PRDID, "PRDID" },
- { DRDA_CP_PRCCNVCD, "PRCCNVCD" },
- { DRDA_CP_VRSNAM, "VRSNAM" },
- { DRDA_CP_SRVCLSNM, "SRVCLSNM" },
- { DRDA_CP_SVRCOD, "SVRCOD" },
- { DRDA_CP_SYNERRCD, "SYNERRCD" },
- { DRDA_CP_SRVDGN, "SRVDGN" },
- { DRDA_CP_SRVRLSLV, "SRVRLSLV" },
- { DRDA_CP_SPVNAM, "SPVNAM" },
- { DRDA_CP_EXTNAM, "EXTNAM" },
- { DRDA_CP_SRVNAM, "SRVNAM" },
- { DRDA_CP_SECMGRNM, "SECMGRNM" },
- { DRDA_CP_DEPERRCD, "DEPERRCD" },
- { DRDA_CP_CCSIDSBC, "CCSIDSBC" },
- { DRDA_CP_CCSIDDBC, "CCSIDDBC" },
- { DRDA_CP_CCSIDMBC, "CCSIDMBC" },
- { DRDA_CP_USRID, "USRID" },
- { DRDA_CP_PASSWORD, "PASSWORD" },
- { DRDA_CP_SECMEC, "SECMEC" },
- { DRDA_CP_SECCHKCD, "SECCHKCD" },
- { DRDA_CP_SVCERRNO, "SVCERRNO" },
- { DRDA_CP_SECTKN, "SECTKN" },
- { DRDA_CP_NEWPASSWORD, "NEWPASSWORD" },
- { DRDA_CP_MGRLVLRM, "MGRLVLRM" },
- { DRDA_CP_MGRDEPRM, "MGRDEPRM" },
- { DRDA_CP_SECCHKRM, "SECCHKRM" },
- { DRDA_CP_CMDATHRM, "CMDATHRM" },
- { DRDA_CP_AGNPRMRM, "AGNPRMRM" },
- { DRDA_CP_RSCLMTRM, "RSCLMTRM" },
- { DRDA_CP_PRCCNVRM, "PRCCNVRM" },
- { DRDA_CP_CMDCMPRM, "CMDCMPRM" },
- { DRDA_CP_SYNTAXRM, "SYNTAXRM" },
- { DRDA_CP_CMDNSPRM, "CMDNSPRM" },
- { DRDA_CP_PRMNSPRM, "PRMNSPRM" },
- { DRDA_CP_VALNSPRM, "VALNSPRM" },
- { DRDA_CP_OBJNSPRM, "OBJNSPRM" },
- { DRDA_CP_CMDCHKRM, "CMDCHKRM" },
- { DRDA_CP_TRGNSPRM, "TRGNSPRM" },
- { DRDA_CP_AGENT, "AGENT" },
- { DRDA_CP_MGRLVLLS, "MGRLVLLS" },
- { DRDA_CP_SUPERVISOR, "SUPERVISOR" },
- { DRDA_CP_SECMGR, "SECMGR" },
- { DRDA_CP_EXCSATRD, "EXCSATRD" },
- { DRDA_CP_CMNAPPC, "CMNAPPC" },
- { DRDA_CP_DICTIONARY, "DICTIONARY" },
- { DRDA_CP_MGRLVLN, "MGRLVLN" },
- { DRDA_CP_CMNTCPIP, "CMNTCPIP" },
- { DRDA_CP_FDODTA, "FDODTA" },
- { DRDA_CP_CMNSYNCPT, "CMNSYNCPT" },
- { DRDA_CP_ACCSECRD, "ACCSECRD" },
- { DRDA_CP_SYNCPTMGR, "SYNCPTMGR" },
- { DRDA_CP_RSYNCMGR, "RSYNCMGR" },
- { DRDA_CP_CCSIDMGR, "CCSIDMGR" },
- { DRDA_CP_MONITOR, "MONITOR" },
- { DRDA_CP_MONITORRD, "MONITORRD" },
- { DRDA_CP_XAMGR, "XAMGR" },
- { DRDA_CP_ACCRDB, "ACCRDB" },
- { DRDA_CP_BGNBND, "BGNBND" },
- { DRDA_CP_BNDSQLSTT, "BNDSQLSTT" },
- { DRDA_CP_CLSQRY, "CLSQRY" },
- { DRDA_CP_CNTQRY, "CNTQRY" },
- { DRDA_CP_DRPPKG, "DRPPKG" },
- { DRDA_CP_DSCSQLSTT, "DSCSQLSTT" },
- { DRDA_CP_ENDBND, "ENDBND" },
- { DRDA_CP_EXCSQLIMM, "EXCSQLIMM" },
- { DRDA_CP_EXCSQLSTT, "EXCSQLSTT" },
- { DRDA_CP_OPNQRY, "OPNQRY" },
- { DRDA_CP_PRPSQLSTT, "PRPSQLSTT" },
- { DRDA_CP_RDBCMM, "RDBCMM" },
- { DRDA_CP_RDBRLLBCK, "RDBRLLBCK" },
- { DRDA_CP_REBIND, "REBIND" },
- { DRDA_CP_DSCRDBTBL, "DSCRDBTBL" },
- { DRDA_CP_EXCSQLSET, "EXCSQLSET" },
- { DRDA_CP_DSCERRCD, "DSCERRCD" },
- { DRDA_CP_QRYPRCTYP, "QRYPRCTYP" },
- { DRDA_CP_RDBINTTKN, "RDBINTTKN" },
- { DRDA_CP_PRDDTA, "PRDDTA" },
- { DRDA_CP_RDBCMTOK, "RDBCMTOK" },
- { DRDA_CP_RDBCOLID, "RDBCOLID" },
- { DRDA_CP_PKGID, "PKGID" },
- { DRDA_CP_PKGCNSTKN, "PKGCNSTKN" },
- { DRDA_CP_RTNSETSTT, "RTNSETSTT" },
- { DRDA_CP_RDBACCCL, "RDBACCCL" },
- { DRDA_CP_RDBNAM, "RDBNAM" },
- { DRDA_CP_OUTEXP, "OUTEXP" },
- { DRDA_CP_PKGNAMCT, "PKGNAMCT" },
- { DRDA_CP_PKGNAMCSN, "PKGNAMCSN" },
- { DRDA_CP_QRYBLKSZ, "QRYBLKSZ" },
- { DRDA_CP_UOWDSP, "UOWDSP" },
- { DRDA_CP_RTNSQLDA, "RTNSQLDA" },
- { DRDA_CP_RDBALWUPD, "RDBALWUPD" },
- { DRDA_CP_SQLCSRHLD, "SQLCSRHLD" },
- { DRDA_CP_STTSTRDEL, "STTSTRDEL" },
- { DRDA_CP_STTDECDEL, "STTDECDEL" },
- { DRDA_CP_PKGDFTCST, "PKGDFTCST" },
- { DRDA_CP_QRYBLKCTL, "QRYBLKCTL" },
- { DRDA_CP_CRRTKN, "CRRTKN" },
- { DRDA_CP_PRCNAM, "PRCNAM" },
- { DRDA_CP_PKGSNLST, "PKGSNLST" },
- { DRDA_CP_NBRROW, "NBRROW" },
- { DRDA_CP_TRGDFTRT, "TRGDFTRT" },
- { DRDA_CP_QRYRELSCR, "QRYRELSCR" },
- { DRDA_CP_QRYROWNBR, "QRYROWNBR" },
- { DRDA_CP_QRYRFRTBL, "QRYRFRTBL" },
- { DRDA_CP_MAXRSLCNT, "MAXRSLCNT" },
- { DRDA_CP_MAXBLKEXT, "MAXBLKEXT" },
- { DRDA_CP_RSLSETFLG, "RSLSETFLG" },
- { DRDA_CP_TYPSQLDA, "TYPSQLDA" },
- { DRDA_CP_OUTOVROPT, "OUTOVROPT" },
- { DRDA_CP_RTNEXTDTA, "RTNEXTDTA" },
- { DRDA_CP_QRYATTSCR, "QRYATTSCR" },
- { DRDA_CP_QRYATTUPD, "QRYATTUPD" },
- { DRDA_CP_QRYSCRORN, "QRYSCRORN" },
- { DRDA_CP_QRYROWSNS, "QRYROWSNS" },
- { DRDA_CP_QRYBLKRST, "QRYBLKRST" },
- { DRDA_CP_QRYRTNDTA, "QRYRTNDTA" },
- { DRDA_CP_QRYROWSET, "QRYROWSET" },
- { DRDA_CP_QRYATTSNS, "QRYATTSNS" },
- { DRDA_CP_QRYINSID, "QRYINSID" },
- { DRDA_CP_QRYCLSIMP, "QRYCLSIMP" },
- { DRDA_CP_QRYCLSRLS, "QRYCLSRLS" },
- { DRDA_CP_QRYOPTVAL, "QRYOPTVAL" },
- { DRDA_CP_DIAGLVL, "DIAGLVL" },
- { DRDA_CP_ACCRDBRM, "ACCRDBRM" },
- { DRDA_CP_QRYNOPRM, "QRYNOPRM" },
- { DRDA_CP_RDBNACRM, "RDBNACRM" },
- { DRDA_CP_OPNQRYRM, "OPNQRYRM" },
- { DRDA_CP_PKGBNARM, "PKGBNARM" },
- { DRDA_CP_RDBACCRM, "RDBACCRM" },
- { DRDA_CP_BGNBNDRM, "BGNBNDRM" },
- { DRDA_CP_PKGBPARM, "PKGBPARM" },
- { DRDA_CP_DSCINVRM, "DSCINVRM" },
- { DRDA_CP_ENDQRYRM, "ENDQRYRM" },
- { DRDA_CP_ENDUOWRM, "ENDUOWRM" },
- { DRDA_CP_ABNUOWRM, "ABNUOWRM" },
- { DRDA_CP_DTAMCHRM, "DTAMCHRM" },
- { DRDA_CP_QRYPOPRM, "QRYPOPRM" },
- { DRDA_CP_RDBNFNRM, "RDBNFNRM" },
- { DRDA_CP_OPNQFLRM, "OPNQFLRM" },
- { DRDA_CP_SQLERRRM, "SQLERRRM" },
- { DRDA_CP_RDBUPDRM, "RDBUPDRM" },
- { DRDA_CP_RSLSETRM, "RSLSETRM" },
- { DRDA_CP_RDBAFLRM, "RDBAFLRM" },
- { DRDA_CP_CMDVLTRM, "CMDVLTRM" },
- { DRDA_CP_CMMRQSRM, "CMMRQSRM" },
- { DRDA_CP_RDBATHRM, "RDBATHRM" },
- { DRDA_CP_SQLAM, "SQLAM" },
- { DRDA_CP_SQLCARD, "SQLCARD" },
- { DRDA_CP_SQLCINRD, "SQLCINRD" },
- { DRDA_CP_SQLRSLRD, "SQLRSLRD" },
- { DRDA_CP_RDB, "RDB" },
- { DRDA_CP_FRCFIXROW, "FRCFIXROW" },
- { DRDA_CP_SQLDARD, "SQLDARD" },
- { DRDA_CP_SQLDTA, "SQLDTA" },
- { DRDA_CP_SQLDTARD, "SQLDTARD" },
- { DRDA_CP_SQLSTT, "SQLSTT" },
- { DRDA_CP_OUTOVR, "OUTOVR" },
- { DRDA_CP_LMTBLKPRC, "LMTBLKPRC" },
- { DRDA_CP_FIXROWPRC, "FIXROWPRC" },
- { DRDA_CP_SQLSTTVRB, "SQLSTTVRB" },
- { DRDA_CP_QRYDSC, "QRYDSC" },
- { DRDA_CP_QRYDTA, "QRYDTA" },
- { DRDA_CP_SQLATTR, "SQLATTR" },
- { 0, NULL }
+ { DRDA_CP_DATA, "DATA" },
+ { DRDA_CP_CODPNT, "CODPNT" },
+ { DRDA_CP_FDODSC, "FDODSC" },
+ { DRDA_CP_TYPDEFNAM, "TYPDEFNAM" },
+ { DRDA_CP_TYPDEFOVR, "TYPDEFOVR" },
+ { DRDA_CP_CODPNTDR, "CODPNTDR" },
+ { DRDA_CP_EXCSAT, "EXCSAT" },
+ { DRDA_CP_SYNCCTL, "SYNCCTL" },
+ { DRDA_CP_SYNCRSY, "SYNCRSY" },
+ { DRDA_CP_ACCSEC, "ACCSEC" },
+ { DRDA_CP_SECCHK, "SECCHK" },
+ { DRDA_CP_SYNCLOG, "SYNCLOG" },
+ { DRDA_CP_RSCTYP, "RSCTYP" },
+ { DRDA_CP_RSNCOD, "RSNCOD" },
+ { DRDA_CP_RSCNAM, "RSCNAM" },
+ { DRDA_CP_PRDID, "PRDID" },
+ { DRDA_CP_PRCCNVCD, "PRCCNVCD" },
+ { DRDA_CP_VRSNAM, "VRSNAM" },
+ { DRDA_CP_SRVCLSNM, "SRVCLSNM" },
+ { DRDA_CP_SVRCOD, "SVRCOD" },
+ { DRDA_CP_SYNERRCD, "SYNERRCD" },
+ { DRDA_CP_SRVDGN, "SRVDGN" },
+ { DRDA_CP_SRVRLSLV, "SRVRLSLV" },
+ { DRDA_CP_SPVNAM, "SPVNAM" },
+ { DRDA_CP_EXTNAM, "EXTNAM" },
+ { DRDA_CP_SRVNAM, "SRVNAM" },
+ { DRDA_CP_SECMGRNM, "SECMGRNM" },
+ { DRDA_CP_DEPERRCD, "DEPERRCD" },
+ { DRDA_CP_CCSIDSBC, "CCSIDSBC" },
+ { DRDA_CP_CCSIDDBC, "CCSIDDBC" },
+ { DRDA_CP_CCSIDMBC, "CCSIDMBC" },
+ { DRDA_CP_USRID, "USRID" },
+ { DRDA_CP_PASSWORD, "PASSWORD" },
+ { DRDA_CP_SECMEC, "SECMEC" },
+ { DRDA_CP_SECCHKCD, "SECCHKCD" },
+ { DRDA_CP_SVCERRNO, "SVCERRNO" },
+ { DRDA_CP_SECTKN, "SECTKN" },
+ { DRDA_CP_NEWPASSWORD, "NEWPASSWORD" },
+ { DRDA_CP_MGRLVLRM, "MGRLVLRM" },
+ { DRDA_CP_MGRDEPRM, "MGRDEPRM" },
+ { DRDA_CP_SECCHKRM, "SECCHKRM" },
+ { DRDA_CP_CMDATHRM, "CMDATHRM" },
+ { DRDA_CP_AGNPRMRM, "AGNPRMRM" },
+ { DRDA_CP_RSCLMTRM, "RSCLMTRM" },
+ { DRDA_CP_PRCCNVRM, "PRCCNVRM" },
+ { DRDA_CP_CMDCMPRM, "CMDCMPRM" },
+ { DRDA_CP_SYNTAXRM, "SYNTAXRM" },
+ { DRDA_CP_CMDNSPRM, "CMDNSPRM" },
+ { DRDA_CP_PRMNSPRM, "PRMNSPRM" },
+ { DRDA_CP_VALNSPRM, "VALNSPRM" },
+ { DRDA_CP_OBJNSPRM, "OBJNSPRM" },
+ { DRDA_CP_CMDCHKRM, "CMDCHKRM" },
+ { DRDA_CP_TRGNSPRM, "TRGNSPRM" },
+ { DRDA_CP_AGENT, "AGENT" },
+ { DRDA_CP_MGRLVLLS, "MGRLVLLS" },
+ { DRDA_CP_SUPERVISOR, "SUPERVISOR" },
+ { DRDA_CP_SECMGR, "SECMGR" },
+ { DRDA_CP_EXCSATRD, "EXCSATRD" },
+ { DRDA_CP_CMNAPPC, "CMNAPPC" },
+ { DRDA_CP_DICTIONARY, "DICTIONARY" },
+ { DRDA_CP_MGRLVLN, "MGRLVLN" },
+ { DRDA_CP_CMNTCPIP, "CMNTCPIP" },
+ { DRDA_CP_FDODTA, "FDODTA" },
+ { DRDA_CP_CMNSYNCPT, "CMNSYNCPT" },
+ { DRDA_CP_ACCSECRD, "ACCSECRD" },
+ { DRDA_CP_SYNCPTMGR, "SYNCPTMGR" },
+ { DRDA_CP_RSYNCMGR, "RSYNCMGR" },
+ { DRDA_CP_CCSIDMGR, "CCSIDMGR" },
+ { DRDA_CP_MONITOR, "MONITOR" },
+ { DRDA_CP_MONITORRD, "MONITORRD" },
+ { DRDA_CP_XAMGR, "XAMGR" },
+ { DRDA_CP_ACCRDB, "ACCRDB" },
+ { DRDA_CP_BGNBND, "BGNBND" },
+ { DRDA_CP_BNDSQLSTT, "BNDSQLSTT" },
+ { DRDA_CP_CLSQRY, "CLSQRY" },
+ { DRDA_CP_CNTQRY, "CNTQRY" },
+ { DRDA_CP_DRPPKG, "DRPPKG" },
+ { DRDA_CP_DSCSQLSTT, "DSCSQLSTT" },
+ { DRDA_CP_ENDBND, "ENDBND" },
+ { DRDA_CP_EXCSQLIMM, "EXCSQLIMM" },
+ { DRDA_CP_EXCSQLSTT, "EXCSQLSTT" },
+ { DRDA_CP_OPNQRY, "OPNQRY" },
+ { DRDA_CP_PRPSQLSTT, "PRPSQLSTT" },
+ { DRDA_CP_RDBCMM, "RDBCMM" },
+ { DRDA_CP_RDBRLLBCK, "RDBRLLBCK" },
+ { DRDA_CP_REBIND, "REBIND" },
+ { DRDA_CP_DSCRDBTBL, "DSCRDBTBL" },
+ { DRDA_CP_EXCSQLSET, "EXCSQLSET" },
+ { DRDA_CP_DSCERRCD, "DSCERRCD" },
+ { DRDA_CP_QRYPRCTYP, "QRYPRCTYP" },
+ { DRDA_CP_RDBINTTKN, "RDBINTTKN" },
+ { DRDA_CP_PRDDTA, "PRDDTA" },
+ { DRDA_CP_RDBCMTOK, "RDBCMTOK" },
+ { DRDA_CP_RDBCOLID, "RDBCOLID" },
+ { DRDA_CP_PKGID, "PKGID" },
+ { DRDA_CP_PKGCNSTKN, "PKGCNSTKN" },
+ { DRDA_CP_RTNSETSTT, "RTNSETSTT" },
+ { DRDA_CP_RDBACCCL, "RDBACCCL" },
+ { DRDA_CP_RDBNAM, "RDBNAM" },
+ { DRDA_CP_OUTEXP, "OUTEXP" },
+ { DRDA_CP_PKGNAMCT, "PKGNAMCT" },
+ { DRDA_CP_PKGNAMCSN, "PKGNAMCSN" },
+ { DRDA_CP_QRYBLKSZ, "QRYBLKSZ" },
+ { DRDA_CP_UOWDSP, "UOWDSP" },
+ { DRDA_CP_RTNSQLDA, "RTNSQLDA" },
+ { DRDA_CP_RDBALWUPD, "RDBALWUPD" },
+ { DRDA_CP_SQLCSRHLD, "SQLCSRHLD" },
+ { DRDA_CP_STTSTRDEL, "STTSTRDEL" },
+ { DRDA_CP_STTDECDEL, "STTDECDEL" },
+ { DRDA_CP_PKGDFTCST, "PKGDFTCST" },
+ { DRDA_CP_QRYBLKCTL, "QRYBLKCTL" },
+ { DRDA_CP_CRRTKN, "CRRTKN" },
+ { DRDA_CP_PRCNAM, "PRCNAM" },
+ { DRDA_CP_PKGSNLST, "PKGSNLST" },
+ { DRDA_CP_NBRROW, "NBRROW" },
+ { DRDA_CP_TRGDFTRT, "TRGDFTRT" },
+ { DRDA_CP_QRYRELSCR, "QRYRELSCR" },
+ { DRDA_CP_QRYROWNBR, "QRYROWNBR" },
+ { DRDA_CP_QRYRFRTBL, "QRYRFRTBL" },
+ { DRDA_CP_MAXRSLCNT, "MAXRSLCNT" },
+ { DRDA_CP_MAXBLKEXT, "MAXBLKEXT" },
+ { DRDA_CP_RSLSETFLG, "RSLSETFLG" },
+ { DRDA_CP_TYPSQLDA, "TYPSQLDA" },
+ { DRDA_CP_OUTOVROPT, "OUTOVROPT" },
+ { DRDA_CP_RTNEXTDTA, "RTNEXTDTA" },
+ { DRDA_CP_QRYATTSCR, "QRYATTSCR" },
+ { DRDA_CP_QRYATTUPD, "QRYATTUPD" },
+ { DRDA_CP_QRYSCRORN, "QRYSCRORN" },
+ { DRDA_CP_QRYROWSNS, "QRYROWSNS" },
+ { DRDA_CP_QRYBLKRST, "QRYBLKRST" },
+ { DRDA_CP_QRYRTNDTA, "QRYRTNDTA" },
+ { DRDA_CP_QRYROWSET, "QRYROWSET" },
+ { DRDA_CP_QRYATTSNS, "QRYATTSNS" },
+ { DRDA_CP_QRYINSID, "QRYINSID" },
+ { DRDA_CP_QRYCLSIMP, "QRYCLSIMP" },
+ { DRDA_CP_QRYCLSRLS, "QRYCLSRLS" },
+ { DRDA_CP_QRYOPTVAL, "QRYOPTVAL" },
+ { DRDA_CP_DIAGLVL, "DIAGLVL" },
+ { DRDA_CP_ACCRDBRM, "ACCRDBRM" },
+ { DRDA_CP_QRYNOPRM, "QRYNOPRM" },
+ { DRDA_CP_RDBNACRM, "RDBNACRM" },
+ { DRDA_CP_OPNQRYRM, "OPNQRYRM" },
+ { DRDA_CP_PKGBNARM, "PKGBNARM" },
+ { DRDA_CP_RDBACCRM, "RDBACCRM" },
+ { DRDA_CP_BGNBNDRM, "BGNBNDRM" },
+ { DRDA_CP_PKGBPARM, "PKGBPARM" },
+ { DRDA_CP_DSCINVRM, "DSCINVRM" },
+ { DRDA_CP_ENDQRYRM, "ENDQRYRM" },
+ { DRDA_CP_ENDUOWRM, "ENDUOWRM" },
+ { DRDA_CP_ABNUOWRM, "ABNUOWRM" },
+ { DRDA_CP_DTAMCHRM, "DTAMCHRM" },
+ { DRDA_CP_QRYPOPRM, "QRYPOPRM" },
+ { DRDA_CP_RDBNFNRM, "RDBNFNRM" },
+ { DRDA_CP_OPNQFLRM, "OPNQFLRM" },
+ { DRDA_CP_SQLERRRM, "SQLERRRM" },
+ { DRDA_CP_RDBUPDRM, "RDBUPDRM" },
+ { DRDA_CP_RSLSETRM, "RSLSETRM" },
+ { DRDA_CP_RDBAFLRM, "RDBAFLRM" },
+ { DRDA_CP_CMDVLTRM, "CMDVLTRM" },
+ { DRDA_CP_CMMRQSRM, "CMMRQSRM" },
+ { DRDA_CP_RDBATHRM, "RDBATHRM" },
+ { DRDA_CP_SQLAM, "SQLAM" },
+ { DRDA_CP_SQLCARD, "SQLCARD" },
+ { DRDA_CP_SQLCINRD, "SQLCINRD" },
+ { DRDA_CP_SQLRSLRD, "SQLRSLRD" },
+ { DRDA_CP_RDB, "RDB" },
+ { DRDA_CP_FRCFIXROW, "FRCFIXROW" },
+ { DRDA_CP_SQLDARD, "SQLDARD" },
+ { DRDA_CP_SQLDTA, "SQLDTA" },
+ { DRDA_CP_SQLDTARD, "SQLDTARD" },
+ { DRDA_CP_SQLSTT, "SQLSTT" },
+ { DRDA_CP_OUTOVR, "OUTOVR" },
+ { DRDA_CP_LMTBLKPRC, "LMTBLKPRC" },
+ { DRDA_CP_FIXROWPRC, "FIXROWPRC" },
+ { DRDA_CP_SQLSTTVRB, "SQLSTTVRB" },
+ { DRDA_CP_QRYDSC, "QRYDSC" },
+ { DRDA_CP_QRYDTA, "QRYDTA" },
+ { DRDA_CP_SQLATTR, "SQLATTR" },
+ { 0, NULL }
};
-
static value_string_ext drda_opcode_abbr_ext = VALUE_STRING_EXT_INIT(drda_opcode_abbr);
static const value_string drda_dsstyp_abbr[] = {
- { DRDA_DSSFMT_RQSDSS, "RQSDSS" },
- { DRDA_DSSFMT_RPYDSS, "RPYDSS" },
- { DRDA_DSSFMT_OBJDSS, "OBJDSS" },
- { DRDA_DSSFMT_CMNDSS, "CMNDSS" },
- { DRDA_DSSFMT_NORPYDSS, "NORPYDSS" },
- { 0, NULL }
+ { DRDA_DSSFMT_RQSDSS, "RQSDSS" },
+ { DRDA_DSSFMT_RPYDSS, "RPYDSS" },
+ { DRDA_DSSFMT_OBJDSS, "OBJDSS" },
+ { DRDA_DSSFMT_CMNDSS, "CMNDSS" },
+ { DRDA_DSSFMT_NORPYDSS, "NORPYDSS" },
+ { 0, NULL }
};
static guint iPreviousFrameNumber = 0;
@@ -666,245 +664,283 @@ static guint iPreviousFrameNumber = 0;
static void
drda_init(void)
{
- iPreviousFrameNumber = 0;
+ iPreviousFrameNumber = 0;
}
static void
dissect_drda(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- gint offset = 0;
-
- guint16 iCommand;
- guint16 iLength;
- guint16 iCommandEnd = 0;
-
- guint8 iFormatFlags;
- guint8 iDSSType;
- guint8 iDSSFlags;
-
- guint16 iParameterCP;
- gint iLengthParam;
-
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DRDA");
- /* This is a trick to know whether this is the first PDU in this packet or not */
- if (iPreviousFrameNumber != pinfo->fd->num)
- col_clear(pinfo->cinfo, COL_INFO);
- else
- col_append_str(pinfo->cinfo, COL_INFO, " | ");
-
- iPreviousFrameNumber = pinfo->fd->num;
- /* There may be multiple DRDA commands in one frame */
- while ((guint) (offset + 10) <= tvb_length(tvb))
- {
- iCommand = tvb_get_ntohs(tvb, offset + 8);
- iLength = tvb_get_ntohs(tvb, offset + 0);
- /* iCommandEnd is the length of the packet up to the end of the current command */
- iCommandEnd += iLength;
-
- if (offset > 0)
- col_append_str(pinfo->cinfo, COL_INFO, " | ");
- col_append_str(pinfo->cinfo, COL_INFO, val_to_str_ext(iCommand, &drda_opcode_abbr_ext, "Unknown (0x%02x)"));
-
- if (tree)
- {
- proto_tree *drda_tree;
- proto_tree *drdaroot_tree;
- proto_tree *drda_tree_sub;
- proto_item *ti;
-
- ti = proto_tree_add_item(tree, proto_drda, tvb, offset, -1, ENC_NA);
- proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_vals_ext, "Unknown (0x%02x)"));
- drdaroot_tree = proto_item_add_subtree(ti, ett_drda);
-
- ti = proto_tree_add_text(drdaroot_tree, tvb, offset, 10, DRDA_TEXT_DDM);
- proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_abbr_ext, "Unknown (0x%02x)"));
- drda_tree = proto_item_add_subtree(ti, ett_drda_ddm);
-
- proto_tree_add_item(drda_tree, hf_drda_ddm_length, tvb, offset + 0, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(drda_tree, hf_drda_ddm_magic, tvb, offset + 2, 1, ENC_BIG_ENDIAN);
-
- iFormatFlags = tvb_get_guint8(tvb, offset + 3);
- iDSSType = iFormatFlags & 0x0F;
- iDSSFlags = iFormatFlags >> 4;
-
- ti = proto_tree_add_item(drda_tree, hf_drda_ddm_format, tvb, offset + 3, 1, ENC_BIG_ENDIAN);
- drda_tree_sub = proto_item_add_subtree(ti, ett_drda_ddm_format);
-
- proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_reserved, tvb, offset + 3, 1, iDSSFlags);
- proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_chained, tvb, offset + 3, 1, iDSSFlags);
- proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_errcont, tvb, offset + 3, 1, iDSSFlags);
- proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_samecorr, tvb, offset + 3, 1, iDSSFlags);
- proto_tree_add_uint(drda_tree_sub, hf_drda_ddm_fmt_dsstyp, tvb, offset + 3, 1, iDSSType);
-
- proto_tree_add_item(drda_tree, hf_drda_ddm_rc, tvb, offset + 4, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(drda_tree, hf_drda_ddm_length2, tvb, offset + 6, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(drda_tree, hf_drda_ddm_codepoint, tvb, offset + 8, 2, ENC_BIG_ENDIAN);
-
- /* The number of attributes is variable */
- for (offset += 10; offset < iCommandEnd; )
- {
- if (tvb_length_remaining(tvb, offset) >= 2)
- {
- iLengthParam = tvb_get_ntohs(tvb, offset + 0);
- if (iLengthParam == 0 || iLengthParam == 1) iLengthParam = iLength - 10;
- if (tvb_length_remaining(tvb, offset) >= iLengthParam)
- {
- iParameterCP = tvb_get_ntohs(tvb, offset + 2);
- ti = proto_tree_add_text(drdaroot_tree, tvb, offset, iLengthParam, DRDA_TEXT_PARAM);
- proto_item_append_text(ti, " (%s)", val_to_str_ext(iParameterCP, &drda_opcode_vals_ext, "Unknown (0x%02x)"));
- drda_tree_sub = proto_item_add_subtree(ti, ett_drda_param);
- proto_tree_add_item(drda_tree_sub, hf_drda_param_length, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(drda_tree_sub, hf_drda_param_codepoint, tvb, offset + 2, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(drda_tree_sub, hf_drda_param_data, tvb, offset + 4, iLengthParam - 4, ENC_UTF_8|ENC_NA);
- proto_tree_add_item(drda_tree_sub, hf_drda_param_data_ebcdic, tvb, offset + 4, iLengthParam - 4, ENC_EBCDIC|ENC_NA);
- if (iCommand == DRDA_CP_SQLSTT)
- {
- /* Extract SQL statement from packet */
- tvbuff_t* next_tvb = NULL;
- next_tvb = tvb_new_subset(tvb, offset + 4, iLengthParam - 4, iLengthParam - 4);
- add_new_data_source(pinfo, next_tvb, "SQL statement");
- proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement, next_tvb, 0, iLengthParam - 5, ENC_UTF_8|ENC_NA);
- proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement_ebcdic, next_tvb, 0, iLengthParam - 4, ENC_EBCDIC|ENC_NA);
- }
- }
- offset += iLengthParam;
- }
- else
- {
- break;
- }
- }
- }
- else
- {
- /* No tree, advance directly to next command */
- offset += iLength;
- }
- }
+ gint offset = 0;
+
+ guint16 iCommand;
+ guint16 iLength;
+ guint16 iCommandEnd = 0;
+
+ guint8 iFormatFlags;
+ guint8 iDSSType;
+ guint8 iDSSFlags;
+
+ guint16 iParameterCP;
+ gint iLengthParam;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "DRDA");
+ /* This is a trick to know whether this is the first PDU in this packet or not */
+ if (iPreviousFrameNumber != pinfo->fd->num)
+ col_clear(pinfo->cinfo, COL_INFO);
+ else
+ col_append_str(pinfo->cinfo, COL_INFO, " | ");
+
+ iPreviousFrameNumber = pinfo->fd->num;
+ /* There may be multiple DRDA commands in one frame */
+ while ((guint) (offset + 10) <= tvb_length(tvb))
+ {
+ iCommand = tvb_get_ntohs(tvb, offset + 8);
+ iLength = tvb_get_ntohs(tvb, offset + 0);
+ /* iCommandEnd is the length of the packet up to the end of the current command */
+ iCommandEnd += iLength;
+
+ if (offset > 0)
+ col_append_str(pinfo->cinfo, COL_INFO, " | ");
+ col_append_str(pinfo->cinfo, COL_INFO, val_to_str_ext(iCommand, &drda_opcode_abbr_ext, "Unknown (0x%02x)"));
+
+ if (tree)
+ {
+ proto_tree *drda_tree;
+ proto_tree *drdaroot_tree;
+ proto_tree *drda_tree_sub;
+ proto_item *ti;
+
+ ti = proto_tree_add_item(tree, proto_drda, tvb, offset, -1, ENC_NA);
+ proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_vals_ext, "Unknown (0x%02x)"));
+ drdaroot_tree = proto_item_add_subtree(ti, ett_drda);
+
+ ti = proto_tree_add_text(drdaroot_tree, tvb, offset, 10, DRDA_TEXT_DDM);
+ proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_abbr_ext, "Unknown (0x%02x)"));
+ drda_tree = proto_item_add_subtree(ti, ett_drda_ddm);
+
+ proto_tree_add_item(drda_tree, hf_drda_ddm_length, tvb, offset + 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(drda_tree, hf_drda_ddm_magic, tvb, offset + 2, 1, ENC_BIG_ENDIAN);
+
+ iFormatFlags = tvb_get_guint8(tvb, offset + 3);
+ iDSSType = iFormatFlags & 0x0F;
+ iDSSFlags = iFormatFlags >> 4;
+
+ ti = proto_tree_add_item(drda_tree, hf_drda_ddm_format, tvb, offset + 3, 1, ENC_BIG_ENDIAN);
+ drda_tree_sub = proto_item_add_subtree(ti, ett_drda_ddm_format);
+
+ proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_reserved, tvb, offset + 3, 1, iDSSFlags);
+ proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_chained, tvb, offset + 3, 1, iDSSFlags);
+ proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_errcont, tvb, offset + 3, 1, iDSSFlags);
+ proto_tree_add_boolean(drda_tree_sub, hf_drda_ddm_fmt_samecorr, tvb, offset + 3, 1, iDSSFlags);
+ proto_tree_add_uint(drda_tree_sub, hf_drda_ddm_fmt_dsstyp, tvb, offset + 3, 1, iDSSType);
+
+ proto_tree_add_item(drda_tree, hf_drda_ddm_rc, tvb, offset + 4, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(drda_tree, hf_drda_ddm_length2, tvb, offset + 6, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(drda_tree, hf_drda_ddm_codepoint, tvb, offset + 8, 2, ENC_BIG_ENDIAN);
+
+ /* The number of attributes is variable */
+ for (offset += 10; offset < iCommandEnd; )
+ {
+ if (tvb_length_remaining(tvb, offset) >= 2)
+ {
+ iLengthParam = tvb_get_ntohs(tvb, offset + 0);
+ if (iLengthParam == 0 || iLengthParam == 1) iLengthParam = iLength - 10;
+ if (tvb_length_remaining(tvb, offset) >= iLengthParam)
+ {
+ iParameterCP = tvb_get_ntohs(tvb, offset + 2);
+ ti = proto_tree_add_text(drdaroot_tree, tvb, offset, iLengthParam,
+ DRDA_TEXT_PARAM);
+ proto_item_append_text(ti, " (%s)", val_to_str_ext(iParameterCP, &drda_opcode_vals_ext, "Unknown (0x%02x)"));
+ drda_tree_sub = proto_item_add_subtree(ti, ett_drda_param);
+ proto_tree_add_item(drda_tree_sub, hf_drda_param_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(drda_tree_sub, hf_drda_param_codepoint, tvb, offset + 2, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(drda_tree_sub, hf_drda_param_data, tvb, offset + 4, iLengthParam - 4, ENC_UTF_8|ENC_NA);
+ proto_tree_add_item(drda_tree_sub, hf_drda_param_data_ebcdic, tvb, offset + 4, iLengthParam - 4, ENC_EBCDIC|ENC_NA);
+ if (iCommand == DRDA_CP_SQLSTT)
+ {
+ /* Extract SQL statement from packet */
+ tvbuff_t* next_tvb = NULL;
+ next_tvb = tvb_new_subset(tvb, offset + 4, iLengthParam - 4, iLengthParam - 4);
+ add_new_data_source(pinfo, next_tvb, "SQL statement");
+ proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement, next_tvb, 0, iLengthParam - 5, ENC_UTF_8|ENC_NA);
+ proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement_ebcdic, next_tvb, 0, iLengthParam - 4, ENC_EBCDIC|ENC_NA);
+ }
+ }
+ offset += iLengthParam;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+ else
+ {
+ /* No tree, advance directly to next command */
+ offset += iLength;
+ }
+ }
}
static guint
get_drda_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
{
- if (tvb_length_remaining(tvb, offset) >= 10)
- {
- return (tvb_get_ntohs(tvb, offset));
- }
- return 0;
+ if (tvb_length_remaining(tvb, offset) >= 10)
+ {
+ return (tvb_get_ntohs(tvb, offset));
+ }
+ return 0;
}
static void
dissect_drda_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- tcp_dissect_pdus(tvb, pinfo, tree, drda_desegment, 10, get_drda_pdu_len, dissect_drda);
+ tcp_dissect_pdus(tvb, pinfo, tree, drda_desegment, 10, get_drda_pdu_len, dissect_drda);
}
static gboolean
dissect_drda_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- conversation_t * conversation;
- if (tvb_length(tvb) >= 10)
- {
- /* The first header is 6 bytes long, so the length in the second header should 6 bytes less */
- guint16 cOuterLength, cInnerLength;
- cOuterLength = tvb_get_ntohs(tvb, 0);
- cInnerLength = tvb_get_ntohs(tvb, 6);
- if ((tvb_get_guint8(tvb, 2) == DRDA_MAGIC) && ((cOuterLength - cInnerLength) == 6))
- {
- /* Register this dissector for this conversation */
- conversation = find_or_create_conversation(pinfo);
- conversation_set_dissector(conversation, drda_tcp_handle);
-
- /* Dissect the packet */
- dissect_drda(tvb, pinfo, tree);
- return TRUE;
- }
- }
- return FALSE;
+ conversation_t * conversation;
+ if (tvb_length(tvb) >= 10)
+ {
+ /* The first header is 6 bytes long, so the length in the second header should 6 bytes less */
+ guint16 cOuterLength, cInnerLength;
+ cOuterLength = tvb_get_ntohs(tvb, 0);
+ cInnerLength = tvb_get_ntohs(tvb, 6);
+ if ((tvb_get_guint8(tvb, 2) == DRDA_MAGIC) && ((cOuterLength - cInnerLength) == 6))
+ {
+ /* Register this dissector for this conversation */
+ conversation = find_or_create_conversation(pinfo);
+ conversation_set_dissector(conversation, drda_tcp_handle);
+
+ /* Dissect the packet */
+ dissect_drda(tvb, pinfo, tree);
+ return TRUE;
+ }
+ }
+ return FALSE;
}
void
proto_register_drda(void)
{
- static hf_register_info hf[] = {
- { &hf_drda_ddm_length,
- { "Length", "drda.ddm.length", FT_UINT16, BASE_DEC, NULL, 0x0, "DDM length", HFILL }},
-
- { &hf_drda_ddm_magic,
- { "Magic", "drda.ddm.ddmid", FT_UINT8, BASE_HEX, NULL, 0x0, "DDM magic", HFILL }},
-
- { &hf_drda_ddm_format,
- { "Format", "drda.ddm.format", FT_UINT8, BASE_HEX, NULL, 0x0, "DDM format", HFILL }},
-
- { &hf_drda_ddm_fmt_reserved,
- { "Reserved", "drda.ddm.fmt.bit0", FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_RESERVED, "DSSFMT reserved", HFILL }},
-
- { &hf_drda_ddm_fmt_chained,
- { "Chained", "drda.ddm.fmt.bit1", FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_CHAINED, "DSSFMT chained", HFILL }},
-
- { &hf_drda_ddm_fmt_errcont,
- { "Continue", "drda.ddm.fmt.bit2", FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_CONTINUE, "DSSFMT continue on error", HFILL }},
-
- { &hf_drda_ddm_fmt_samecorr,
- { "Same correlation", "drda.ddm.fmt.bit3", FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_SAME_CORR, "DSSFMT same correlation", HFILL }},
-
- { &hf_drda_ddm_fmt_dsstyp,
- { "DSS type", "drda.ddm.fmt.dsstyp", FT_UINT8, BASE_DEC, VALS(drda_dsstyp_abbr), 0x0, "DSSFMT type", HFILL }},
-
- { &hf_drda_ddm_rc,
- { "CorrelId", "drda.ddm.rqscrr", FT_UINT16, BASE_DEC, NULL, 0x0, "DDM correlation identifier", HFILL }},
-
- { &hf_drda_ddm_length2,
- { "Length2", "drda.ddm.length2", FT_UINT16, BASE_DEC, NULL, 0x0, "DDM length2", HFILL }},
-
- { &hf_drda_ddm_codepoint,
- { "Code point", "drda.ddm.codepoint", FT_UINT16, BASE_HEX|BASE_EXT_STRING, &drda_opcode_abbr_ext, 0x0, "DDM code point", HFILL }},
-
- { &hf_drda_param_length,
- { "Length", "drda.param.length", FT_UINT16, BASE_DEC, NULL, 0x0, "Param length", HFILL }},
-
- { &hf_drda_param_codepoint,
- { "Code point", "drda.param.codepoint", FT_UINT16, BASE_HEX|BASE_EXT_STRING, &drda_opcode_abbr_ext, 0x0, "Param code point", HFILL }},
-
- { &hf_drda_param_data,
- { "Data (ASCII)", "drda.param.data", FT_STRING, BASE_NONE, NULL, 0x0, "Param data left as ASCII for display", HFILL }},
-
- { &hf_drda_param_data_ebcdic,
- { "Data (EBCDIC)", "drda.param.data.ebcdic", FT_STRING, BASE_NONE, NULL, 0x0, "Param data converted from EBCDIC to ASCII for display", HFILL }},
-
- { &hf_drda_sqlstatement,
- { "SQL statement (ASCII)", "drda.sqlstatement", FT_STRING, BASE_NONE, NULL, 0x0, "SQL statement left as ASCII for display", HFILL }},
-
- { &hf_drda_sqlstatement_ebcdic,
- { "SQL statement (EBCDIC)", "drda.sqlstatement.ebcdic", FT_STRING, BASE_NONE, NULL, 0x0, "SQL statement converted from EBCDIC to ASCII for display", HFILL }}
-
- };
- static gint *ett[] = {
- &ett_drda,
- &ett_drda_ddm,
- &ett_drda_ddm_format,
- &ett_drda_param
- };
-
- module_t *drda_module;
-
- proto_drda = proto_register_protocol("DRDA", "DRDA", "drda");
- proto_register_field_array(proto_drda, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
-
- drda_module = prefs_register_protocol(proto_drda, NULL);
- prefs_register_bool_preference(drda_module, "desegment",
- "Reassemble DRDA messages spanning multiple TCP segments",
- "Whether the DRDA dissector should reassemble messages spanning multiple TCP segments."
- " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
- &drda_desegment);
- register_init_routine(&drda_init);
+ static hf_register_info hf[] = {
+ { &hf_drda_ddm_length,
+ { "Length", "drda.ddm.length",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "DDM length", HFILL }},
+
+ { &hf_drda_ddm_magic,
+ { "Magic", "drda.ddm.ddmid",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ "DDM magic", HFILL }},
+
+ { &hf_drda_ddm_format,
+ { "Format", "drda.ddm.format",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ "DDM format", HFILL }},
+
+ { &hf_drda_ddm_fmt_reserved,
+ { "Reserved", "drda.ddm.fmt.bit0",
+ FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_RESERVED,
+ "DSSFMT reserved", HFILL }},
+
+ { &hf_drda_ddm_fmt_chained,
+ { "Chained", "drda.ddm.fmt.bit1",
+ FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_CHAINED,
+ "DSSFMT chained", HFILL }},
+
+ { &hf_drda_ddm_fmt_errcont,
+ { "Continue", "drda.ddm.fmt.bit2",
+ FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_CONTINUE,
+ "DSSFMT continue on error", HFILL }},
+
+ { &hf_drda_ddm_fmt_samecorr,
+ { "Same correlation", "drda.ddm.fmt.bit3",
+ FT_BOOLEAN, 4, TFS(&tfs_set_notset), DRDA_DSSFMT_SAME_CORR,
+ "DSSFMT same correlation", HFILL }},
+
+ { &hf_drda_ddm_fmt_dsstyp,
+ { "DSS type", "drda.ddm.fmt.dsstyp",
+ FT_UINT8, BASE_DEC, VALS(drda_dsstyp_abbr), 0x0,
+ "DSSFMT type", HFILL }},
+
+ { &hf_drda_ddm_rc,
+ { "CorrelId", "drda.ddm.rqscrr",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "DDM correlation identifier", HFILL }},
+
+ { &hf_drda_ddm_length2,
+ { "Length2", "drda.ddm.length2",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "DDM length2", HFILL }},
+
+ { &hf_drda_ddm_codepoint,
+ { "Code point", "drda.ddm.codepoint",
+ FT_UINT16, BASE_HEX|BASE_EXT_STRING, &drda_opcode_abbr_ext, 0x0,
+ "DDM code point", HFILL }},
+
+ { &hf_drda_param_length,
+ { "Length", "drda.param.length",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "Param length", HFILL }},
+
+ { &hf_drda_param_codepoint,
+ { "Code point", "drda.param.codepoint",
+ FT_UINT16, BASE_HEX|BASE_EXT_STRING, &drda_opcode_abbr_ext, 0x0,
+ "Param code point", HFILL }},
+
+ { &hf_drda_param_data,
+ { "Data (ASCII)", "drda.param.data",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Param data left as ASCII for display", HFILL }},
+
+ { &hf_drda_param_data_ebcdic,
+ { "Data (EBCDIC)", "drda.param.data.ebcdic",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Param data converted from EBCDIC to ASCII for display", HFILL }},
+
+ { &hf_drda_sqlstatement,
+ { "SQL statement (ASCII)", "drda.sqlstatement",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "SQL statement left as ASCII for display", HFILL }},
+
+ { &hf_drda_sqlstatement_ebcdic,
+ { "SQL statement (EBCDIC)", "drda.sqlstatement.ebcdic",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "SQL statement converted from EBCDIC to ASCII for display", HFILL }}
+
+ };
+ static gint *ett[] = {
+ &ett_drda,
+ &ett_drda_ddm,
+ &ett_drda_ddm_format,
+ &ett_drda_param
+ };
+
+ module_t *drda_module;
+
+ proto_drda = proto_register_protocol("DRDA", "DRDA", "drda");
+ proto_register_field_array(proto_drda, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ drda_module = prefs_register_protocol(proto_drda, NULL);
+ prefs_register_bool_preference(drda_module, "desegment",
+ "Reassemble DRDA messages spanning multiple TCP segments",
+ "Whether the DRDA dissector should reassemble messages spanning"
+ " multiple TCP segments."
+ " To use this option, you must also enable"
+ " \"Allow subdissectors to reassemble TCP streams\""
+ " in the TCP protocol settings.",
+ &drda_desegment);
+ register_init_routine(&drda_init);
}
void
proto_reg_handoff_drda(void)
{
- heur_dissector_add("tcp", dissect_drda_heur, proto_drda);
- drda_tcp_handle = create_dissector_handle(dissect_drda_tcp, proto_drda);
+ heur_dissector_add("tcp", dissect_drda_heur, proto_drda);
+ drda_tcp_handle = create_dissector_handle(dissect_drda_tcp, proto_drda);
}