Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
mod_md_status.c File Reference
#include <assert.h>
#include <apr_optional.h>
#include <apr_time.h>
#include <apr_date.h>
#include <apr_strings.h>
#include <httpd.h>
#include <http_core.h>
#include <http_protocol.h>
#include <http_request.h>
#include <http_log.h>
#include "mod_status.h"
#include "md.h"
#include "md_curl.h"
#include "md_crypt.h"
#include "md_http.h"
#include "md_ocsp.h"
#include "md_json.h"
#include "md_status.h"
#include "md_store.h"
#include "md_store_fs.h"
#include "md_log.h"
#include "md_reg.h"
#include "md_util.h"
#include "md_version.h"
#include "md_acme.h"
#include "md_acme_authz.h"
#include "mod_md.h"
#include "mod_md_private.h"
#include "mod_md_config.h"
#include "mod_md_drive.h"
#include "mod_md_status.h"

Go to the source code of this file.

Classes

struct  status_ctx
 
struct  status_info
 

Macros

#define APACHE_PREFIX   "/.httpd/"
 
#define MD_STATUS_RESOURCE   APACHE_PREFIX"certificate-status"
 
#define HTML_STATUS(X)   (!((X)->flags & AP_STATUS_SHORT))
 

Typedefs

typedef struct status_info status_info
 
typedef void add_status_fn(status_ctx *ctx, md_json_t *mdj, const status_info *info)
 

Functions

int md_http_cert_status (request_rec *r)
 
static void add_json_val (status_ctx *ctx, md_json_t *j)
 
