@@ -581,43 +581,62 @@ func pack(h *smallWBuf, enc *encoder, reqid uint32,
581581 return
582582}
583583
584- func (conn * Connection ) writeAuthRequest (w * bufio.Writer , scramble [] byte ) (err error ) {
584+ func (conn * Connection ) writeRequest (w * bufio.Writer , req Request ) (err error ) {
585585 var packet smallWBuf
586- req := newAuthRequest (conn .opts .User , string (scramble ))
587586 err = pack (& packet , newEncoder (& packet ), 0 , req , ignoreStreamId , conn .Schema )
588587
589588 if err != nil {
590- return errors . New ( "auth: pack error " + err . Error () )
589+ return fmt . Errorf ( " pack error: %w" , err )
591590 }
592591 if err := write (w , packet .b ); err != nil {
593- return errors . New ( "auth: write error " + err . Error () )
592+ return fmt . Errorf ( " write error: %w" , err )
594593 }
595594 if err = w .Flush (); err != nil {
596- return errors . New ( "auth: flush error " + err . Error () )
595+ return fmt . Errorf ( " flush error: %w" , err )
597596 }
598597 return
599598}
600599
601- func (conn * Connection ) readAuthResponse (r io.Reader ) (err error ) {
600+ func (conn * Connection ) writeAuthRequest (w * bufio.Writer , scramble []byte ) (err error ) {
601+ req := newAuthRequest (conn .opts .User , string (scramble ))
602+
603+ err = conn .writeRequest (w , req )
604+ if err != nil {
605+ return fmt .Errorf ("auth: %w" , err )
606+ }
607+
608+ return nil
609+ }
610+
611+ func (conn * Connection ) readResponse (r io.Reader ) (resp Response , err error ) {
602612 respBytes , err := conn .read (r )
603613 if err != nil {
604- return errors . New ( "auth: read error " + err . Error () )
614+ return resp , fmt . Errorf ( " read error: %w" , err )
605615 }
606- resp : = Response {buf : smallBuf {b : respBytes }}
616+ resp = Response {buf : smallBuf {b : respBytes }}
607617 err = resp .decodeHeader (conn .dec )
608618 if err != nil {
609- return errors . New ( "auth: decode response header error " + err . Error () )
619+ return resp , fmt . Errorf ( " decode response header error: %w" , err )
610620 }
611621 err = resp .decodeBody ()
612622 if err != nil {
613623 switch err .(type ) {
614624 case Error :
615- return err
625+ return resp , err
616626 default :
617- return errors . New ( "auth: decode response body error " + err . Error () )
627+ return resp , fmt . Errorf ( " decode response body error: %w" , err )
618628 }
619629 }
620- return
630+ return resp , nil
631+ }
632+
633+ func (conn * Connection ) readAuthResponse (r io.Reader ) (err error ) {
634+ _ , err = conn .readResponse (r )
635+ if err != nil {
636+ return fmt .Errorf ("auth: %w" , err )
637+ }
638+
639+ return nil
621640}
622641
623642func (conn * Connection ) createConnection (reconnect bool ) (err error ) {
0 commit comments