33#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
34#pragma GCC diagnostic push
36#pragma GCC diagnostic ignored "-Wunused-function"
37#pragma GCC diagnostic ignored "-Wunreachable-code"
38#elif defined(__clang__)
39#pragma clang diagnostic push
40#pragma clang diagnostic ignored "-Wunused-function"
43#include <jansson_config.h>
49#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
50#pragma GCC diagnostic pop
52#elif defined(__clang__)
53#pragma clang diagnostic pop
104 if (json && json->
j) {
141 const char *
key, *next;
797 for (
i = 0;
i <
a->nelts; ++
i) {
937 for (
i = 0;
i <
a->nelts; ++
i) {
1001 "md_json_writep failed to dump JSON");
1134 "failed to load JSON file: %s (line %d:%d)",
1174 "failed to load JSON file %s: %s (line %d:%d)",
1188 const char *ctype, *
p;
1194 p = ctype + strlen(ctype) +1;
1195 if (!
strcmp(
p -
sizeof(
"/json"),
"/json")
1196 || !
strcmp(
p -
sizeof(
"+json"),
"+json")) {
1255 if (!json)
return "NULL";
1300 memset(tp, 0,
sizeof(*tp));
const char apr_size_t len
APR-UTIL Buckets/Bucket Brigades.
APR general purpose library routines.
ap_vhost_iterate_conn_cb void * baton
#define APR_STATUS_IS_EOF(s)
#define APR_BUCKET_REMOVE(e)
#define APR_BUCKET_IS_METADATA(e)
#define apr_bucket_split(e, point)
#define APR_BRIGADE_EMPTY(b)
#define apr_bucket_delete(e)
#define APR_BUCKET_IS_EOS(e)
apr_brigade_flush void * ctx
apr_bucket apr_bucket_brigade * a
#define APR_BRIGADE_FIRST(b)
#define apr_bucket_read(e, str, len, block)
apr_pool_t const char apr_dbd_t const char ** error
apr_pool_t apr_dbd_t apr_dbd_results_t ** res
apr_datum_t apr_datum_t * pvalue
const char const apr_size_t data_len
const char int apr_pool_t * pool
apr_int32_t apr_fileperms_t
const char apr_fileperms_t perms
void const char apr_status_t(* cleanup)(void *))
apr_vformatter_buff_t const char * fmt
apr_vformatter_buff_t const char va_list ap
int(* apr_abortfunc_t)(int retcode)
#define apr_pcalloc(p, size)
#define APR_ARRAY_PUSH(ary, type)
#define APR_ARRAY_IDX(ary, i, type)
#define APR_RFC822_DATE_LEN
apr_status_t md_http_GET_perform(struct md_http_t *http, const char *url, struct apr_table_t *headers, md_http_response_cb *cb, void *baton)
md_json_t * md_json_create(apr_pool_t *pool)
apr_status_t md_json_set_timeperiod(const md_timeperiod_t *tp, md_json_t *json,...)
apr_status_t md_json_getsa(apr_array_header_t *a, const md_json_t *json,...)
md_json_t * md_json_dupj(apr_pool_t *p, const md_json_t *json,...)
int md_json_getb(const md_json_t *json,...)
static json_t * jselect(const md_json_t *json, va_list ap)
static size_t fmt_to_flags(md_json_fmt_t fmt)
static apr_status_t jselect_insert(json_t *val, size_t index, md_json_t *json, va_list ap)
apr_status_t md_json_clr(md_json_t *json,...)
static size_t load_cb(void *data, size_t max_len, void *baton)
static apr_status_t json_pool_cleanup(void *data)
md_json_t * md_json_create_s(apr_pool_t *pool, const char *s)
double md_json_getn(const md_json_t *json,...)
apr_status_t md_json_sets(const char *value, md_json_t *json,...)
const char * md_json_gets(const md_json_t *json,...)
long md_json_getl(const md_json_t *json,...)
apr_status_t md_json_setn(double value, md_json_t *json,...)
static apr_status_t jselect_set(json_t *val, md_json_t *json, va_list ap)
apr_status_t md_json_pass_from(void **pvalue, md_json_t *json, apr_pool_t *p, void *baton)
md_json_t * md_json_copy(apr_pool_t *pool, const md_json_t *json)
apr_status_t md_json_geta(apr_array_header_t *a, md_json_from_cb *cb, void *baton, const md_json_t *json,...)
static int chunk_cb(const char *buffer, size_t len, void *baton)
md_json_t * md_json_getj(md_json_t *json,...)
const md_json_t * md_json_getcj(const md_json_t *json,...)
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)
static apr_status_t json_resp_cb(const md_http_response_t *res, void *data)
md_json_t * md_json_clone(apr_pool_t *pool, const md_json_t *json)
int md_json_iterkey(md_json_iterkey_cb *cb, void *baton, 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,...)
static int object_set(void *data, const char *key, const char *val)
apr_status_t md_json_gets_dict(apr_table_t *dict, const md_json_t *json,...)
static json_t * jselect_parent(const char **child_key, int create, md_json_t *json, va_list ap)
apr_status_t md_json_dupsa(apr_array_header_t *a, apr_pool_t *p, md_json_t *json,...)
apr_status_t md_json_addj(const md_json_t *value, md_json_t *json,...)
apr_size_t md_json_limita(size_t max_elements, md_json_t *json,...)
apr_status_t md_json_readf(md_json_t **pjson, apr_pool_t *p, const char *fpath)
apr_status_t md_json_set_time(apr_time_t value, md_json_t *json,...)
apr_status_t md_json_readb(md_json_t **pjson, apr_pool_t *pool, apr_bucket_brigade *bb)
apr_status_t md_json_insertj(md_json_t *value, size_t index, md_json_t *json,...)
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)
apr_status_t md_json_pass_to(void *value, md_json_t *json, apr_pool_t *p, void *baton)
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_copy_to(md_json_t *dest, const md_json_t *src,...)
int md_json_is(const md_json_type_t jtype, md_json_t *json,...)
static size_t load_file_cb(void *data, size_t max_len, void *baton)
static apr_status_t jselect_add(json_t *val, md_json_t *json, va_list ap)
apr_status_t md_json_del(md_json_t *json,...)
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_setj(const md_json_t *value, md_json_t *json,...)
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_get_timeperiod(md_timeperiod_t *tp, md_json_t *json,...)
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 write_json(void *baton, apr_file_t *f, apr_pool_t *p)
apr_status_t md_json_sets_dict(apr_table_t *dict, md_json_t *json,...)
int md_json_has_key(const md_json_t *json,...)
int md_json_itera(md_json_itera_cb *cb, void *baton, md_json_t *json,...)
static const char * md_json_type_name(const md_json_t *json)
apr_time_t md_json_get_time(const md_json_t *json,...)
void md_json_destroy(md_json_t *json)
apr_status_t md_json_writeb(const md_json_t *json, md_json_fmt_t fmt, apr_bucket_brigade *bb)
static apr_status_t jselect_set_new(json_t *val, md_json_t *json, va_list ap)
apr_status_t md_json_setb(int value, md_json_t *json,...)
static md_json_t * json_create(apr_pool_t *pool, json_t *j)
static int dump_cb(const char *buffer, size_t len, void *baton)
apr_status_t md_json_readd(md_json_t **pjson, apr_pool_t *pool, const char *data, size_t data_len)
const char * md_json_dups(apr_pool_t *p, const md_json_t *json,...)
apr_status_t md_json_clone_to(void *value, md_json_t *json, apr_pool_t *p, void *baton)
apr_status_t md_json_setl(long value, md_json_t *json,...)
const char * md_json_dump_state(const md_json_t *json, apr_pool_t *p)
apr_status_t md_json_setsa(apr_array_header_t *a, md_json_t *json,...)
const char * md_json_writep(const md_json_t *json, apr_pool_t *p, md_json_fmt_t fmt)
apr_status_t md_json_to_cb(void *value, md_json_t *json, apr_pool_t *p, void *baton)
int md_json_iterkey_cb(void *baton, const char *key, md_json_t *json)
apr_status_t md_json_from_cb(void **pvalue, md_json_t *json, apr_pool_t *p, void *baton)
int md_json_itera_cb(void *baton, size_t index, md_json_t *json)
void md_log_perror(const char *file, int line, md_log_level_t level, apr_status_t rv, apr_pool_t *p, const char *fmt,...)
const char * md_util_parse_ct(apr_pool_t *pool, const char *cth)
apr_status_t md_util_freplace(const char *fpath, apr_fileperms_t perms, apr_pool_t *p, md_util_file_cb *write_cb, void *baton)
apr_status_t md_util_fcreatex(apr_file_t **pf, const char *fn, apr_fileperms_t perms, apr_pool_t *p)
apr_status_t apr_rfc822_date(char *date_str, apr_time_t t)