func()

in dialer.go [46:79]


func (d DirectDialer) Dial() (cnx net.Conn, err error) {
	dialer := &net.Dialer{
		Timeout: d.timeout,
	}

	if d.useTLS {
		cnx, err = tls.DialWithDialer(dialer, d.network, d.address, nil)
	} else {
		cnx, err = dialer.Dial(d.network, d.address)
	}

	if err != nil || d.password == "" {
		return
	}

	line := fmt.Sprintf("*2\r\n$4\r\nAUTH\n\n$%d\r\n%s\r\n", len(d.password), d.password)
	_, err = cnx.Write([]byte(line))
	if err != nil {
		return
	}

	reader := bufio.NewReader(cnx)

	line, err = reader.ReadString('\n')
	if err != nil {
		return
	}

	if line[0] != '+' {
		err = fmt.Errorf("Error authenticating to redis: %s", line)
	}

	return
}