code: func (p *Pget) Checking() error {
  
  	ctx, cancelAll := context.WithTimeout(context.Background(), time.Duration(p.timeout)*time.Second)
  
  	ch := MakeCh()
  	defer ch.Close()
  
  	for _, url := range p.URLs {
  		fmt.Fprintf(os.Stdout, "Checking now %s\n", url)
  		go p.CheckMirrors(ctx, url, ch)
  	}
  
  	// listen for error or size channel
  	size, err := ch.CheckingListen(ctx, cancelAll, len(p.URLs))
  	if err != nil {
  		return err
  	}
  
  	// did already get filename from -o option
  	filename := p.Utils.FileName()
  	if filename == "" {
  		filename = p.Utils.URLFileName(p.TargetDir, p.TargetURLs[0])
  	}
  	p.SetFileName(filename)
  	p.SetFullFileName(p.TargetDir, filename)
  	p.Utils.SetDirName(p.TargetDir, filename, p.Procs)
  
  	p.SetFileSize(size)
  
  	return nil
  }
docs: // Checking is check to can request