Apache HTTPD
Classes | Macros | Functions
md_json.c File Reference
#include <assert.h>
#include <apr_lib.h>
#include <apr_strings.h>
#include <apr_buckets.h>
#include <apr_date.h>
#include "md_json.h"
#include "md_log.h"
#include "md_http.h"
#include "md_time.h"
#include "md_util.h"
#include <jansson_config.h>
#include <jansson.h>

Go to the source code of this file.

Classes

struct  md_json_t
 
struct  j_write_ctx
 
struct  resp_data
 

Macros

#define JSON_INLINE
 

Functions

static apr_status_t json_pool_cleanup (void *data)
 
static md_json_tjson_create (apr_pool_t *pool, json_t *j)
 
md_json_tmd_json_create (apr_pool_t *pool)
 
md_json_tmd_json_create_s (apr_pool_t *pool, const char *s)
 
void md_json_destroy (md_json_t *json)
 
md_json_tmd_json_copy (apr_pool_t *pool, const md_json_t *json)
 
md_json_tmd_json_clone (apr_pool_t *pool, const md_json_t *json)
 
static json_tjselect (const md_json_t *json, va_list ap)
 
static json_tjselect_parent (const char **child_key, int create, md_json_t *json, va_list ap)
 
static apr_status_t jselect_add (json_t *val, md_json_t *json, va_list ap)
 
static apr_status_t jselect_insert (json_t *val, size_t index, md_json_t *json, va_list ap)
 
static apr_status_t jselect_set (json_t *val, md_json_t *json, va_list ap)
 
static apr_status_t jselect_set_new (json_t *val, md_json_t *json, va_list ap)
 
int md_json_has_key (const md_json_t *json,...)
 
int md_json_is (const md_json_type_t jtype, md_json_t *json,...)
 
static const charmd_json_type_name (const md_json_t *json)
 
int md_json_getb (const md_json_t *json,...)
 
apr_status_t md_json_setb (int value, md_json_t *json,...)
 
double md_json_getn (const md_json_t *json,...)
 
apr_status_t md_json_setn (double value, md_json_t *json,...)
 
long md_json_getl (const md_json_t *json,...)
 
apr_status_t md_json_setl (long value, md_json_t *json,...)
 
const charmd_json_gets (const md_json_t *json,...)
 
const charmd_json_dups (apr_pool_t *p, const md_json_t *json,...)
 
apr_status_t md_json_sets (const char *value, md_json_t *json,...)
 
apr_time_t md_json_get_time (const md_json_t *json,...)
 
apr_status_t md_json_set_time (apr_time_t value, md_json_t *json,...)
 
md_json_tmd_json_getj (md_json_t *json,...)
 
md_json_tmd_json_dupj (apr_pool_t *p, const md_json_t *json,...)
 
const md_json_tmd_json_getcj (const md_json_t *json,...)
 
apr_status_t md_json_setj (const md_json_t *value, md_json_t *json,...)
 
apr_status_t md_json_addj (const md_json_t *value, md_json_t *json,...)
 
apr_status_t md_json_insertj (md_json_t *value, size_t index, md_json_t *json,...)
 
apr_size_t md_json_limita (size_t max_elements, md_json_t *json,...)
 
apr_status_t md_json_clr (md_json_t *json,...)
 
apr_status_t md_json_del (md_json_t *json,...)
 
apr_status_t md_json_gets_dict (apr_table_t *dict, const md_json_t *json,...)
 
static int object_set (void *data, const char *key, const char *val)
 
apr_status_t md_json_sets_dict (apr_table_t *dict, md_json_t *json,...)
 
apr_status_t md_json_pass_to (void *value, md_json_t *json, apr_pool_t *p, void *baton)
 
apr_status_t md_json_pass_from (void **pvalue, md_json_t *json, apr_pool_t *p, void *baton)
 
apr_status_t md_json_clone_to (void *value, md_json_t *json, apr_pool_t *p, void *baton)
 
