Add ExtraInfo to EventHook ()

* Update plugins.go

* Add extraInfo to eventHook

* Add extraInfo to eventHook

* Update run.go

* Update run.go

* Update run.go
This commit is contained in:
Henrique Dias 2017-06-03 14:28:16 +01:00 committed by Matt Holt
parent 6b8e40b3fb
commit cbdd3a4f8e
3 changed files with 5 additions and 5 deletions

View file

@ -101,7 +101,7 @@ func Run() {
}
// Executes Startup events
caddy.EmitEvent(caddy.StartupEvent)
caddy.EmitEvent(caddy.StartupEvent, nil)
// Get Caddyfile input
caddyfileinput, err := caddy.LoadCaddyfile(serverType)

View file

@ -224,7 +224,7 @@ const (
)
// EventHook is a type which holds information about a startup hook plugin.
type EventHook func(eventType EventName) error
type EventHook func(eventType EventName, eventInfo interface{}) error
// RegisterEventHook plugs in hook. All the hooks should register themselves
// and they must have a name.
@ -241,9 +241,9 @@ func RegisterEventHook(name string, hook EventHook) {
// EmitEvent executes the different hooks passing the EventType as an
// argument. This is a blocking function. Hook developers should
// use 'go' keyword if they don't want to block Caddy.
func EmitEvent(event EventName) {
func EmitEvent(event EventName, info interface{}) {
for name, hook := range eventHooks {
err := hook(event)
err := hook(event, info)
if err != nil {
log.Printf("error on '%s' hook: %v", name, err)

View file

@ -53,7 +53,7 @@ func trapSignalsCrossPlatform() {
func executeShutdownCallbacks(signame string) (exitCode int) {
shutdownCallbacksOnce.Do(func() {
// execute third-party shutdown hooks
EmitEvent(ShutdownEvent)
EmitEvent(ShutdownEvent, signame)
errs := allShutdownCallbacks()
if len(errs) > 0 {