| 287 | } |
| 288 | |
| 289 | apr_status_t md_ocsp_reg_make(md_ocsp_reg_t **preg, apr_pool_t *p, md_store_t *store, |
| 290 | const md_timeslice_t *renew_window, |
| 291 | const char *user_agent, const char *proxy_url, |
| 292 | apr_time_t min_delay) |
| 293 | { |
| 294 | md_ocsp_reg_t *reg; |
| 295 | apr_status_t rv = APR_SUCCESS; |
| 296 | |
| 297 | reg = apr_palloc(p, sizeof(*reg)); |
| 298 | if (!reg) { |
| 299 | rv = APR_ENOMEM; |
| 300 | goto cleanup; |
| 301 | } |
| 302 | reg->p = p; |
| 303 | reg->store = store; |
| 304 | reg->user_agent = user_agent; |
| 305 | reg->proxy_url = proxy_url; |
| 306 | reg->id_by_external_id = apr_hash_make(p); |
| 307 | reg->ostat_by_id = apr_hash_make(p); |
| 308 | reg->renew_window = *renew_window; |
| 309 | reg->min_delay = min_delay; |
| 310 | |
| 311 | rv = apr_thread_mutex_create(®->mutex, APR_THREAD_MUTEX_NESTED, p); |
| 312 | if (APR_SUCCESS != rv) goto cleanup; |
| 313 | |
| 314 | apr_pool_cleanup_register(p, reg, ocsp_reg_cleanup, apr_pool_cleanup_null); |
| 315 | cleanup: |
| 316 | *preg = (APR_SUCCESS == rv)? reg : NULL; |
| 317 | return rv; |
| 318 | } |
| 319 | |
| 320 | apr_status_t md_ocsp_prime(md_ocsp_reg_t *reg, const char *ext_id, apr_size_t ext_id_len, |
| 321 | md_cert_t *cert, md_cert_t *issuer, const md_t *md) |
no outgoing calls
no test coverage detected