MCPcopy Index your code
hub / github.com/docker/cli / importZip

Function importZip

cli/context/store/store.go:434–496  ·  view source on GitHub ↗
(name string, s Writer, reader io.Reader)

Source from the content-addressed store, hash-verified

432}
433
434func importZip(name string, s Writer, reader io.Reader) error {
435 body, err := io.ReadAll(&limitedReader{R: reader, N: maxAllowedFileSizeToImport})
436 if err != nil {
437 return err
438 }
439 zr, err := zip.NewReader(bytes.NewReader(body), int64(len(body)))
440 if err != nil {
441 return err
442 }
443 tlsData := ContextTLSData{
444 Endpoints: map[string]EndpointTLSData{},
445 }
446
447 var importedMetaFile bool
448 for _, zf := range zr.File {
449 fi := zf.FileInfo()
450 if !fi.Mode().IsRegular() {
451 // skip this entry, only taking regular files into account
452 continue
453 }
454 if err := isValidFilePath(zf.Name); err != nil {
455 return fmt.Errorf("%s: %w", zf.Name, err)
456 }
457 if zf.Name == metaFile {
458 f, err := zf.Open()
459 if err != nil {
460 return err
461 }
462
463 data, err := io.ReadAll(&limitedReader{R: f, N: maxAllowedFileSizeToImport})
464 defer f.Close()
465 if err != nil {
466 return err
467 }
468 meta, err := parseMetadata(data, name)
469 if err != nil {
470 return err
471 }
472 if err := s.CreateOrUpdate(meta); err != nil {
473 return err
474 }
475 importedMetaFile = true
476 } else if strings.HasPrefix(zf.Name, "tls/") {
477 f, err := zf.Open()
478 if err != nil {
479 return err
480 }
481 data, err := io.ReadAll(f)
482 defer f.Close()
483 if err != nil {
484 return err
485 }
486 err = importEndpointTLS(&tlsData, zf.Name, data)
487 if err != nil {
488 return err
489 }
490 }
491 }

Callers 1

ImportFunction · 0.85

Calls 8

isValidFilePathFunction · 0.85
parseMetadataFunction · 0.85
importEndpointTLSFunction · 0.85
ModeMethod · 0.80
invalidParameterFunction · 0.70
CreateOrUpdateMethod · 0.65
ResetTLSMaterialMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…