Added content data to request
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Mon, 13 Oct 2008 04:28:06 +0000 (01:28 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Mon, 13 Oct 2008 04:28:06 +0000 (01:28 -0300)
atom/request.c
include/atompub/request.h

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;
+}
index b3c84f1..7e47970 100644 (file)
@@ -25,7 +25,8 @@
 enum
 {
   ATOM_REQUEST_NONE,
-  ATOM_REQUEST_GET
+  ATOM_REQUEST_GET,
+  ATOM_REQUEST_POST
 };
 
 typedef struct _atom_request AtomRequest;
@@ -34,5 +35,7 @@ AtomRequest *atom_request_new (int, char *);
 void atom_request_delete (AtomRequest *);
 int atom_request_type (AtomRequest *);
 char *atom_request_request (AtomRequest *);
+void atom_request_content_set (AtomRequest *, char *, size_t);
+void atom_request_content (AtomRequest *, char **, size_t *);
 
 #endif