code: func dial(unixSocketPath string, timeout time.Duration) (registerapi.RegistrationClient, *grpc.ClientConn, error) {
  	ctx, cancel := context.WithTimeout(context.Background(), timeout)
  	defer cancel()
  
  	c, err := grpc.DialContext(ctx, unixSocketPath, grpc.WithInsecure(), grpc.WithBlock(),
  		grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {
  			return net.DialTimeout("unix", addr, timeout)
  		}),
  	)
  
  	if err != nil {
  		return nil, nil, fmt.Errorf("failed to dial socket %s, err: %v", unixSocketPath, err)
  	}
  
  	return registerapi.NewRegistrationClient(c), c, nil
  }
docs: // Dial establishes the gRPC communication with the picked up plugin socket. https://godoc.org/google.golang.org/grpc#Dial