Skip to content

Commit 8888127

Browse files
Fixed bug when connecting to an AC-enabled service (#476).
1 parent 74a4edf commit 8888127

File tree

5 files changed

+15
-1
lines changed

5 files changed

+15
-1
lines changed

doc/src/release_notes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ Thin Mode Changes
3535
#) Fixed bug when an error is reported by the server in the middle of a
3636
response to a client request
3737
(`issue 472 <https://github.com/oracle/python-oracledb/issues/472>`__).
38+
#) Fixed bug when connecting to an AC-enabled service
39+
(`issue 476 <https://github.com/oracle/python-oracledb/issues/476>`__).
3840

3941
Thick Mode Changes
4042
++++++++++++++++++

src/oracledb/impl/thin/capabilities.pyx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ cdef class Capabilities:
132132
self.compile_caps[TNS_CCAP_TTC2] = TNS_CCAP_ZLNP
133133
self.compile_caps[TNS_CCAP_OCI2] = TNS_CCAP_DRCP
134134
self.compile_caps[TNS_CCAP_CLIENT_FN] = TNS_CCAP_CLIENT_FN_MAX
135+
self.compile_caps[TNS_CCAP_SESS_SIGNATURE_VERSION] = \
136+
TNS_CCAP_FIELD_VERSION_12_2
135137
self.compile_caps[TNS_CCAP_TTC4] = TNS_CCAP_INBAND_NOTIFICATION | \
136138
TNS_CCAP_EXPLICIT_BOUNDARY
137139
self.compile_caps[TNS_CCAP_TTC5] = TNS_CCAP_VECTOR_SUPPORT | \

src/oracledb/impl/thin/constants.pxi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ cdef enum:
261261
TNS_SERVER_PIGGYBACK_LTXID = 7
262262
TNS_SERVER_PIGGYBACK_AC_REPLAY_CONTEXT = 8
263263
TNS_SERVER_PIGGYBACK_EXT_SYNC = 9
264+
TNS_SERVER_PIGGYBACK_SESS_SIGNATURE = 10
264265

265266
# session return constants
266267
cdef enum:
@@ -416,6 +417,7 @@ cdef enum:
416417
TNS_CCAP_OCI2 = 31
417418
TNS_CCAP_CLIENT_FN = 34
418419
TNS_CCAP_TTC3 = 37
420+
TNS_CCAP_SESS_SIGNATURE_VERSION = 39
419421
TNS_CCAP_TTC4 = 40
420422
TNS_CCAP_LOB2 = 42
421423
TNS_CCAP_TTC5 = 44

src/oracledb/impl/thin/messages/base.pyx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,12 @@ cdef class Message:
387387
self.conn_impl._drcp_establish_session = False
388388
buf.read_ub4(&self.conn_impl._session_id)
389389
buf.read_ub2(&self.conn_impl._serial_num)
390+
elif opcode == TNS_SERVER_PIGGYBACK_SESS_SIGNATURE:
391+
buf.skip_ub2() # number of dtys
392+
buf.skip_ub1() # length of dty
393+
buf.skip_ub8() # signature flags
394+
buf.skip_ub8() # client signature
395+
buf.skip_ub8() # server signature
390396
else:
391397
errors._raise_err(errors.ERR_UNKNOWN_SERVER_PIGGYBACK,
392398
opcode=opcode)

src/oracledb/impl/thin/messages/data_types.pyx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ cdef enum:
326326
TNS_DATA_TYPE_UD21 = 639
327327
TNS_DATA_TYPE_TNP = 640
328328
TNS_DATA_TYPE_OAC = 646
329+
TNS_DATA_TYPE_SESSSIGN = 647
329330
TNS_DATA_TYPE_OER = 652
330331
TNS_DATA_TYPE_PLEND = 660
331332
TNS_DATA_TYPE_PLBGN = 661
@@ -340,7 +341,7 @@ cdef enum:
340341
TNS_TYPE_REP_ORACLE = 10
341342

342343

343-
cdef DataType[319] DATA_TYPES = [
344+
cdef DataType[320] DATA_TYPES = [
344345
[ORA_TYPE_NUM_VARCHAR, ORA_TYPE_NUM_VARCHAR, TNS_TYPE_REP_UNIVERSAL],
345346
[ORA_TYPE_NUM_NUMBER, ORA_TYPE_NUM_NUMBER, TNS_TYPE_REP_ORACLE],
346347
[ORA_TYPE_NUM_LONG, ORA_TYPE_NUM_LONG, TNS_TYPE_REP_UNIVERSAL],
@@ -661,6 +662,7 @@ cdef DataType[319] DATA_TYPES = [
661662
[TNS_DATA_TYPE_TNP, TNS_DATA_TYPE_TNP, TNS_TYPE_REP_UNIVERSAL],
662663
[TNS_DATA_TYPE_OER, TNS_DATA_TYPE_OER, TNS_TYPE_REP_UNIVERSAL],
663664
[TNS_DATA_TYPE_OAC, TNS_DATA_TYPE_OAC, TNS_TYPE_REP_UNIVERSAL],
665+
[TNS_DATA_TYPE_SESSSIGN, TNS_DATA_TYPE_SESSSIGN, TNS_TYPE_REP_UNIVERSAL],
664666
[ORA_TYPE_NUM_VECTOR, ORA_TYPE_NUM_VECTOR, TNS_TYPE_REP_UNIVERSAL],
665667
[TNS_DATA_TYPE_PLEND, TNS_DATA_TYPE_PLEND, TNS_TYPE_REP_UNIVERSAL],
666668
[TNS_DATA_TYPE_PLBGN, TNS_DATA_TYPE_PLBGN, TNS_TYPE_REP_UNIVERSAL],

0 commit comments

Comments
 (0)