0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2025-01-06 22:40:31 -05:00

core: Fix SIGUSR1 so it actually reloads config

This commit is contained in:
Matthew Holt 2015-10-26 17:57:32 -06:00
parent 821c0fab09
commit bb6613d0ae
4 changed files with 28 additions and 1 deletions

View file

@ -319,4 +319,8 @@ type Input interface {
// Gets the path to the origin file
Path() string
// IsFile returns true if the original input was a file on the file system
// that could be loaded again later if requested.
IsFile() bool
}

View file

@ -58,6 +58,7 @@ func isRestart() bool {
type CaddyfileInput struct {
Filepath string
Contents []byte
RealFile bool
}
// Body returns c.Contents.
@ -65,3 +66,6 @@ func (c CaddyfileInput) Body() []byte { return c.Contents }
// Path returns c.Filepath.
func (c CaddyfileInput) Path() string { return c.Filepath }
// Path returns true if the original input was a real file on the file system.
func (c CaddyfileInput) IsFile() bool { return c.RealFile }

View file

@ -3,6 +3,7 @@
package caddy
import (
"io/ioutil"
"log"
"os"
"os/signal"
@ -17,7 +18,23 @@ func init() {
for {
<-reload
err := Restart(nil)
var updatedCaddyfile Input
caddyfileMu.Lock()
if caddyfile.IsFile() {
body, err := ioutil.ReadFile(caddyfile.Path())
if err == nil {
caddyfile = CaddyfileInput{
Filepath: caddyfile.Path(),
Contents: body,
RealFile: true,
}
}
}
caddyfileMu.Unlock()
err := Restart(updatedCaddyfile)
if err != nil {
log.Println(err)
}

View file

@ -92,6 +92,7 @@ func loadCaddyfile() (caddy.Input, error) {
return caddy.CaddyfileInput{
Contents: contents,
Filepath: conf,
RealFile: true,
}, nil
}
@ -115,6 +116,7 @@ func loadCaddyfile() (caddy.Input, error) {
return caddy.CaddyfileInput{
Contents: contents,
Filepath: caddy.DefaultConfigFile,
RealFile: true,
}, nil
}