From 53ac1e3c8afe12ff1f4a619f2f1d01b48fe7dfb0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 15 Feb 2016 20:17:31 +0100 Subject: Add domain --- cmd/acme/config.go | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'cmd/acme/config.go') diff --git a/cmd/acme/config.go b/cmd/acme/config.go index e58aad7..04b9ab2 100644 --- a/cmd/acme/config.go +++ b/cmd/acme/config.go @@ -108,16 +108,33 @@ func LoadConfig(fname string) (*Config, error) { v.Key = path.Join(c.BaseDir, v.Key) v.Cert = path.Join(c.BaseDir, v.Cert) } - switch len(v.Altnames) { - case 0: - return nil, errNoAltNames - case 1: - an := v.Altnames[0] - if strings.HasPrefix(an, "www.") { - v.Altnames = append(v.Altnames, an[4:]) - } - } + v.Altnames = checkWWW(v.Altnames) c.Desire[k] = v } return c, nil } + +func checkWWW(altnames []string) []string { + find := func(prefix string) (ret []string) { + for _, an := range altnames { + if strings.HasPrefix(an, prefix) { + ret = append(ret, an[len(prefix):]) + } + } + return + } + has := func(s string) bool { + for _, an := range altnames { + if an == s { + return true + } + } + return false + } + for _, d := range find("www.") { + if !has(d) { + altnames = append(altnames, d) + } + } + return altnames +} -- cgit v1.2.3