code: func parseDaemonHost(addr string) (string, error) {
  	addrParts := strings.SplitN(addr, "://", 2)
  	if len(addrParts) == 1 && addrParts[0] != "" {
  		addrParts = []string{"tcp", addrParts[0]}
  	}
  
  	switch addrParts[0] {
  	case "tcp":
  		return ParseTCPAddr(addrParts[1], DefaultTCPHost)
  	case "unix":
  		return parseSimpleProtoAddr("unix", addrParts[1], DefaultUnixSocket)
  	case "npipe":
  		return parseSimpleProtoAddr("npipe", addrParts[1], DefaultNamedPipe)
  	case "fd":
  		return addr, nil
  	default:
  		return "", fmt.Errorf("Invalid bind address format: %s", addr)
  	}
  }
docs: // parseDaemonHost parses the specified address and returns an address that will be used as the host.
  // Depending of the address specified, this may return one of the global Default* strings defined in hosts.go.