apr_status_t md_json_clone_from (void **pvalue, const md_json_t *json, apr_pool_t *p, void *baton)
 
apr_status_t md_json_geta (apr_array_header_t *a, md_json_from_cb *cb, void *baton, const md_json_t *json,...)
 
apr_status_t md_json_seta (apr_array_header_t *a, md_json_to_cb *cb, void *baton, md_json_t *json,...)
 
int md_json_itera (md_json_itera_cb *cb, void *baton, md_json_t *json,...)
 
int md_json_iterkey (md_json_iterkey_cb *cb, void *baton, md_json_t *json,...)
 
apr_status_t md_json_getsa (apr_array_header_t *a, const md_json_t *json,...)
 
apr_status_t md_json_dupsa (apr_array_header_t *a, apr_pool_t *p, md_json_t *json,...)
 
apr_status_t md_json_setsa (apr_array_header_t *a, md_json_t *json,...)
 
static size_t fmt_to_flags (md_json_fmt_t fmt)
 
static int dump_cb (const char *buffer, size_t len, void *baton)
 
apr_status_t md_json_writeb (const md_json_t *json, md_json_fmt_t fmt, apr_bucket_brigade *bb)
 
static int chunk_cb (const char *buffer, size_t len, void *baton)
 
const charmd_json_writep (const md_json_t *json, apr_pool_t *p, md_json_fmt_t fmt)
 
apr_status_t md_json_writef (const md_json_t *json, apr_pool_t *p, md_json_fmt_t fmt, apr_file_t *f)
 
apr_status_t md_json_fcreatex (const md_json_t *json, apr_pool_t *p, md_json_fmt_t fmt, const char *fpath, apr_fileperms_t perms)
 
static apr_status_t write_json (void *baton, apr_file_t *f, apr_pool_t *p)
 
apr_status_t md_json_freplace (const md_json_t *json, apr_pool_t *p, md_json_fmt_t fmt, const char *fpath, apr_fileperms_t perms)
 
apr_status_t md_json_readd (md_json_t **pjson, apr_pool_t *pool, const char *data, size_t data_len)
 
static size_t load_cb (void *data, size_t max_len, void *baton)
 
apr_status_t md_json_readb (md_json_t **pjson, apr_pool_t *pool, apr_bucket_brigade *bb)
 
static size_t load_file_cb (void *data, size_t max_len, void *baton)
 
apr_status_t md_json_readf (md_json_t **pjson, apr_pool_t *p, const char *fpath)
 
apr_status_t md_json_read_http (md_json_t **pjson, apr_pool_t *pool, const md_http_response_t *res)
 
static apr_status_t json_resp_cb (const md_http_response_t *res, void *data)
 
apr_status_t md_json_http_get (md_json_t **pjson, apr_pool_t *pool, struct md_http_t *http, const char *url)
 
apr_status_t md_json_copy_to (md_json_t *dest, const md_json_t *src,...)
 
const charmd_json_dump_state (const md_json_t *json, apr_pool_t *p)
 
apr_status_t md_json_set_timeperiod (const md_timeperiod_t *tp, md_json_t *json,...)
 
apr_status_t md_json_get_timeperiod (md_timeperiod_t *tp, md_json_t *json,...)
 

Macro Definition Documentation

◆ JSON_INLINE

#define JSON_INLINE

Definition at line 45 of file md_json.c.

Function Documentation

◆ chunk_cb()

static int chunk_cb ( const char buffer,
size_t  len,
void *  baton 
)
static

Definition at line 978 of file md_json.c.

◆ dump_cb()

static int dump_cb ( const char buffer,
size_t  len,
void *  baton 
)
static

Definition at line 963 of file md_json.c.

◆ fmt_to_flags()

static size_t fmt_to_flags ( md_json_fmt_t  fmt)
static

Definition at line 954 of file md_json.c.

◆ jselect()

static json_t * jselect ( const md_json_t json,
va_list  ap 
)
static

Definition at line 125 of file md_json.c.

◆ jselect_add()

static apr_status_t jselect_add ( json_t val,
md_json_t json,
va_list  ap 
)
static

Definition at line 165 of file md_json.c.

◆ jselect_insert()

static apr_status_t jselect_insert ( json_t val,
size_t  index,
md_json_t json,
va_list  ap 
)
static

Definition at line 190 of file md_json.c.

◆ jselect_parent()

static json_t * jselect_parent ( const char **  child_key,
int  create,
md_json_t json,
va_list  ap 
)
static

Definition at line 139 of file md_json.c.

◆ jselect_set()

static apr_status_t jselect_set ( json_t val,
md_json_t json,
va_list  ap 
)
static

Definition at line 222 of file md_json.c.

◆ jselect_set_new()

static apr_status_t jselect_set_new ( json_t val,
md_json_t json,
va_list  ap 
)
static

Definition at line 250 of file md_json.c.

◆ json_create()

static md_json_t * json_create ( apr_pool_t pool,
json_t j 
)
static

Definition at line 73 of file md_json.c.

◆ json_pool_cleanup()

static apr_status_t json_pool_cleanup ( void *  data)
static

Definition at line 64 of file md_json.c.

◆ json_resp_cb()

static apr_status_t json_resp_cb ( const md_http_response_t res,
void *  data 
)
static

Definition at line 1209 of file md_json.c.

◆ load_cb()

static size_t load_cb ( void *  data,
size_t  max_len,
void *  baton 
)
static

Definition at line 1081 of file md_json.c.

◆ load_file_cb()

static size_t load_file_cb ( void *  data,
size_t  max_len,
void *  baton 
)
static

Definition at line 1140 of file md_json.c.

◆ md_json_addj()

apr_status_t md_json_addj ( const md_json_t value,
md_json_t json,
  ... 
)

Definition at line 555 of file md_json.c.

◆ md_json_clone()

md_json_t * md_json_clone ( apr_pool_t pool,
const md_json_t json 
)

Definition at line 116 of file md_json.c.

◆ md_json_clone_from()

apr_status_t md_json_clone_from ( void **  pvalue,
const md_json_t json,
apr_pool_t p,
void *  baton 
)

Definition at line 720 of file md_json.c.

◆ md_json_clone_to()

apr_status_t md_json_clone_to ( void *  value,
md_json_t json,
apr_pool_t p,
void *  baton 
)

Definition at line 714 of file md_json.c.

◆ md_json_clr()

apr_status_t md_json_clr ( md_json_t json,
  ... 
)

Definition at line 600 of file md_json.c.

◆ md_json_copy()

md_json_t * md_json_copy ( apr_pool_t pool,
const md_json_t json 
)

Definition at line 111 of file md_json.c.

◆ md_json_copy_to()

apr_status_t md_json_copy_to ( md_json_t dest,
const md_json_t src,
  ... 
)

Definition at line 1235 of file md_json.c.

◆ md_json_create()

md_json_t * md_json_create ( apr_pool_t pool)

Definition at line 92 of file md_json.c.

◆ md_json_create_s()

md_json_t * md_json_create_s ( apr_pool_t pool,
const char s 
)

Definition at line 97 of file md_json.c.

◆ md_json_del()

apr_status_t md_json_del ( md_json_t json,
  ... 
)

Definition at line 618 of file md_json.c.

◆ md_json_destroy()

void md_json_destroy ( md_json_t json)

Definition at line 102 of file md_json.c.

◆ md_json_dump_state()

const char * md_json_dump_state ( const md_json_t json,
apr_pool_t p 
)

Definition at line 1253 of file md_json.c.

◆ md_json_dupj()

md_json_t * md_json_dupj ( apr_pool_t p,
const md_json_t json,
  ... 
)

Definition at line 492 of file md_json.c.

◆ md_json_dups()

const char * md_json_dups ( apr_pool_t p,
const md_json_t json,
  ... 
)

