diff options
Diffstat (limited to 'branches/1.0/tinyHTTP/src/headers/thttp_header.c')
-rw-r--r-- | branches/1.0/tinyHTTP/src/headers/thttp_header.c | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/branches/1.0/tinyHTTP/src/headers/thttp_header.c b/branches/1.0/tinyHTTP/src/headers/thttp_header.c deleted file mode 100644 index cfd9bd2..0000000 --- a/branches/1.0/tinyHTTP/src/headers/thttp_header.c +++ /dev/null @@ -1,152 +0,0 @@ -/* -* Copyright (C) 2009-2010 Mamadou Diop. -* -* Contact: Mamadou Diop <diopmamadou(at)doubango.org> -* -* This file is part of Open Source Doubango Framework. -* -* DOUBANGO is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* DOUBANGO is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with DOUBANGO. -* -*/ - -/**@file thttp_header.c - * @brief Defines a HTTP header (field-name: field-value). - * - * @author Mamadou Diop <diopmamadou(at)doubango.org> - * - * @date Created: Sat Nov 8 16:54:58 2009 mdiop - */ -#include "tinyhttp/headers/thttp_header.h" - -#include "tinyhttp/headers/thttp_header_Dummy.h" - -/**@defgroup thttp_header_group HTTP Headers -*/ - -const char *thttp_header_get_name(thttp_header_type_t type) -{ - switch(type) - { - case thttp_htype_Authorization: return "Authorization"; - case thttp_htype_Content_Length: return "Content-Length"; - case thttp_htype_Content_Type: return "Content-Type"; - case thttp_htype_ETag: return "ETag"; - case thttp_htype_Proxy_Authenticate: return "Proxy-Authenticate"; - case thttp_htype_Proxy_Authorization: return "Proxy-Authorization"; - case thttp_htype_Transfer_Encoding: return "Transfer-Encoding"; - case thttp_htype_WWW_Authenticate: return "WWW-Authenticate"; - - default: return "unknown-header"; - } -} - -const char *thttp_header_get_nameex(const thttp_header_t *self) -{ - if(self){ - if(self->type == thttp_htype_Dummy){ - return ((thttp_header_Dummy_t*)self)->name; - } - else{ - return thttp_header_get_name(self->type); - } - } - return "unknown-header"; -} - -char thttp_header_get_param_separator(const thttp_header_t *self) -{ - if(self) - { - switch(self->type) - { - case thttp_htype_Authorization: - case thttp_htype_Proxy_Authorization: - case thttp_htype_Proxy_Authenticate: - case thttp_htype_WWW_Authenticate: - return ','; - default: - return ';'; - } - } - return 0; -} - -/**@ingroup thttp_header_group -*/ -int thttp_header_serialize(const thttp_header_t *self, tsk_buffer_t *output) -{ - int ret = -1; - static const char* hname; - static char separator; - - if(self && THTTP_HEADER(self)->tostring) - { - tsk_list_item_t *item; - - hname = thttp_header_get_nameex(self); - ret = 0; // for empty lists - - /* Header name */ - tsk_buffer_append_2(output, "%s: ", hname); - - /* Header value.*/ - if((ret = THTTP_HEADER(self)->tostring(self, output))){ - // CHECK all headers return value! - //return ret; - } - - /* Parameters */ - tsk_list_foreach(item, self->params){ - tsk_param_t* param = item->data; - separator = thttp_header_get_param_separator(self); - if(ret = tsk_buffer_append_2(output, param->value?"%c%s=%s":"%c%s", separator, param->name, param->value)){ - return ret; - } - } - - /* CRLF */ - tsk_buffer_append(output, "\r\n", 2); - } - return ret; -} - -/**@ingroup thttp_header_group -*/ -char* thttp_header_tostring(const thttp_header_t *self) -{ - tsk_buffer_t *output = tsk_buffer_create_null(); - char* ret = tsk_null; - - if(!thttp_header_serialize(self, output)){ - ret = tsk_strndup(output->data, output->size); - } - - TSK_OBJECT_SAFE_FREE(output); - return ret; -} - -/**@ingroup thttp_header_group -*/ -char* thttp_header_value_tostring(const thttp_header_t *self) -{ - tsk_buffer_t *output = tsk_buffer_create_null(); - char* ret = tsk_null; - - if(!self->tostring(self, output)){ - ret = tsk_strndup(output->data, output->size); - } - - TSK_OBJECT_SAFE_FREE(output); - return ret; -} |