| 663 | } |
| 664 | |
| 665 | apr_time_t md_reg_valid_until(md_reg_t *reg, const md_t *md, apr_pool_t *p) |
| 666 | { |
| 667 | const md_pubcert_t *pub; |
| 668 | const md_cert_t *cert; |
| 669 | int i; |
| 670 | apr_time_t t, valid_until = 0; |
| 671 | apr_status_t rv; |
| 672 | |
| 673 | for (i = 0; i < md_cert_count(md); ++i) { |
| 674 | rv = md_reg_get_pubcert(&pub, reg, md, i, p); |
| 675 | if (APR_SUCCESS == rv) { |
| 676 | cert = APR_ARRAY_IDX(pub->certs, 0, const md_cert_t*); |
| 677 | t = md_cert_get_not_after(cert); |
| 678 | if (valid_until == 0 || t < valid_until) { |
| 679 | valid_until = t; |
| 680 | } |
| 681 | } |
| 682 | } |
| 683 | return valid_until; |
| 684 | } |
| 685 | |
| 686 | apr_time_t md_reg_renew_at(md_reg_t *reg, const md_t *md, apr_pool_t *p) |
| 687 | { |
no test coverage detected