private bool Auth(string password, MSocket socket) { if (!string.IsNullOrEmpty(password)) { using (RedisCommand cmd = new RedisCommand(socket, 2, "AUTH")) { cmd.WriteKey(password); } return(socket.ReadResponse().StartsWith("+OK")); } return(true); }
//Private method for reading results of the "get" command. private bool readValue(MSocket socket, out object value, out string key, out ulong unique) { string response = socket.ReadResponse(); string[] parts = response.Split(' '); //Result line from server: "VALUE <key> <flags> <bytes> <cas unique>" if (parts[0] == "VALUE") { key = parts[1]; SerializedType type = (SerializedType)Enum.Parse(typeof(SerializedType), parts[2]); byte[] bytes = new byte[Convert.ToUInt32(parts[3], CultureInfo.InvariantCulture)]; if (parts.Length > 4) { unique = Convert.ToUInt64(parts[4]); } else { unique = 0; } socket.Read(bytes); socket.SkipToEndOfLine(); //Skip the trailing \r\n try { value = Serializer.DeSerialize(bytes, type); } catch (Exception e) { //If deserialization fails, return null value = null; logger.Error("Error deserializing object for key '" + key + "' of type " + type + ".", e); } return(true); } else { key = null; value = null; unique = 0; return(false); } }