Added content data to request
[cascardo/atompub.git] / atom / request.c
index 6a39497..8b454b5 100644 (file)
 
 #include <glib.h>
 
+#include <string.h>
+
 struct _atom_request
 {
   int type;
   char *request;
+  char *content;
+  size_t content_len;
 };
 
 AtomRequest *
@@ -34,6 +38,8 @@ atom_request_new (int type, char *request)
   req = g_slice_new (AtomRequest);
   req->type = type;
   req->request = g_strdup (request);
+  req->content = NULL;
+  req->content_len = 0;
   return req;
 }
 
@@ -42,6 +48,8 @@ atom_request_delete (AtomRequest *req)
 {
   if (req->request)
     g_free (req->request);
+  if (req->content)
+    g_free (req->content);
   g_slice_free (AtomRequest, req);
 }
 
@@ -56,3 +64,22 @@ atom_request_request (AtomRequest *req)
 {
   return req->request;
 }
+
+void
+atom_request_content_set (AtomRequest *req, char *content, size_t len)
+{
+  if (req->content)
+    g_free (req->content);
+  req->content = g_malloc (len);
+  memcpy (req->content, content, len);
+  req->content_len = len;
+}
+
+void
+atom_request_content (AtomRequest *req, char **content, size_t *len)
+{
+  if (content)
+    *content = req->content;
+  if (len)
+    *len = req->content_len;
+}