aboutsummaryrefslogtreecommitdiff
path: root/core/setup/health.go
blob: 542cb326015476809c4961d63b686e8329c13a3d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package setup

import (
	"github.com/miekg/coredns/middleware"
	"github.com/miekg/coredns/middleware/health"
)

func Health(c *Controller) (middleware.Middleware, error) {
	addr, err := parseHealth(c)
	if err != nil {
		return nil, err
	}

	h := &health.Health{Addr: addr}
	c.Startup = append(c.Startup, h.Start)
	c.Shutdown = append(c.Shutdown, h.Shutdown)
	return nil, nil
}

func parseHealth(c *Controller) (string, error) {
	addr := ""
	for c.Next() {
		args := c.RemainingArgs()

		switch len(args) {
		case 0:
		case 1:
			addr = args[0]
		default:
			return "", c.ArgErr()
		}
	}
	return addr, nil
}