code: func (v *VTY) read() (string, byte, error) {
  	b := make([]byte, 1024)
  	r := make([]byte, 0)
  	eom := 0
  	v.conn.SetReadDeadline(time.Now().Add(v.readTimeout))
  	for {
  		n, err := v.conn.Read(b)
  		if err != nil {
  			return "", 0, fmt.Errorf("VTY read failed: %v", err)
  		}
  		for _, v := range b[:n] {
  			if eom == 3 {
  				return string(r), v, nil
  			} else if v == 0 {
  				eom++
  			} else {
  				eom = 0
  				r = append(r, v)
  			}
  		}
  	}
  }
docs: // read reads a command response from the VTY socket. A response from a
  // VTY server is terminated with three trailing NULL bytes (0), followed by
  // a status byte.