protected NetSqlca parseSQLCARD(Sqlca[] rowsetSqlca) throws DisconnectException { parseLengthAndMatchCodePoint(CodePoint.SQLCARD); int ddmLength = getDdmLength(); ensureBLayerDataInBuffer(ddmLength); NetSqlca netSqlca = parseSQLCARDrow(rowsetSqlca); adjustLengths(getDdmLength()); return netSqlca; } //--------------------------parse FDOCA objects------------------------
void parseSYNCCTLError(int peekCP) throws DisconnectException { switch (peekCP) { case CodePoint.CMDCHKRM: parseCMDCHKRM(); break; case CodePoint.PRCCNVRM: parsePRCCNVRM(); break; case CodePoint.SYNTAXRM: parseSYNTAXRM(); break; case CodePoint.VALNSPRM: parseVALNSPRM(); break; default: doObjnsprmSemantics(peekCP); } }
protected boolean checkAndGetReceivedFlag(boolean receivedFlag) throws DisconnectException { if (receivedFlag) { // this method will throw a disconnect exception if // the received flag is already true; doSyntaxrmSemantics(CodePoint.SYNERRCD_DUP_OBJ_PRESENT); } return true; }
protected int parsePRCCNVCD() throws DisconnectException { parseLengthAndMatchCodePoint(CodePoint.PRCCNVCD); int prccnvcd = readUnsignedByte(); if ((prccnvcd != 0x01) && (prccnvcd != 0x02) && (prccnvcd != 0x03) && (prccnvcd != 0x04) && (prccnvcd != 0x05) && (prccnvcd != 0x06) && (prccnvcd != 0x10) && (prccnvcd != 0x11) && (prccnvcd != 0x12) && (prccnvcd != 0x13) && (prccnvcd != 0x15)) { doValnsprmSemantics(CodePoint.PRCCNVCD, prccnvcd); } return prccnvcd; }
protected int parseSVRCOD(int minSvrcod, int maxSvrcod) throws DisconnectException { parseLengthAndMatchCodePoint(CodePoint.SVRCOD); int svrcod = readUnsignedShort(); if ((svrcod != CodePoint.SVRCOD_INFO) && (svrcod != CodePoint.SVRCOD_WARNING) && (svrcod != CodePoint.SVRCOD_ERROR) && (svrcod != CodePoint.SVRCOD_SEVERE) && (svrcod != CodePoint.SVRCOD_ACCDMG) && (svrcod != CodePoint.SVRCOD_PRMDMG) && (svrcod != CodePoint.SVRCOD_SESDMG)) { doValnsprmSemantics(CodePoint.SVRCOD, svrcod); } if (svrcod < minSvrcod || svrcod > maxSvrcod) { doValnsprmSemantics(CodePoint.SVRCOD, svrcod); } return svrcod; }
private void parseRDBAFLRM() throws DisconnectException { boolean svrcodReceived = false; int svrcod = CodePoint.SVRCOD_INFO; boolean rdbnamReceived = false; String rdbnam = null; parseLengthAndMatchCodePoint(CodePoint.RDBAFLRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); while (peekCP != Reply.END_OF_COLLECTION) { boolean foundInPass = false; if (peekCP == CodePoint.SVRCOD) { foundInPass = true; svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_ERROR, CodePoint.SVRCOD_ERROR); peekCP = peekCodePoint(); } if (peekCP == CodePoint.RDBNAM) { foundInPass = true; rdbnamReceived = checkAndGetReceivedFlag(rdbnamReceived); rdbnam = parseRDBNAM(true); peekCP = peekCodePoint(); } if (!foundInPass) { doPrmnsprmSemantics(peekCP); } } popCollectionStack(); checkRequiredObjects(svrcodReceived, rdbnamReceived); netAgent_.setSvrcod(svrcod); }
parseLengthAndMatchCodePoint(CodePoint.EXCSATRD); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); extnamReceived = checkAndGetReceivedFlag(extnamReceived); extnam = parseEXTNAM(); peekCP = peekCodePoint(); mgrlvllsReceived = checkAndGetReceivedFlag(mgrlvllsReceived); parseMGRLVLLS(netConnection); // need to review this one, check input and output peekCP = peekCodePoint(); srvclsnmReceived = checkAndGetReceivedFlag(srvclsnmReceived); srvclsnm = parseSRVCLSNM(); peekCP = peekCodePoint(); srvnamReceived = checkAndGetReceivedFlag(srvnamReceived); srvnam = parseSRVNAM(); peekCP = peekCodePoint(); srvrlslvReceived = checkAndGetReceivedFlag(srvrlslvReceived); srvrlslv = parseSRVRLSLV(); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP); popCollectionStack();
byte[] sectkn = null; parseLengthAndMatchCodePoint(CodePoint.SECCHKRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_INFO, CodePoint.SVRCOD_SEVERE); peekCP = peekCodePoint(); secchkcdReceived = checkAndGetReceivedFlag(secchkcdReceived); secchkcd = parseSECCHKCD(); peekCP = peekCodePoint(); sectknReceived = checkAndGetReceivedFlag(sectknReceived); sectkn = parseSECTKN(true); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP); popCollectionStack(); checkRequiredObjects(svrcodReceived, secchkcdReceived);
parseLengthAndMatchCodePoint(CodePoint.MGRLVLRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_ERROR, CodePoint.SVRCOD_ERROR); peekCP = peekCodePoint(); mgrlvllsReceived = checkAndGetReceivedFlag(mgrlvllsReceived); parseLengthAndMatchCodePoint(CodePoint.MGRLVLLS); int managerListLength = getDdmLength(); if ((managerListLength == 0) || ((managerListLength % 7) != 0)) { doSyntaxrmSemantics(CodePoint.SYNERRCD_OBJ_LEN_NOT_ALLOWED); managerLevel = new int[managerCount]; for (int i = 0; i < managerCount; i++) { managerCodePoint[i] = parseCODPNTDR(); managerLevel[i] = parseMGRLVLN(); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP); popCollectionStack(); checkRequiredObjects(svrcodReceived, mgrlvllsReceived); doMgrlvlrmSemantics(managerCodePoint, managerLevel);
parseLengthAndMatchCodePoint(CodePoint.ACCRDBRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_INFO, CodePoint.SVRCOD_WARNING); peekCP = peekCodePoint(); prdidReceived = checkAndGetReceivedFlag(prdidReceived); prdid = parsePRDID(false); // false means do not skip the bytes peekCP = peekCodePoint(); typdefnamReceived = checkAndGetReceivedFlag(typdefnamReceived); parseTYPDEFNAM(); peekCP = peekCodePoint(); typdefovrReceived = checkAndGetReceivedFlag(typdefovrReceived); parseTYPDEFOVR(); peekCP = peekCodePoint(); usridReceived = checkAndGetReceivedFlag(usridReceived); usrid = parseUSRID(true); peekCP = peekCodePoint(); crrtknReceived = checkAndGetReceivedFlag(crrtknReceived); crrtkn = parseCRRTKN(false); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP);
if (peekCodePoint() != CodePoint.PBSD) { return; parseLengthAndMatchCodePoint(CodePoint.PBSD); int peekCP = peekCodePoint(); while (peekCP != END_OF_SAME_ID_CHAIN) { parseLengthAndMatchCodePoint(peekCP); switch (peekCP) { case CodePoint.PBSD_ISO: netAgent_.netConnection_. completeInitialPiggyBackIsolation(readUnsignedByte()); break; case CodePoint.PBSD_SCHEMA: netAgent_.netConnection_. completeInitialPiggyBackSchema (readString(getDdmLength(), "UTF-8")); break; short serverOrdinal = readShort(); Version v; try { break; case CodePoint.PBSD_TXID: int hasTxId = readUnsignedByte(); if (hasTxId == 1) { completePiggyBackTxId(readLong(), readLong()); parseCommonError(peekCP);
parseLengthAndMatchCodePoint(CodePoint.ENDUOWRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_WARNING, CodePoint.SVRCOD_WARNING); peekCP = peekCodePoint(); uowdspReceived = checkAndGetReceivedFlag(uowdspReceived); uowdsp = parseUOWDSP(); int txdata = readByte(); if (txdata == ClientSharedData.CLIENT_TXID_WRITTEN) { long memberId = readLong(); long uniqueId = readLong(); netAgent_.netConnection_.setTXID(memberId, uniqueId); peekCP = peekCodePoint(); rdbnamReceived = checkAndGetReceivedFlag(rdbnamReceived); rdbnam = parseRDBNAM(true); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP); popCollectionStack(); checkRequiredObjects(svrcodReceived, uowdspReceived);
void parseTYPDEFOVR() throws DisconnectException { parseLengthAndMatchCodePoint(CodePoint.TYPDEFOVR); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); while (peekCP != Reply.END_OF_COLLECTION) { boolean foundInPass = false; if (peekCP == CodePoint.CCSIDSBC) { foundInPass = true; netAgent_.targetTypdef_.setCcsidSbc(parseCCSIDSBC()); peekCP = peekCodePoint(); } if (peekCP == CodePoint.CCSIDDBC) { foundInPass = true; netAgent_.targetTypdef_.setCcsidDbc(parseCCSIDDBC()); peekCP = peekCodePoint(); } if (peekCP == CodePoint.CCSIDMBC) { foundInPass = true; netAgent_.targetTypdef_.setCcsidMbc(parseCCSIDMBC()); peekCP = peekCodePoint(); } if (!foundInPass) { doPrmnsprmSemantics(peekCP); } } popCollectionStack(); }
private void parseMGRLVLLS(NetConnection netConnection) throws DisconnectException { parseLengthAndMatchCodePoint(CodePoint.MGRLVLLS); int managerListLength = getDdmLength(); if ((managerListLength == 0) || ((managerListLength % 4) != 0)) { doSyntaxrmSemantics(CodePoint.SYNERRCD_OBJ_LEN_NOT_ALLOWED); int managerCodePoint = parseCODPNTDR(); int managerLevel = parseMGRLVLN(); if ((managerLevel < NetConfiguration.MIN_AGENT_MGRLVL) || (managerLevel > netConnection.targetAgent_)) { doMgrlvlrmSemantics(managerCodePoint, managerLevel); if ((managerLevel < NetConfiguration.MIN_CMNTCPIP_MGRLVL) || (managerLevel > netConnection.targetCmntcpip_)) { doMgrlvlrmSemantics(managerCodePoint, managerLevel); if ((managerLevel < NetConfiguration.MIN_RDB_MGRLVL) || (managerLevel > netConnection.targetRdb_)) { doMgrlvlrmSemantics(managerCodePoint, managerLevel); if ((managerLevel < NetConfiguration.MIN_SECMGR_MGRLVL) || (managerLevel > netConnection.targetSecmgr_)) { doMgrlvlrmSemantics(managerCodePoint, managerLevel); if ((managerLevel < NetConfiguration.MIN_SQLAM_MGRLVL) || (managerLevel > netAgent_.targetSqlam_)) { doMgrlvlrmSemantics(managerCodePoint, managerLevel);
void parseCommonError(int peekCP) throws DisconnectException { switch (peekCP) { case CodePoint.CMDNSPRM: parseCMDNSPRM(); break; case CodePoint.PRCCNVRM: parsePRCCNVRM(); break; case CodePoint.SYNTAXRM: parseSYNTAXRM(); break; case CodePoint.VALNSPRM: parseVALNSPRM(); break; default: doObjnsprmSemantics(peekCP); } }
protected int parseFastSVRCOD(int minSvrcod, int maxSvrcod) throws DisconnectException { matchCodePoint(CodePoint.SVRCOD); int svrcod = readFastUnsignedShort(); if ((svrcod != CodePoint.SVRCOD_INFO) && (svrcod != CodePoint.SVRCOD_WARNING) && (svrcod != CodePoint.SVRCOD_ERROR) && (svrcod != CodePoint.SVRCOD_SEVERE) && (svrcod != CodePoint.SVRCOD_ACCDMG) && (svrcod != CodePoint.SVRCOD_PRMDMG) && (svrcod != CodePoint.SVRCOD_SESDMG)) { doValnsprmSemantics(CodePoint.SVRCOD, svrcod); } if (svrcod < minSvrcod || svrcod > maxSvrcod) { doValnsprmSemantics(CodePoint.SVRCOD, svrcod); } return svrcod; }
private void doMgrlvlrmSemantics(int manager, int level) throws DisconnectException { doMgrlvlrmSemantics("0x" + Integer.toHexString(manager), "0x" + Integer.toHexString(level)); }
void doValnsprmSemantics(int codePoint, int value) throws DisconnectException { doValnsprmSemantics(codePoint, Integer.toString(value)); }
private void parseRDBAFLRM() throws DisconnectException { boolean svrcodReceived = false; int svrcod = CodePoint.SVRCOD_INFO; boolean rdbnamReceived = false; String rdbnam = null; parseLengthAndMatchCodePoint(CodePoint.RDBAFLRM); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); while (peekCP != Reply.END_OF_COLLECTION) { boolean foundInPass = false; if (peekCP == CodePoint.SVRCOD) { foundInPass = true; svrcodReceived = checkAndGetReceivedFlag(svrcodReceived); svrcod = parseSVRCOD(CodePoint.SVRCOD_ERROR, CodePoint.SVRCOD_ERROR); peekCP = peekCodePoint(); } if (peekCP == CodePoint.RDBNAM) { foundInPass = true; rdbnamReceived = checkAndGetReceivedFlag(rdbnamReceived); rdbnam = parseRDBNAM(true); peekCP = peekCodePoint(); } if (!foundInPass) { doPrmnsprmSemantics(peekCP); } } popCollectionStack(); checkRequiredObjects(svrcodReceived, rdbnamReceived); netAgent_.setSvrcod(svrcod); }
parseLengthAndMatchCodePoint(CodePoint.EXCSATRD); pushLengthOnCollectionStack(); int peekCP = peekCodePoint(); extnamReceived = checkAndGetReceivedFlag(extnamReceived); extnam = parseEXTNAM(); peekCP = peekCodePoint(); mgrlvllsReceived = checkAndGetReceivedFlag(mgrlvllsReceived); parseMGRLVLLS(netConnection); // need to review this one, check input and output peekCP = peekCodePoint(); srvclsnmReceived = checkAndGetReceivedFlag(srvclsnmReceived); srvclsnm = parseSRVCLSNM(); peekCP = peekCodePoint(); srvnamReceived = checkAndGetReceivedFlag(srvnamReceived); srvnam = parseSRVNAM(); peekCP = peekCodePoint(); srvrlslvReceived = checkAndGetReceivedFlag(srvrlslvReceived); srvrlslv = parseSRVRLSLV(); peekCP = peekCodePoint(); doPrmnsprmSemantics(peekCP); popCollectionStack();