| 142 | } |
| 143 | |
| 144 | md_result_t*md_result_from_json(const struct md_json_t *json, apr_pool_t *p) |
| 145 | { |
| 146 | md_result_t *result; |
| 147 | const char *s; |
| 148 | |
| 149 | result = md_result_make(p, APR_SUCCESS); |
| 150 | result->status = (int)md_json_getl(json, MD_KEY_STATUS, NULL); |
| 151 | result->problem = md_json_dups(p, json, MD_KEY_PROBLEM, NULL); |
| 152 | result->detail = md_json_dups(p, json, MD_KEY_DETAIL, NULL); |
| 153 | result->activity = md_json_dups(p, json, MD_KEY_ACTIVITY, NULL); |
| 154 | s = md_json_dups(p, json, MD_KEY_VALID_FROM, NULL); |
| 155 | if (s && *s) result->ready_at = apr_date_parse_rfc(s); |
| 156 | result->subproblems = md_json_dupj(p, json, MD_KEY_SUBPROBLEMS, NULL); |
| 157 | return result; |
| 158 | } |
| 159 | |
| 160 | struct md_json_t *md_result_to_json(const md_result_t *result, apr_pool_t *p) |
| 161 | { |
no test coverage detected