aboutsummaryrefslogtreecommitdiff
path: root/middleware/dnssec/setup.go
blob: 999f85bf8ba9c7ddb1f604731ef862384154cc27 (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package dnssec

import (
	"strings"

	"github.com/miekg/coredns/core/dnsserver"
	"github.com/miekg/coredns/middleware"

	"github.com/mholt/caddy"
)

func init() {
	caddy.RegisterPlugin("dnssec", caddy.Plugin{
		ServerType: "dns",
		Action:     setup,
	})
}

func setup(c *caddy.Controller) error {
	zones, keys, err := dnssecParse(c)
	if err != nil {
		return err
	}

	dnsserver.GetConfig(c).AddMiddleware(func(next dnsserver.Handler) dnsserver.Handler {
		return New(zones, keys, next)
	})

	return nil
}

func dnssecParse(c *caddy.Controller) ([]string, []*DNSKEY, error) {
	zones := []string{}

	keys := []*DNSKEY{}
	for c.Next() {
		if c.Val() == "dnssec" {
			// dnssec [zones...]
			zones = make([]string, len(c.ServerBlockKeys))
			copy(zones, c.ServerBlockKeys)
			args := c.RemainingArgs()
			if len(args) > 0 {
				zones = args
			}

			for c.NextBlock() {
				k, e := keyParse(c)
				if e != nil {
					return nil, nil, e
				}
				keys = append(keys, k...)
			}
		}
	}
	for i, _ := range zones {
		zones[i] = middleware.Host(zones[i]).Normalize()
	}
	return zones, keys, nil
}

func keyParse(c *caddy.Controller) ([]*DNSKEY, error) {
	keys := []*DNSKEY{}

	what := c.Val()
	if !c.NextArg() {
		return nil, c.ArgErr()
	}
	value := c.Val()
	switch what {
	case "key":
		if value == "file" {
			ks := c.RemainingArgs()
			for _, k := range ks {
				base := k
				// Kmiek.nl.+013+26205.key, handle .private or without extension: Kmiek.nl.+013+26205
				if strings.HasSuffix(k, ".key") {
					base = k[:len(k)-4]
				}
				if strings.HasSuffix(k, ".private") {
					base = k[:len(k)-8]
				}
				k, err := ParseKeyFile(base+".key", base+".private")
				if err != nil {
					return nil, err
				}
				keys = append(keys, k)
			}
		}
	}
	return keys, nil
}
fs-abstraction Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/packages/astro/CHANGELOG.md (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2024-11-15[ci] release (#12427)astro@4.16.13@astrojs/svelte@6.0.0@astrojs/solid-js@4.4.3Gravatar Houston (Bot) 1-0/+8
2024-11-15prevents access to the history state if not set (#12436)Gravatar Martin Trapp 2-1/+6
2024-11-14chore: breakdown of benchmarks (#12433)Gravatar Emanuele Stoppa 2-34/+46
2024-11-14Update to svelte 5 (#12364)Gravatar Jacob Jenkins 77-636/+459
2024-11-14fix(actions): internal symbol check (#12424)Gravatar Emanuele Stoppa 4-3/+13
2024-11-14[ci] formatGravatar Arpan Patel 1-6/+2
2024-11-14Fix script injection during build (#12392)Gravatar Arpan Patel 5-37/+48
2024-11-13[ci] release (beta) (#12405)astro@5.0.0-beta.8Gravatar Houston (Bot) 29-54/+125
2024-11-13[ci] release (#12422)astro@4.16.12Gravatar Houston (Bot) 28-54/+55
2024-11-13fix(routing): middleware in dev (#12420)Gravatar Emanuele Stoppa 6-9/+52
2024-11-12[ci] release (#12403)astro@4.16.11Gravatar Houston (Bot) 30-73/+68
2024-11-11fix(routing): emit error for forbidden rewrite (#12339)Gravatar Emanuele Stoppa 7-0/+88
2024-11-11[ci] formatGravatar Sarah Rainsberger 1-38/+38
2024-11-11update markdown config docs (#12382)Gravatar Sarah Rainsberger 1-4/+45
2024-11-08Actions middleware (#12373)Gravatar Ben Holmes 26-311/+483
2024-11-08Fix incorrect status code in dev server for action errors (#12401)Gravatar Ben Holmes 2-13/+21
2024-11-08fix(actions): better runtime check for invalid usages (#12402)Gravatar Emanuele Stoppa 8-5/+47
2024-11-08fix: error overlay message escape (#12305)Gravatar Florian Lefebvre 3-0/+28
2024-11-06[ci] release (beta) (#12370)create-astro@4.11.0-beta.0astro@5.0.0-beta.7@astrojs/svelte@6.0.0-beta.2Gravatar Houston (Bot) 31-55/+84
2024-11-06Add svelte changesetGravatar bluwy 5-39/+51
2024-11-06[ci] release (#12369)astro@4.16.10@astrojs/svelte@5.7.3Gravatar Houston (Bot) 34-81/+74
2024-11-06Update to Vite 6.0.0-beta.6 (#12323)Gravatar Bjorn Lu 15-100/+123
2024-11-06[ci] formatGravatar Bjorn Lu 2-18/+17
2024-11-06Add support for Svelte 5 @render syntax (#12390)Gravatar Bjorn Lu 3-0/+30
2024-11-06fix(deps): update all non-major dependencies (#12366)Gravatar renovate[bot] 29-533/+552