static void si_val_status (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void si_val_url (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void print_date (status_ctx *ctx, apr_time_t timestamp, const char *title)
 
static void print_time (status_ctx *ctx, const char *label, apr_time_t t)
 
static void si_val_valid_time (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void si_add_header (status_ctx *ctx, const status_info *info)
 
static void si_val_cert_valid_time (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void val_url_print (status_ctx *ctx, const status_info *info, const char *url, const char *proto, int i)
 
static void si_val_ca_urls (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static int count_certs (void *baton, const char *key, md_json_t *json)
 
static void print_job_summary (status_ctx *ctx, md_json_t *mdj, const char *key, const char *separator)
 
static void si_val_activity (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static int cert_check_iter (void *baton, const char *key, md_json_t *json)
 
static void si_val_remote_check (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void si_val_stapling (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static int json_iter_val (void *data, size_t index, md_json_t *json)
 
static void si_val_names (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static void add_status_cell (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static int add_md_row (void *baton, apr_size_t index, md_json_t *mdj)
 
static int md_name_cmp (const void *v1, const void *v2)
 
int md_domains_status_hook (request_rec *r, int flags)
 
static void si_val_ocsp_activity (status_ctx *ctx, md_json_t *mdj, const status_info *info)
 
static int add_ocsp_row (void *baton, apr_size_t index, md_json_t *mdj)
 
int md_ocsp_status_hook (request_rec *r, int flags)
 
int md_status_handler (request_rec *r)
 

Variables

static const status_info status_infos []
 
static const status_info ocsp_status_infos []
 

Macro Definition Documentation

◆ APACHE_PREFIX

#define APACHE_PREFIX   "/.httpd/"

Definition at line 56 of file mod_md_status.c.

◆ HTML_STATUS

#define HTML_STATUS (   X)    (!((X)->flags & AP_STATUS_SHORT))

Definition at line 58 of file mod_md_status.c.

◆ MD_STATUS_RESOURCE

#define MD_STATUS_RESOURCE   APACHE_PREFIX"certificate-status"

Definition at line 57 of file mod_md_status.c.

Typedef Documentation

◆ add_status_fn

Definition at line 164 of file mod_md_status.c.

◆ status_info

Definition at line 160 of file mod_md_status.c.

Function Documentation

◆ add_json_val()

static void add_json_val ( status_ctx ctx,
md_json_t j 
)
static

Definition at line 641 of file mod_md_status.c.

◆ add_md_row()

static int add_md_row ( void *  baton,
apr_size_t  index,
md_json_t mdj 
)
static

Definition at line 715 of file mod_md_status.c.

◆ add_ocsp_row()

static int add_ocsp_row ( void *  baton,
apr_size_t  index,
md_json_t mdj 
)
static

Definition at line 842 of file mod_md_status.c.

◆ add_status_cell()

static void add_status_cell ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 687 of file mod_md_status.c.

◆ cert_check_iter()

static int cert_check_iter ( void *  baton,
const char key,
md_json_t json 
)
static

Definition at line 562 of file mod_md_status.c.

◆ count_certs()

static int count_certs ( void *  baton,
const char key,
md_json_t json 
)
static

Definition at line 415 of file mod_md_status.c.

◆ json_iter_val()

static int json_iter_val ( void *  data,
size_t  index,
md_json_t json 
)
static

Definition at line 624 of file mod_md_status.c.

◆ md_domains_status_hook()

int md_domains_status_hook ( request_rec r,
int  flags 
)

< Module declines to handle

< Module declines to handle

< Module has handled this stage.

Definition at line 744 of file mod_md_status.c.

◆ md_http_cert_status()

int md_http_cert_status ( request_rec r)

< Module declines to handle

< Module declines to handle

< Module declines to handle

RFC 2616: HTTP

< Module has served the response completely * - it's safe to die() with no more output

Definition at line 60 of file mod_md_status.c.

◆ md_name_cmp()

static int md_name_cmp ( const void *  v1,
const void *  v2 
)
static

Definition at line 739 of file mod_md_status.c.

◆ md_ocsp_status_hook()

int md_ocsp_status_hook ( request_rec r,
int  flags 
)

< Module declines to handle

< Module declines to handle

< Module has handled this stage.

Definition at line 866 of file mod_md_status.c.

◆ md_status_handler()

int md_status_handler ( request_rec r)

< Module declines to handle

< Module declines to handle

< Module declines to handle

RFC 2616: HTTP

< Module has served the response completely * - it's safe to die() with no more output

< Module declines to handle

Definition at line 935 of file mod_md_status.c.

◆ print_date()

static void print_date ( status_ctx ctx,
apr_time_t  timestamp,
const char title 
)
static

Definition at line 220 of file mod_md_status.c.

◆ print_job_summary()

static void print_job_summary ( status_ctx ctx,
md_json_t mdj,
const char key,
const char separator 
)
static

Definition at line 426 of file mod_md_status.c.

◆ print_time()

static void print_time ( status_ctx ctx,
const char label,
apr_time_t  t 
)
static

Definition at line 249 of file mod_md_status.c.

◆ si_add_header()

static void si_add_header ( status_ctx ctx,
const status_info info 
)
static

Definition at line 334 of file mod_md_status.c.

◆ si_val_activity()

static void si_val_activity ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 522 of file mod_md_status.c.

◆ si_val_ca_urls()

static void si_val_ca_urls ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 386 of file mod_md_status.c.

◆ si_val_cert_valid_time()

static void si_val_cert_valid_time ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 342 of file mod_md_status.c.

◆ si_val_names()

static void si_val_names ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 669 of file mod_md_status.c.

◆ si_val_ocsp_activity()

static void si_val_ocsp_activity ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 816 of file mod_md_status.c.

◆ si_val_remote_check()

static void si_val_remote_check ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 597 of file mod_md_status.c.

◆ si_val_stapling()

static void si_val_stapling ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 612 of file mod_md_status.c.

◆ si_val_status()

static void si_val_status ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 172 of file mod_md_status.c.

◆ si_val_url()

static void si_val_url ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 200 of file mod_md_status.c.

◆ si_val_valid_time()

static void si_val_valid_time ( status_ctx ctx,
md_json_t mdj,
const status_info info 
)
static

Definition at line 298 of file mod_md_status.c.

◆ val_url_print()

static void val_url_print ( status_ctx ctx,
const status_info info,
const char url,
const char proto,
int  i 
)
static

Definition at line 352 of file mod_md_status.c.

Variable Documentation

◆ ocsp_status_infos

const status_info ocsp_status_infos[]
static
Initial value:
= {
{ "Domain", "domain" , NULL },
{ "CertificateID", "id" , NULL },
{ "OCSPStatus", "status" , NULL },
{ "StaplingValid", "valid" , si_val_valid_time },
{ "Responder", "url" , si_val_url },
{ "Activity", "notified" , si_val_ocsp_activity },
}
static void si_val_ocsp_activity(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_valid_time(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_url(status_ctx *ctx, md_json_t *mdj, const status_info *info)
return NULL
Definition mod_so.c:359

Definition at line 833 of file mod_md_status.c.

◆ status_infos

const status_info status_infos[]
static
Initial value:
= {
{ "Domain", "name" , NULL },
{ "Names", "domains" , si_val_names },
{ "Status", "state" , si_val_status },
{ "Valid", "cert" , si_val_cert_valid_time },
{ "CA", "ca" , si_val_ca_urls },
{ "Stapling", "stapling" , si_val_stapling },
{ "CheckAt", "sha256-fingerprint" , si_val_remote_check },
{ "Activity", "notified" , si_val_activity },
}
static void si_val_names(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_remote_check(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_ca_urls(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_activity(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_cert_valid_time(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_stapling(status_ctx *ctx, md_json_t *mdj, const status_info *info)
static void si_val_status(status_ctx *ctx, md_json_t *mdj, const status_info *info)

Definition at line 704 of file mod_md_status.c.