class Mysql::Protocol::InitialPacket
Initial packet
Attributes
auth_plugin[R]
protocol_version[R]
scramble_buff[R]
server_capabilities[R]
server_charset[R]
server_status[R]
server_version[R]
thread_id[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/mysql/protocol.rb, line 598 def initialize(*args) @protocol_version, @server_version, @thread_id, @server_capabilities, @server_charset, @server_status, @scramble_buff, @auth_plugin = args end
parse(pkt)
click to toggle source
# File lib/mysql/protocol.rb, line 571 def self.parse(pkt) protocol_version = pkt.utiny server_version = pkt.string thread_id = pkt.ulong scramble_buff = pkt.read(8) f0 = pkt.utiny server_capabilities = pkt.ushort server_charset = pkt.utiny server_status = pkt.ushort server_capabilities2 = pkt.ushort scramble_length = pkt.utiny _f1 = pkt.read(10) rest_scramble_buff = pkt.string auth_plugin = pkt.string server_capabilities |= server_capabilities2 << 16 scramble_buff.concat rest_scramble_buff raise ProtocolError, "unsupported version: #{protocol_version}" unless protocol_version == VERSION raise ProtocolError, "invalid packet: f0=#{f0}" unless f0 == 0 raise ProtocolError, "invalid packet: scramble_length(#{scramble_length}) != length of scramble(#{scramble_buff.size + 1})" unless scramble_length == scramble_buff.size + 1 self.new protocol_version, server_version, thread_id, server_capabilities, server_charset, server_status, scramble_buff, auth_plugin end