diff options
Diffstat (limited to 'curl_util.h')
-rw-r--r-- | curl_util.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/curl_util.h b/curl_util.h new file mode 100644 index 0000000..509bcb9 --- /dev/null +++ b/curl_util.h @@ -0,0 +1,39 @@ +#ifndef MATRIX_CURL_UTIL_H +#define MATRIX_CURL_UTIL_H + +#include <curl/curl.h> +#include <json-c/json.h> +#include <string.h> + +CURLcode _curl_get(CURL *curl, const char *url, json_object **resp); +CURLcode _curl_post(CURL *curl, const char *url, const char *postdata, + json_object **resp); + +static inline int +json_add_string(json_object *j, const char *k, const char *v) +{ + return json_object_object_add(j, k, json_object_new_string(v)); +} + +static inline +const char *json_gets(json_object *j, const char *key) +{ + json_object *val; + + if (json_object_object_get_ex(j, key, &val)) { + if (json_object_is_type(val, json_type_string)) + return json_object_get_string(val); + } + return NULL; +} + +static inline +char* copy_str(const char *s) +{ + size_t l = strlen(s)+1; + char *ss = (char*)malloc(l); + memcpy(ss, s, l); + return ss; +} + +#endif |