summaryrefslogtreecommitdiff
path: root/curl_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'curl_util.h')
-rw-r--r--curl_util.h39
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