MCPcopy
hub / github.com/caddyserver/caddy / cmdReload

Function cmdReload

cmd/commandfuncs.go:376–413  ·  view source on GitHub ↗
(fl Flags)

Source from the content-addressed store, hash-verified

374}
375
376func cmdReload(fl Flags) (int, error) {
377 configFlag := fl.String("config")
378 configAdapterFlag := fl.String("adapter")
379 addressFlag := fl.String("address")
380 forceFlag := fl.Bool("force")
381
382 // get the config in caddy's native format
383 config, configFile, adapterUsed, err := LoadConfig(configFlag, configAdapterFlag)
384 if err != nil {
385 return caddy.ExitCodeFailedStartup, err
386 }
387 if configFile == "" {
388 return caddy.ExitCodeFailedStartup, fmt.Errorf("no config file to load")
389 }
390
391 adminAddr, err := DetermineAdminAPIAddress(addressFlag, config, configFile, configAdapterFlag)
392 if err != nil {
393 return caddy.ExitCodeFailedStartup, fmt.Errorf("couldn't determine admin API address: %v", err)
394 }
395
396 // optionally force a config reload
397 headers := make(http.Header)
398 if forceFlag {
399 headers.Set("Cache-Control", "must-revalidate")
400 }
401 // Provide the source file/adapter to the running process so it can
402 // preserve its last-config knowledge if this reload came from the same source.
403 headers.Set("Caddy-Config-Source-File", configFile)
404 headers.Set("Caddy-Config-Source-Adapter", adapterUsed)
405
406 resp, err := AdminAPIRequest(adminAddr, http.MethodPost, "/load", headers, bytes.NewReader(config))
407 if err != nil {
408 return caddy.ExitCodeFailedStartup, fmt.Errorf("sending configuration to instance: %v", err)
409 }
410 defer resp.Body.Close()
411
412 return caddy.ExitCodeSuccess, nil
413}
414
415func cmdVersion(_ Flags) (int, error) {
416 _, full := caddy.Version()

Callers

nothing calls this directly

Calls 7

LoadConfigFunction · 0.85
DetermineAdminAPIAddressFunction · 0.85
AdminAPIRequestFunction · 0.85
StringMethod · 0.45
BoolMethod · 0.45
SetMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected