@@ -36,31 +36,31 @@ const errors = require('../../errors');
3636 */
3737class Capabilities {
3838
39- constructor ( protocolVersion ) {
40- this . protocolVersion = protocolVersion ;
39+ constructor ( nscon ) {
40+ this . protocolVersion = nscon . sAtts . version ;
4141 this . ttcFieldVersion = constants . TNS_CCAP_FIELD_VERSION_MAX ;
4242 this . supports12cLogon = true ;
4343 this . supportsOob = false ;
4444 this . nCharsetId = constants . TNS_CHARSET_UTF16 ;
4545 this . compileCaps = Buffer . alloc ( constants . TNS_CCAP_MAX ) ;
4646 this . runtimeCaps = Buffer . alloc ( constants . TNS_RCAP_MAX ) ;
47- this . initCompileCaps ( ) ;
47+ this . initCompileCaps ( nscon ) ;
4848 this . initRuntimeCaps ( ) ;
4949 this . maxStringSize = 0 ;
5050 }
5151
52- adjustForServerCompileCaps ( serverCaps ) {
52+ adjustForServerCompileCaps ( serverCaps , nscon ) {
5353 if ( serverCaps [ constants . TNS_CCAP_FIELD_VERSION ] < this . ttcFieldVersion ) {
5454 this . ttcFieldVersion = serverCaps [ constants . TNS_CCAP_FIELD_VERSION ] ;
5555 this . compileCaps [ constants . TNS_CCAP_FIELD_VERSION ] =
5656 this . ttcFieldVersion ;
5757 }
58- if ( this . ttcFieldVersion < constants . TNS_CCAP_FIELD_VERSION_23_4 ||
59- ! ( serverCaps [ constants . TNS_CCAP_TTC4 ] &
60- constants . TNS_CCAP_END_OF_REQUEST ) ) {
61- // TTIDONE used only from 23.4 onwards
58+ if ( ( this . ttcFieldVersion < constants . TNS_CCAP_FIELD_VERSION_23_4
59+ && nscon . endOfRequestSupport ) ) {
60+ // endOfRequestSupport used only from 23.4 onwards and not for 23.3
6261 this . compileCaps [ constants . TNS_CCAP_TTC4 ]
6362 ^= constants . TNS_CCAP_END_OF_REQUEST ;
63+ nscon . endOfRequestSupport = false ;
6464 }
6565 }
6666
@@ -72,7 +72,7 @@ class Capabilities {
7272 }
7373 }
7474
75- initCompileCaps ( ) {
75+ initCompileCaps ( nscon ) {
7676 this . compileCaps [ constants . TNS_CCAP_SQL_VERSION ] =
7777 constants . TNS_CCAP_SQL_VERSION_MAX ;
7878 this . compileCaps [ constants . TNS_CCAP_LOGON_TYPES ] =
@@ -110,8 +110,10 @@ class Capabilities {
110110 this . compileCaps [ constants . TNS_CCAP_CLIENT_FN ] =
111111 constants . TNS_CCAP_CLIENT_FN_MAX ;
112112 this . compileCaps [ constants . TNS_CCAP_TTC4 ] =
113- constants . TNS_CCAP_INBAND_NOTIFICATION |
114- constants . TNS_CCAP_END_OF_REQUEST ;
113+ constants . TNS_CCAP_INBAND_NOTIFICATION ;
114+ if ( nscon . endOfRequestSupport ) {
115+ this . compileCaps [ constants . TNS_CCAP_TTC4 ] |= constants . TNS_CCAP_END_OF_REQUEST ;
116+ }
115117 this . compileCaps [ constants . TNS_CCAP_CTB_FEATURE_BACKPORT ] =
116118 constants . TNS_CCAP_CTB_IMPLICIT_POOL ;
117119 this . compileCaps [ constants . TNS_CCAP_TTC5 ] =
0 commit comments