0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2024-12-23 22:27:38 -05:00

Merge pull request #730 from tpng/restart-refactor

Extract restartInProc to its own file
This commit is contained in:
Benny Ng 2016-04-06 11:51:44 +08:00
commit e4e773c9ea
3 changed files with 35 additions and 53 deletions

View file

@ -172,32 +172,3 @@ func getCertsForNewCaddyfile(newCaddyfile Input) error {
return nil
}
// restartInProc restarts Caddy forcefully in process using newCaddyfile.
func restartInProc(newCaddyfile Input) error {
wg.Add(1) // barrier so Wait() doesn't unblock
err := Stop()
if err != nil {
return err
}
caddyfileMu.Lock()
oldCaddyfile := caddyfile
caddyfileMu.Unlock()
err = Start(newCaddyfile)
if err != nil {
// revert to old Caddyfile
if oldErr := Start(oldCaddyfile); oldErr != nil {
log.Printf("[ERROR] Restart: in-process restart failed and cannot revert to old Caddyfile: %v", oldErr)
} else {
wg.Done() // take down our barrier
}
return err
}
wg.Done() // take down our barrier
return nil
}

View file

@ -7,32 +7,11 @@ import "log"
func Restart(newCaddyfile Input) error {
log.Println("[INFO] Restarting")
caddyfileMu.Lock()
oldCaddyfile := caddyfile
if newCaddyfile == nil {
caddyfileMu.Lock()
newCaddyfile = caddyfile
}
caddyfileMu.Unlock()
wg.Add(1) // barrier so Wait() doesn't unblock
err := Stop()
if err != nil {
return err
caddyfileMu.Unlock()
}
err = Start(newCaddyfile)
if err != nil {
// revert to old Caddyfile
if oldErr := Start(oldCaddyfile); oldErr != nil {
log.Printf("[ERROR] Restart: in-process restart failed and cannot revert to old Caddyfile: %v", oldErr)
} else {
wg.Done() // take down our barrier
}
return err
}
wg.Done() // take down our barrier
return nil
return restartInProc(newCaddyfile)
}

32
caddy/restartinproc.go Normal file
View file

@ -0,0 +1,32 @@
package caddy
import "log"
// restartInProc restarts Caddy forcefully in process using newCaddyfile.
func restartInProc(newCaddyfile Input) error {
wg.Add(1) // barrier so Wait() doesn't unblock
err := Stop()
if err != nil {
return err
}
caddyfileMu.Lock()
oldCaddyfile := caddyfile
caddyfileMu.Unlock()
err = Start(newCaddyfile)
if err != nil {
// revert to old Caddyfile
if oldErr := Start(oldCaddyfile); oldErr != nil {
log.Printf("[ERROR] Restart: in-process restart failed and cannot revert to old Caddyfile: %v", oldErr)
} else {
wg.Done() // take down our barrier
}
return err
}
wg.Done() // take down our barrier
return nil
}