@@ -36,31 +36,31 @@ const errors = require('../../errors');
36
36
*/
37
37
class Capabilities {
38
38
39
- constructor ( protocolVersion ) {
40
- this . protocolVersion = protocolVersion ;
39
+ constructor ( nscon ) {
40
+ this . protocolVersion = nscon . sAtts . version ;
41
41
this . ttcFieldVersion = constants . TNS_CCAP_FIELD_VERSION_MAX ;
42
42
this . supports12cLogon = true ;
43
43
this . supportsOob = false ;
44
44
this . nCharsetId = constants . TNS_CHARSET_UTF16 ;
45
45
this . compileCaps = Buffer . alloc ( constants . TNS_CCAP_MAX ) ;
46
46
this . runtimeCaps = Buffer . alloc ( constants . TNS_RCAP_MAX ) ;
47
- this . initCompileCaps ( ) ;
47
+ this . initCompileCaps ( nscon ) ;
48
48
this . initRuntimeCaps ( ) ;
49
49
this . maxStringSize = 0 ;
50
50
}
51
51
52
- adjustForServerCompileCaps ( serverCaps ) {
52
+ adjustForServerCompileCaps ( serverCaps , nscon ) {
53
53
if ( serverCaps [ constants . TNS_CCAP_FIELD_VERSION ] < this . ttcFieldVersion ) {
54
54
this . ttcFieldVersion = serverCaps [ constants . TNS_CCAP_FIELD_VERSION ] ;
55
55
this . compileCaps [ constants . TNS_CCAP_FIELD_VERSION ] =
56
56
this . ttcFieldVersion ;
57
57
}
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
62
61
this . compileCaps [ constants . TNS_CCAP_TTC4 ]
63
62
^= constants . TNS_CCAP_END_OF_REQUEST ;
63
+ nscon . endOfRequestSupport = false ;
64
64
}
65
65
}
66
66
@@ -72,7 +72,7 @@ class Capabilities {
72
72
}
73
73
}
74
74
75
- initCompileCaps ( ) {
75
+ initCompileCaps ( nscon ) {
76
76
this . compileCaps [ constants . TNS_CCAP_SQL_VERSION ] =
77
77
constants . TNS_CCAP_SQL_VERSION_MAX ;
78
78
this . compileCaps [ constants . TNS_CCAP_LOGON_TYPES ] =
@@ -110,8 +110,10 @@ class Capabilities {
110
110
this . compileCaps [ constants . TNS_CCAP_CLIENT_FN ] =
111
111
constants . TNS_CCAP_CLIENT_FN_MAX ;
112
112
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
+ }
115
117
this . compileCaps [ constants . TNS_CCAP_CTB_FEATURE_BACKPORT ] =
116
118
constants . TNS_CCAP_CTB_IMPLICIT_POOL ;
117
119
this . compileCaps [ constants . TNS_CCAP_TTC5 ] =
0 commit comments