| 742 | } |
| 743 | |
| 744 | static apr_status_t ostat_on_req_status(const md_http_request_t *req, apr_status_t status, |
| 745 | void *baton) |
| 746 | { |
| 747 | md_ocsp_update_t *update = baton; |
| 748 | md_ocsp_status_t *ostat = update->ostat; |
| 749 | |
| 750 | (void)req; |
| 751 | md_job_end_run(update->job, update->result); |
| 752 | if (APR_SUCCESS != status) { |
| 753 | ++ostat->errors; |
| 754 | ostat->next_run = apr_time_now() + md_job_delay_on_errors(update->job, ostat->errors, NULL); |
| 755 | md_result_printf(update->result, status, "OCSP status update failed (%d. time)", |
| 756 | ostat->errors); |
| 757 | md_result_log(update->result, MD_LOG_DEBUG); |
| 758 | md_job_log_append(update->job, "ocsp-error", |
| 759 | update->result->problem, update->result->detail); |
| 760 | md_event_holler("ocsp-errored", update->job->mdomain, update->job, update->result, update->p); |
| 761 | goto cleanup; |
| 762 | } |
| 763 | md_event_holler("ocsp-renewed", update->job->mdomain, update->job, update->result, update->p); |
| 764 | |
| 765 | cleanup: |
| 766 | md_job_save(update->job, update->result, update->p); |
| 767 | ostat_req_cleanup(ostat); |
| 768 | return APR_SUCCESS; |
| 769 | } |
| 770 | |
| 771 | typedef struct { |
| 772 | md_ocsp_reg_t *reg; |
nothing calls this directly
no test coverage detected