Definition at line 418 of file md_json.c.

◆ md_json_dupsa()

apr_status_t md_json_dupsa ( apr_array_header_t a,
apr_pool_t p,
md_json_t json,
  ... 
)

Definition at line 887 of file md_json.c.

◆ md_json_fcreatex()

apr_status_t md_json_fcreatex ( const md_json_t json,
apr_pool_t p,
md_json_fmt_t  fmt,
const char fpath,
apr_fileperms_t  perms 
)

Definition at line 1034 of file md_json.c.

◆ md_json_freplace()

apr_status_t md_json_freplace ( const md_json_t json,
apr_pool_t p,
md_json_fmt_t  fmt,
const char fpath,
apr_fileperms_t  perms 
)

Definition at line 1058 of file md_json.c.

◆ md_json_get_time()

apr_time_t md_json_get_time ( const md_json_t json,
  ... 
)

Definition at line 444 of file md_json.c.

◆ md_json_get_timeperiod()

apr_status_t md_json_get_timeperiod ( md_timeperiod_t tp,
md_json_t json,
  ... 
)

Definition at line 1291 of file md_json.c.

◆ md_json_geta()

apr_status_t md_json_geta ( apr_array_header_t a,
md_json_from_cb cb,
void *  baton,
const md_json_t json,
  ... 
)

Definition at line 730 of file md_json.c.

◆ md_json_getb()

int md_json_getb ( const md_json_t json,
  ... 
)

Definition at line 330 of file md_json.c.

◆ md_json_getcj()

const md_json_t * md_json_getcj ( const md_json_t json,
  ... 
)

Definition at line 508 of file md_json.c.

◆ md_json_getj()

md_json_t * md_json_getj ( md_json_t json,
  ... 
)

Definition at line 473 of file md_json.c.

◆ md_json_getl()

long md_json_getl ( const md_json_t json,
  ... 
)

Definition at line 381 of file md_json.c.

◆ md_json_getn()

double md_json_getn ( const md_json_t json,
  ... 
)

Definition at line 356 of file md_json.c.

◆ md_json_gets()

const char * md_json_gets ( const md_json_t json,
  ... 
)

Definition at line 406 of file md_json.c.

◆ md_json_gets_dict()

apr_status_t md_json_gets_dict ( apr_table_t dict,
const md_json_t json,
  ... 
)

Definition at line 637 of file md_json.c.

◆ md_json_getsa()

apr_status_t md_json_getsa ( apr_array_header_t a,
const md_json_t json,
  ... 
)

Definition at line 864 of file md_json.c.

◆ md_json_has_key()

int md_json_has_key ( const md_json_t json,
  ... 
)

Definition at line 279 of file md_json.c.

◆ md_json_http_get()

apr_status_t md_json_http_get ( md_json_t **  pjson,
apr_pool_t pool,
struct md_http_t http,
const char url 
)

Definition at line 1215 of file md_json.c.

◆ md_json_insertj()

apr_status_t md_json_insertj ( md_json_t value,
size_t  index,
md_json_t json,
  ... 
)

Definition at line 566 of file md_json.c.

◆ md_json_is()

int md_json_is ( const md_json_type_t  jtype,
md_json_t json,
  ... 
)

Definition at line 294 of file md_json.c.

◆ md_json_itera()

int md_json_itera ( md_json_itera_cb cb,
void *  baton,
md_json_t json,
  ... 
)

Definition at line 809 of file md_json.c.

◆ md_json_iterkey()

int md_json_iterkey ( md_json_iterkey_cb cb,
void *  baton,
md_json_t json,
  ... 
)

Definition at line 835 of file md_json.c.

◆ md_json_limita()

apr_size_t md_json_limita ( size_t  max_elements,
md_json_t json,
  ... 
)

Definition at line 577 of file md_json.c.

◆ md_json_pass_from()

apr_status_t md_json_pass_from ( void **  pvalue,
md_json_t json,
apr_pool_t p,
void *  baton 
)

