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)
| 136 | // dns_ttl <duration> |
| 137 | // } |
| 138 | func (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 { |
nothing calls this directly
no test coverage detected