File tree 3 files changed +9
-2
lines changed
3 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ cdef class Capabilities:
44
44
bint supports_oob_check
45
45
bint supports_end_of_response
46
46
bint supports_pipelining
47
+ bint supports_request_boundaries
47
48
uint32_t sdu
48
49
49
50
def __init__ (self ):
@@ -74,13 +75,17 @@ cdef class Capabilities:
74
75
if server_caps[TNS_CCAP_FIELD_VERSION] < self .ttc_field_version:
75
76
self .ttc_field_version = server_caps[TNS_CCAP_FIELD_VERSION]
76
77
self .compile_caps[TNS_CCAP_FIELD_VERSION] = self .ttc_field_version
78
+ if server_caps[TNS_CCAP_TTC4] & TNS_CCAP_EXPLICIT_BOUNDARY:
79
+ self .supports_request_boundaries = True
77
80
78
81
@ cython.boundscheck (False )
79
82
cdef void _adjust_for_server_runtime_caps(self , bytearray server_caps):
80
83
if server_caps[TNS_RCAP_TTC] & TNS_RCAP_TTC_32K:
81
84
self .max_string_size = 32767
82
85
else :
83
86
self .max_string_size = 4000
87
+ if not (server_caps[TNS_RCAP_TTC] & TNS_RCAP_TTC_SESSION_STATE_OPS):
88
+ self .supports_request_boundaries = False
84
89
85
90
cdef int _check_ncharset_id(self ) except - 1 :
86
91
"""
Original file line number Diff line number Diff line change @@ -476,6 +476,7 @@ cdef enum:
476
476
TNS_RCAP_COMPAT_81 = 2
477
477
TNS_RCAP_TTC_ZERO_COPY = 0x01
478
478
TNS_RCAP_TTC_32K = 0x04
479
+ TNS_RCAP_TTC_SESSION_STATE_OPS = 0x10
479
480
480
481
# verifier types
481
482
cdef enum :
Original file line number Diff line number Diff line change @@ -200,8 +200,9 @@ cdef class BaseThinPoolImpl(BasePoolImpl):
200
200
list of busy connections and is marked as being in a request.
201
201
"""
202
202
self ._busy_conn_impls.append(conn_impl)
203
- conn_impl._session_state_desired = TNS_SESSION_STATE_REQUEST_BEGIN
204
- conn_impl._in_request = True
203
+ if conn_impl._protocol._caps.supports_request_boundaries:
204
+ conn_impl._session_state_desired = TNS_SESSION_STATE_REQUEST_BEGIN
205
+ conn_impl._in_request = True
205
206
return conn_impl
206
207
207
208
cdef int _post_create_conn_impl(self ,
You can’t perform that action at this time.
0 commit comments