Definition at line 706 of file md_json.c.

◆ md_json_pass_to()

apr_status_t md_json_pass_to ( void *  value,
md_json_t json,
apr_pool_t p,
void *  baton 
)

Definition at line 699 of file md_json.c.

◆ md_json_read_http()

apr_status_t md_json_read_http ( md_json_t **  pjson,
apr_pool_t pool,
const md_http_response_t res 
)

Definition at line 1185 of file md_json.c.

◆ md_json_readb()

apr_status_t md_json_readb ( md_json_t **  pjson,
apr_pool_t pool,
apr_bucket_brigade bb 
)

Definition at line 1124 of file md_json.c.

◆ md_json_readd()

apr_status_t md_json_readd ( md_json_t **  pjson,
apr_pool_t pool,
const char data,
size_t  data_len 
)

Definition at line 1068 of file md_json.c.

◆ md_json_readf()

apr_status_t md_json_readf ( md_json_t **  pjson,
apr_pool_t p,
const char fpath 
)

< Open the file for reading

Definition at line 1156 of file md_json.c.

◆ md_json_set_time()

apr_status_t md_json_set_time ( apr_time_t  value,
md_json_t json,
  ... 
)

Definition at line 457 of file md_json.c.

◆ md_json_set_timeperiod()

apr_status_t md_json_set_timeperiod ( const md_timeperiod_t tp,
md_json_t json,
  ... 
)

Definition at line 1259 of file md_json.c.

◆ md_json_seta()

apr_status_t md_json_seta ( apr_array_header_t a,
md_json_to_cb cb,
void *  baton,
md_json_t json,
  ... 
)

Definition at line 767 of file md_json.c.

◆ md_json_setb()

apr_status_t md_json_setb ( int  value,
md_json_t json,
  ... 
)

Definition at line 342 of file md_json.c.

◆ md_json_setj()

apr_status_t md_json_setj ( const md_json_t value,
md_json_t json,
  ... 
)

Definition at line 527 of file md_json.c.

◆ md_json_setl()

apr_status_t md_json_setl ( long  value,
md_json_t json,
  ... 
)

Definition at line 392 of file md_json.c.

◆ md_json_setn()

apr_status_t md_json_setn ( double  value,
md_json_t json,
  ... 
)

Definition at line 367 of file md_json.c.

◆ md_json_sets()

apr_status_t md_json_sets ( const char value,
md_json_t json,
  ... 
)

Definition at line 430 of file md_json.c.

◆ md_json_sets_dict()

apr_status_t md_json_sets_dict ( apr_table_t dict,
md_json_t json,
  ... 
)

Definition at line 668 of file md_json.c.

◆ md_json_setsa()

apr_status_t md_json_setsa ( apr_array_header_t a,
md_json_t json,
  ... 
)

Definition at line 911 of file md_json.c.

◆ md_json_type_name()

static const char * md_json_type_name ( const md_json_t json)
static

Definition at line 314 of file md_json.c.

◆ md_json_writeb()

apr_status_t md_json_writeb ( const md_json_t json,
md_json_fmt_t  fmt,
apr_bucket_brigade bb 
)

Definition at line 972 of file md_json.c.

◆ md_json_writef()

apr_status_t md_json_writef ( const md_json_t json,
apr_pool_t p,
md_json_fmt_t  fmt,
apr_file_t f 
)

Definition at line 1015 of file md_json.c.

◆ md_json_writep()

const char * md_json_writep ( const md_json_t json,
apr_pool_t p,
md_json_fmt_t  fmt 
)

Definition at line 992 of file md_json.c.

◆ object_set()

static int object_set ( void *  data,
const char key,
const char val 
)
static

Definition at line 660 of file md_json.c.

◆ write_json()

static apr_status_t write_json ( void *  baton,
apr_file_t f,
apr_pool_t p 
)
static

Definition at line 1048 of file md_json.c.