summaryrefslogtreecommitdiff
path: root/osdep
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-18 17:37:44 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-18 17:37:44 -0700
commitbc61357a44cf4906dda2b30c4474ae891982e620 (patch)
tree284d70f7c20b1d057f3d52c9f437b6d9312b7a37 /osdep
parentf6d92eb737507e6c56cf59aa7b4c4fce679e23cd (diff)
downloadinfinitytier-bc61357a44cf4906dda2b30c4474ae891982e620.tar.gz
infinitytier-bc61357a44cf4906dda2b30c4474ae891982e620.zip
HTTP backend support for JSONDB
Diffstat (limited to 'osdep')
-rw-r--r--osdep/Http.hpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/osdep/Http.hpp b/osdep/Http.hpp
index 1ecf4eec..e7d4d03e 100644
--- a/osdep/Http.hpp
+++ b/osdep/Http.hpp
@@ -135,6 +135,39 @@ public:
responseBody);
}
+ /**
+ * Make HTTP PUT request
+ *
+ * It is the responsibility of the caller to set all headers. With PUT, the
+ * Content-Length and Content-Type headers must be set or the PUT will not
+ * work.
+ *
+ * @return HTTP status code or 0 on error (responseBody will contain error message)
+ */
+ static inline unsigned int PUT(
+ unsigned long maxResponseSize,
+ unsigned long timeout,
+ const struct sockaddr *remoteAddress,
+ const char *path,
+ const std::map<std::string,std::string> &requestHeaders,
+ const void *postData,
+ unsigned long postDataLength,
+ std::map<std::string,std::string> &responseHeaders,
+ std::string &responseBody)
+ {
+ return _do(
+ "PUT",
+ maxResponseSize,
+ timeout,
+ remoteAddress,
+ path,
+ requestHeaders,
+ postData,
+ postDataLength,
+ responseHeaders,
+ responseBody);
+ }
+
private:
static unsigned int _do(
const char *method,