From f4448d904a6d4ad477867ba6e60efe6accadf130 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Mon, 13 Oct 2008 01:28:06 -0300 Subject: [PATCH] Added content data to request --- atom/request.c | 27 +++++++++++++++++++++++++++ include/atompub/request.h | 5 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/atom/request.c b/atom/request.c index 6a39497..8b454b5 100644 --- a/atom/request.c +++ b/atom/request.c @@ -21,10 +21,14 @@ #include +#include + 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; +} diff --git a/include/atompub/request.h b/include/atompub/request.h index b3c84f1..7e47970 100644 --- a/include/atompub/request.h +++ b/include/atompub/request.h @@ -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 -- 2.20.1