From: Thadeu Lima de Souza Cascardo Date: Mon, 13 Oct 2008 04:28:06 +0000 (-0300) Subject: Added content data to request X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fatompub.git;a=commitdiff_plain;h=f4448d904a6d4ad477867ba6e60efe6accadf130 Added content data to request --- 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