Apache HTTPD
Classes | Macros | Functions
md_status.c File Reference
#include <assert.h>
#include <stdlib.h>
#include <apr_lib.h>
#include <apr_strings.h>
#include <apr_tables.h>
#include <apr_time.h>
#include <apr_date.h>
#include "md_json.h"
#include "md.h"
#include "md_acme.h"
#include "md_crypt.h"
#include "md_event.h"
#include "md_log.h"
#include "md_ocsp.h"
#include "md_store.h"
#include "md_result.h"
#include "md_reg.h"
#include "md_util.h"
#include "md_status.h"

Go to the source code of this file.

Classes

struct  log_find_ctx
 
struct  md_job_result_ctx
 

Macros

#define MD_STATUS_WITH_SCTS   0
 

Functions

static apr_status_t status_get_cert_json (md_json_t **pjson, const md_cert_t *cert, apr_pool_t *p)
 
static apr_status_t job_loadj (md_json_t **pjson, md_store_group_t group, const char *name, struct md_reg_t *reg, int with_log, apr_pool_t *p)
 
static apr_status_t status_get_cert_json_ex (md_json_t **pjson, const md_cert_t *cert, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
 
static int get_cert_count (const md_t *md, int from_staging)
 
static const charget_cert_name (const md_t *md, int i, int from_staging, apr_pool_t *p)
 
static apr_status_t status_get_certs_json (md_json_t **pjson, apr_array_header_t *certs, int from_staging, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
 
static apr_status_t get_staging_certs_json (md_json_t **pjson, const md_t *md, md_reg_t *reg, apr_pool_t *p)
 
static apr_status_t status_get_md_json (md_json_t **pjson, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
 
apr_status_t md_status_get_md_json (md_json_t **pjson, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, apr_pool_t *p)
 
apr_status_t md_status_get_json (md_json_t **pjson, apr_array_header_t *mds, md_reg_t *reg, md_ocsp_reg_t *ocsp, apr_pool_t *p)
 
md_job_tmd_job_make (apr_pool_t *p, md_store_t *store, md_store_group_t group, const char *name, apr_time_t min_delay)
 
void md_job_set_group (md_job_t *job, md_store_group_t group)
 
static void md_job_from_json (md_job_t *job, md_json_t *json, apr_pool_t *p)
 
static void job_to_json (md_json_t *json, const md_job_t *job, md_result_t *result, apr_pool_t *p)
 
apr_status_t md_job_load (md_job_t *job)
 
apr_status_t md_job_save (md_job_t *job, md_result_t *result, apr_pool_t *p)
 
void md_job_log_append (md_job_t *job, const char *type, const char *status, const char *detail)
 
static int find_first_log_entry (void *baton, size_t index, md_json_t *entry)
 
md_json_tmd_job_log_get_latest (md_job_t *job, const char *type)
 
apr_time_t md_job_log_get_time_of_latest (md_job_t *job, const char *type)
 
void md_status_take_stock (md_json_t **pjson, apr_array_header_t *mds, md_reg_t *reg, apr_pool_t *p)
 
static void job_result_update (md_result_t *result, void *data)
 
static apr_status_t job_result_raise (md_result_t *result, void *data, const char *event, apr_pool_t *p)
 
static void job_result_holler (md_result_t *result, void *data, const char *event, apr_pool_t *p)
 
static void job_observation_start (md_job_t *job, md_result_t *result, md_store_t *store)
 
static void job_observation_end (md_job_t *job)
 
void md_job_start_run (md_job_t *job, md_result_t *result, md_store_t *store)
 
apr_time_t md_job_delay_on_errors (md_job_t *job, int err_count, const char *last_problem)
 
void md_job_end_run (md_job_t *job, md_result_t *result)
 
void md_job_retry_at (md_job_t *job, apr_time_t later)
 
apr_status_t md_job_notify (md_job_t *job, const char *reason, md_result_t *result)
 

Macro Definition Documentation

◆ MD_STATUS_WITH_SCTS

#define MD_STATUS_WITH_SCTS   0

Definition at line 39 of file md_status.c.

Function Documentation

◆ find_first_log_entry()

static int find_first_log_entry ( void *  baton,
size_t  index,
md_json_t entry 
)
static

Definition at line 407 of file md_status.c.

◆ get_cert_count()

static int get_cert_count ( const md_t md,
int  from_staging 
)
static

Definition at line 134 of file md_status.c.

◆ get_cert_name()

static const char * get_cert_name ( const md_t md,
int  i,
int  from_staging,
apr_pool_t p 
)
static

Definition at line 142 of file md_status.c.

◆ get_staging_certs_json()

static apr_status_t get_staging_certs_json ( md_json_t **  pjson,
const md_t md,
md_reg_t reg,
apr_pool_t p 
)
static

Definition at line 183 of file md_status.c.

◆ job_loadj()

static apr_status_t job_loadj ( md_json_t **  pjson,
md_store_group_t  group,
const char name,
struct md_reg_t reg,
int  with_log,
apr_pool_t p 
)
static

Definition at line 91 of file md_status.c.

◆ job_observation_end()

static void job_observation_end ( md_job_t job)
static

Definition at line 564 of file md_status.c.

◆ job_observation_start()

static void job_observation_start ( md_job_t job,
md_result_t result,
md_store_t store 
)
static

Definition at line 546 of file md_status.c.

◆ job_result_holler()

static void job_result_holler ( md_result_t result,
void *  data,
const char event,
apr_pool_t p 
)
static

Definition at line 538 of file md_status.c.

◆ job_result_raise()

static apr_status_t job_result_raise ( md_result_t result,
void *  data,
const char event,
apr_pool_t p 
)
static

Definition at line 528 of file md_status.c.

◆ job_result_update()

static void job_result_update ( md_result_t result,
void *  data 
)
static

Definition at line 495 of file md_status.c.

◆ job_to_json()

static void job_to_json ( md_json_t json,
const md_job_t job,
md_result_t result,
apr_pool_t p 
)
static

Definition at line 329 of file md_status.c.

◆ md_job_delay_on_errors()

apr_time_t md_job_delay_on_errors ( md_job_t job,
int  err_count,
const char last_problem 
)

Given the number of errors and the last problem encountered, recommend a delay for the next attempt of job

Definition at line 578 of file md_status.c.

◆ md_job_end_run()

void md_job_end_run ( md_job_t job,
md_result_t result 
)

Definition at line 611 of file md_status.c.

◆ md_job_from_json()

static void md_job_from_json ( md_job_t job,
md_json_t json,
apr_pool_t p 
)
static

Definition at line 307 of file md_status.c.

◆ md_job_load()

apr_status_t md_job_load ( md_job_t job)

Update the job from storage in <group>/job->mdomain.

Definition at line 358 of file md_status.c.

◆ md_job_log_append()

void md_job_log_append ( md_job_t job,
const char type,
const char status,
const char detail 
)

Append to the job's log. Timestamp is automatically added.

Parameters
typetype of log entry
statusstatus of entry (maybe NULL)
detaildescription of what happened

Definition at line 382 of file md_status.c.

◆ md_job_log_get_latest()

md_json_t * md_job_log_get_latest ( md_job_t job,
const char type 
)

Retrieve the latest log entry of a certain type.

Definition at line 421 of file md_status.c.

◆ md_job_log_get_time_of_latest()

apr_time_t md_job_log_get_time_of_latest ( md_job_t job,
const char type 
)

Get the time the latest log entry of the given type happened, or 0 if none is found.

Definition at line 433 of file md_status.c.

◆ md_job_make()

md_job_t * md_job_make ( apr_pool_t p,
md_store_t store,
md_store_group_t  group,
const char name,
apr_time_t  min_delay 
)

Create a new job instance for the given MD name. Job load/save will work using the name.

Definition at line 288 of file md_status.c.

◆ md_job_notify()

apr_status_t md_job_notify ( md_job_t job,
const char reason,
md_result_t result 
)

Definition at line 634 of file md_status.c.

◆ md_job_retry_at()

void md_job_retry_at ( md_job_t job,
apr_time_t  later 
)

Definition at line 628 of file md_status.c.

◆ md_job_save()

apr_status_t md_job_save ( md_job_t job,
struct md_result_t result,
apr_pool_t p 
)

Update storage from job in <group>/job->mdomain.

Definition at line 370 of file md_status.c.

◆ md_job_set_group()

void md_job_set_group ( md_job_t job,
md_store_group_t  group 
)

Definition at line 302 of file md_status.c.

◆ md_job_start_run()

void md_job_start_run ( md_job_t job,
md_result_t result,
md_store_t store 
)

Definition at line 570 of file md_status.c.

◆ md_status_get_json()

apr_status_t md_status_get_json ( struct md_json_t **  pjson,
apr_array_header_t mds,
struct md_reg_t reg,
struct md_ocsp_reg_t ocsp,
apr_pool_t p 
)

Get a JSON summary of all MDs and their status.

Definition at line 267 of file md_status.c.

◆ md_status_get_md_json()

apr_status_t md_status_get_md_json ( struct md_json_t **  pjson,
const md_t md,
struct md_reg_t reg,
struct md_ocsp_reg_t ocsp,
apr_pool_t p 
)

Get a JSON summary of the MD and its status (certificates, jobs, etc.).

Definition at line 261 of file md_status.c.

◆ md_status_take_stock()

void md_status_take_stock ( struct md_json_t **  pjson,
apr_array_header_t mds,
struct md_reg_t reg,
apr_pool_t p 
)

Take stock of all MDs given for a short overview. The JSON returned will carry integers for MD_KEY_COMPLETE, MD_KEY_RENEWING, MD_KEY_ERRORED, MD_KEY_READY and MD_KEY_TOTAL.

Definition at line 446 of file md_status.c.

◆ status_get_cert_json()

static apr_status_t status_get_cert_json ( md_json_t **  pjson,
const md_cert_t cert,
apr_pool_t p 
)
static

Definition at line 44 of file md_status.c.

◆ status_get_cert_json_ex()

static apr_status_t status_get_cert_json_ex ( md_json_t **  pjson,
const md_cert_t cert,
const md_t md,
md_reg_t reg,
md_ocsp_reg_t ocsp,
int  with_logs,
apr_pool_t p 
)
static

Definition at line 102 of file md_status.c.

◆ status_get_certs_json()

static apr_status_t status_get_certs_json ( md_json_t **  pjson,
apr_array_header_t certs,
int  from_staging,
const md_t md,
md_reg_t reg,
md_ocsp_reg_t ocsp,
int  with_logs,
apr_pool_t p 
)
static

Definition at line 151 of file md_status.c.

◆ status_get_md_json()

static apr_status_t status_get_md_json ( md_json_t **  pjson,
const md_t md,
md_reg_t reg,
md_ocsp_reg_t ocsp,
int  with_logs,
apr_pool_t p 
)
static

Definition at line 205 of file md_status.c.