MCPcopy
hub / github.com/caddyserver/caddy / UnmarshalCaddyfile

Method UnmarshalCaddyfile

modules/caddytls/zerosslissuer.go:138–249  ·  view source on GitHub ↗

UnmarshalCaddyfile deserializes Caddyfile tokens into iss. ... zerossl <api_key> { validity_days <days> alt_http_port <port> dns <provider_name> ... propagation_delay <duration> propagation_timeout <duration> resolvers <list...> dns_ttl <duration> }

(d *caddyfile.Dispenser)

Source from the content-addressed store, hash-verified

136// dns_ttl <duration>
137// }
138func (iss *ZeroSSLIssuer) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
139 d.Next() // consume issuer name
140
141 // API key is required
142 if !d.NextArg() {
143 return d.ArgErr()
144 }
145 iss.APIKey = d.Val()
146 if d.NextArg() {
147 return d.ArgErr()
148 }
149
150 for nesting := d.Nesting(); d.NextBlock(nesting); {
151 switch d.Val() {
152 case "validity_days":
153 if iss.ValidityDays != 0 {
154 return d.Errf("validity days is already specified: %d", iss.ValidityDays)
155 }
156 days, err := strconv.Atoi(d.Val())
157 if err != nil {
158 return d.Errf("invalid number of days %s: %v", d.Val(), err)
159 }
160 iss.ValidityDays = days
161
162 case "alt_http_port":
163 if !d.NextArg() {
164 return d.ArgErr()
165 }
166 port, err := strconv.Atoi(d.Val())
167 if err != nil {
168 return d.Errf("invalid port %s: %v", d.Val(), err)
169 }
170 iss.AlternateHTTPPort = port
171
172 case "dns":
173 if !d.NextArg() {
174 return d.ArgErr()
175 }
176 provName := d.Val()
177 if iss.CNAMEValidation == nil {
178 iss.CNAMEValidation = new(DNSChallengeConfig)
179 }
180 unm, err := caddyfile.UnmarshalModule(d, "dns.providers."+provName)
181 if err != nil {
182 return err
183 }
184 iss.CNAMEValidation.ProviderRaw = caddyconfig.JSONModuleObject(unm, "name", provName, nil)
185
186 case "propagation_delay":
187 if !d.NextArg() {
188 return d.ArgErr()
189 }
190 delayStr := d.Val()
191 delay, err := caddy.ParseDuration(delayStr)
192 if err != nil {
193 return d.Errf("invalid propagation_delay duration %s: %v", delayStr, err)
194 }
195 if iss.CNAMEValidation == nil {

Callers

nothing calls this directly

Calls 11

UnmarshalModuleFunction · 0.92
JSONModuleObjectFunction · 0.92
NextArgMethod · 0.80
ArgErrMethod · 0.80
ValMethod · 0.80
NestingMethod · 0.80
NextBlockMethod · 0.80
ErrfMethod · 0.80
DurationMethod · 0.80
RemainingArgsMethod · 0.80
NextMethod · 0.65

Tested by

no test coverage detected