| 228 | } |
| 229 | |
| 230 | md_t *md_clone(apr_pool_t *p, const md_t *src) |
| 231 | { |
| 232 | md_t *md; |
| 233 | |
| 234 | md = apr_pcalloc(p, sizeof(*md)); |
| 235 | if (md) { |
| 236 | md->state = src->state; |
| 237 | md->name = apr_pstrdup(p, src->name); |
| 238 | md->require_https = src->require_https; |
| 239 | md->must_staple = src->must_staple; |
| 240 | md->renew_mode = src->renew_mode; |
| 241 | md->domains = md_array_str_compact(p, src->domains, 0); |
| 242 | md->pks = md_pkeys_spec_clone(p, src->pks); |
| 243 | md->renew_window = src->renew_window; |
| 244 | md->warn_window = src->warn_window; |
| 245 | md->contacts = md_array_str_clone(p, src->contacts); |
| 246 | if (src->ca_proto) md->ca_proto = apr_pstrdup(p, src->ca_proto); |
| 247 | if (src->ca_urls) { |
| 248 | md->ca_urls = md_array_str_clone(p, src->ca_urls); |
| 249 | } |
| 250 | if (src->ca_effective) md->ca_effective = apr_pstrdup(p, src->ca_effective); |
| 251 | if (src->ca_account) md->ca_account = apr_pstrdup(p, src->ca_account); |
| 252 | if (src->ca_agreement) md->ca_agreement = apr_pstrdup(p, src->ca_agreement); |
| 253 | if (src->defn_name) md->defn_name = apr_pstrdup(p, src->defn_name); |
| 254 | md->defn_line_number = src->defn_line_number; |
| 255 | if (src->ca_challenges) { |
| 256 | md->ca_challenges = md_array_str_clone(p, src->ca_challenges); |
| 257 | } |
| 258 | md->acme_tls_1_domains = md_array_str_compact(p, src->acme_tls_1_domains, 0); |
| 259 | md->stapling = src->stapling; |
| 260 | if (src->dns01_cmd) md->dns01_cmd = apr_pstrdup(p, src->dns01_cmd); |
| 261 | if (src->cert_files) md->cert_files = md_array_str_clone(p, src->cert_files); |
| 262 | if (src->pkey_files) md->pkey_files = md_array_str_clone(p, src->pkey_files); |
| 263 | } |
| 264 | return md; |
| 265 | } |
| 266 | |
| 267 | /**************************************************************************************************/ |
| 268 | /* format conversion */ |
no test coverage detected