Documentation ¶
Index ¶
- func CheckScrambledPassword(salt, hpwd, auth []byte) bool
- func DecodePassword(pwd string) ([]byte, error)
- func DelKeyWithPrefix(rm kv.RetrieverMutator, prefix kv.Key) error
- func EncodePassword(pwd string) string
- func RowKeyPrefixFilter(rowKeyPrefix kv.Key) kv.FnKeyCmp
- func RunWithRetry(retryCnt int, backoff uint64, f func() (bool, error)) (err error)
- func ScanMetaWithPrefix(retriever kv.Retriever, prefix kv.Key, filter func(kv.Key, []byte) bool) error
- func Sha1Hash(bs []byte) []byte
- type ProcessInfo
- type SessionManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckScrambledPassword ¶
CheckScrambledPassword check scrambled password received from client. The new authentication is performed in following manner:
SERVER: public_seed=create_random_string() send(public_seed) CLIENT: recv(public_seed) hash_stage1=sha1("password") hash_stage2=sha1(hash_stage1) reply=xor(hash_stage1, sha1(public_seed,hash_stage2) // this three steps are done in scramble() send(reply) SERVER: recv(reply) hash_stage1=xor(reply, sha1(public_seed,hash_stage2)) candidate_hash2=sha1(hash_stage1) check(candidate_hash2==hash_stage2) // this three steps are done in check_scramble()
func DecodePassword ¶
DecodePassword converts hex string password without prefix '*' to byte array.
func DelKeyWithPrefix ¶
func DelKeyWithPrefix(rm kv.RetrieverMutator, prefix kv.Key) error
DelKeyWithPrefix deletes keys with prefix.
func EncodePassword ¶
EncodePassword converts plaintext password to hashed hex string.
func RowKeyPrefixFilter ¶
RowKeyPrefixFilter returns a function which checks whether currentKey has decoded rowKeyPrefix as prefix.
func RunWithRetry ¶
RunWithRetry will run the f with backoff and retry. retryCnt: Max retry count backoff: When run f failed, it will sleep backoff * triedCount time.Millisecond. Function f should have two return value. The first one is an bool which indicate if the err if retryable. The second is if the f meet any error.
Types ¶
type ProcessInfo ¶
type ProcessInfo struct { ID uint64 User string Host string DB string Command string Time time.Time State uint16 Info string }
ProcessInfo is a struct used for show processlist statement.
type SessionManager ¶
type SessionManager interface { ShowProcessList() []ProcessInfo Kill(connectionID uint64, query bool) }
SessionManager is an interface for session manage. Show processlist and kill statement rely on this interface.