X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fatompub.git;a=blobdiff_plain;f=atom%2Frequest.c;h=8b454b523b2d414801f40ac98cb4769744e49059;hp=6a39497754c9f46f4a1dbbf6d0841d58155f93e0;hb=f4448d904a6d4ad477867ba6e60efe6accadf130;hpb=bdff7c494e307ae3e1c0e329daab4dc48ae8442c 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; +}