Ċ package Ġcom . github . ma ur icio . async . db . mysql . encoder Ċ Ċ import Ġcom . github . j async . sql . db . exceptions . Unsupported Authentication Method Exception Ċ import Ġcom . github . j async . sql . db . util . ByteBuffer Utils Ċ import Ġcom . github . j async . sql . db . util . length Ċ import Ġcom . github . ma ur icio . async . db . mysql . encoder . auth . Authentication Method Ċ import Ġcom . github . ma ur icio . async . db . mysql . message . client . Client Message Ċ import Ġcom . github . ma ur icio . async . db . mysql . message . client . Handshake Response Message Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . Charset Mapper Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ CONNECT _ WITH _ DB Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ MULTI _ RESULTS Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ PLUGIN _ AUTH Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ PROTOCOL _ 4 1 Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ SECURE _ CONNECTION Ċ import Ġcom . github . ma ur icio . async . db . mysql . util . My SQ LI O . CLIENT _ TRANSACTION S Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġmu . Kotlin Logging Ċ import Ġjava . nio . charset . Charset Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} ĊĊ Ċ class ĠHand shake Response Encoder ( val Ġcharset : ĠCharset , Ġval Ġcharset Mapper : ĠCharset Mapper ) Ġ: ĠMessage Encoder Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠ Ġval ĠMAX _ 3 _ BYTES Ġ= Ġ 0 x 0 0 ffffff ĊĠ Ġval ĠP ADDING : ĠByteArray Ġ= ĠByteArray ( 2 3 ) Ġ{ ĊĠĠĠĠ 0 . to Byte () ĊĠ Ġ} ĊĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġauthentication Methods Ġ= ĠAuthentication Method . Available s ĊĊĠ Ġoverride Ġfun Ġencode ( message : ĠClient Message ): ĠByte Buf Ġ{ ĊĊĠĠĠ Ġval Ġm Ġ= Ġmessage Ġas ĠHand shake Response Message ĊĊĠĠĠ Ġvar Ġclient Capabilities Ġ= Ġ 0 ĊĊĠĠĠ Ġclient Capabilities Ġ= Ġclient Capabilities Ġor ĊĠĠĠĠĠ ĠCLIENT _ PLUGIN _ AUTH Ġor ĊĠĠĠĠĠ ĠCLIENT _ PROTOCOL _ 4 1 Ġor ĊĠĠĠĠĠ ĠCLIENT _ TRANSACTION S Ġor ĊĠĠĠĠĠ ĠCLIENT _ MULTI _ RESULTS Ġor ĊĠĠĠĠĠ ĠCLIENT _ SECURE _ CONNECTION ĊĊĠĠĠ Ġif Ġ( m . database Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġclient Capabilities Ġ= Ġclient Capabilities Ġor ĠCLIENT _ CONNECT _ WITH _ DB ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġbuffer Ġ= ĠByteBuffer Utils . packet Buffer () ĊĊĠĠĠ Ġbuffer . writeInt ( client Capabilities ) ĊĠĠĠ Ġbuffer . writeInt ( MAX _ 3 _ BYTES ) ĊĠĠĠ Ġbuffer . write Byte ( charset Mapper . toInt ( charset )) ĊĠĠĠ Ġbuffer . write Bytes ( P ADDING ) ĊĠĠĠ ĠByteBuffer Utils . write CString ( Ġm . username , Ġbuffer , Ġcharset Ġ) ĊĊĠĠĠ Ġif Ġ( Ġm . password Ġ!= Ġnull Ġ) Ġ{ ĊĠĠĠĠĠ Ġval Ġmethod Ġ= Ġm . authentication Method ĊĠĠĠĠĠ Ġval Ġauth enticator Ġ= Ġthis . authentication Methods . getOrElse ( ĊĠĠĠĠĠĠĠ Ġmethod ) Ġ{ Ġthrow ĠUnsupported Authentication Method Exception ( method ) Ġ} ĊĠĠĠĠĠ Ġval Ġbytes Ġ= Ġauth enticator . generate Authentication ( charset , Ġm . password , Ġm . seed ) ĊĠĠĠĠĠ Ġbuffer . write Byte ( bytes . length ) ĊĠĠĠĠĠ Ġbuffer . write Bytes ( bytes ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġbuffer . write Byte ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( Ġm . database Ġ!= Ġnull Ġ) Ġ{ ĊĠĠĠĠĠ ĠByteBuffer Utils . write CString ( Ġm . database , Ġbuffer , Ġcharset Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠByteBuffer Utils . write CString ( Ġm . authentication Method , Ġbuffer , Ġcharset Ġ) ĊĊĠĠĠ Ġreturn Ġbuffer ĊĠ Ġ} Ċ Ċ } Ċ