MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / readAuthResult

Method readAuthResult

IceFireDB-SQLProxy/pkg/mysql/client/resp.go:169–202  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

167}
168
169func (c *Conn) readAuthResult() ([]byte, string, error) {
170 data, err := c.ReadPacket()
171 if err != nil {
172 return nil, "", err
173 }
174
175 // see: https://insidemysql.com/preparing-your-community-connector-for-mysql-8-part-2-sha256/
176 // packet indicator
177 switch data[0] {
178 case OK_HEADER:
179 _, err := c.handleOKPacket(data)
180 return nil, "", err
181
182 case MORE_DATE_HEADER:
183 return data[1:], "", err
184
185 case EOF_HEADER:
186 // server wants to switch auth
187 if len(data) < 1 {
188 // https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::OldAuthSwitchRequest
189 return nil, AUTH_MYSQL_OLD_PASSWORD, nil
190 }
191 pluginEndIndex := bytes.IndexByte(data, 0x00)
192 if pluginEndIndex < 0 {
193 return nil, "", errors.New("invalid packet")
194 }
195 plugin := string(data[1:pluginEndIndex])
196 authData := data[pluginEndIndex+1:]
197 return authData, plugin, nil
198
199 default: // Error otherwise
200 return nil, "", c.handleErrorPacket(data)
201 }
202}
203
204func (c *Conn) readOK() (*Result, error) {
205 data, err := c.ReadPacket()

Callers 1

handleAuthResultMethod · 0.95

Calls 3

ReadPacketMethod · 0.95
handleOKPacketMethod · 0.95
handleErrorPacketMethod · 0.95

Tested by

no test coverage detected