#include <ctype.h>#include <assert.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <time.h>#include <xmlrpc-c/config.h>#include "abyss_mallocvar.h"#include "abyss_xmlrpc_int.h"#include <xmlrpc-c/abyss.h>#include "abyss_server.h"#include "abyss_session.h"#include "abyss_conn.h"#include "abyss_token.h"#include "abyss_date.h"#include "abyss_data.h"#include "abyss_info.h"#include "abyss_http.h"

Go to the source code of this file.
Data Structures | |
| struct | MIMEType |
Functions | |
| static void | addDateHeader (TSession *const sessionP) |
| void | Base64Encode (char *s, char *d) |
| static abyss_bool | fileContainsText (const char *const fileName) |
| static void | findExtension (const char *const fileName, const char **const extP) |
| abyss_bool | MIMETypeAdd (const char *const type, const char *const ext) |
| static void | mimeTypeAdd (MIMEType *const MIMETypeP, const char *const type, const char *const ext, abyss_bool *const successP) |
| abyss_bool | MIMETypeAdd2 (MIMEType *const MIMETypeArg, const char *const type, const char *const ext) |
| MIMEType * | MIMETypeCreate (void) |
| void | MIMETypeDestroy (MIMEType *const MIMETypeP) |
| const char * | MIMETypeFromExt (const char *const ext) |
| static const char * | mimeTypeFromExt (MIMEType *const MIMETypeP, const char *const ext) |
| const char * | MIMETypeFromExt2 (MIMEType *const MIMETypeArg, const char *const ext) |
| const char * | MIMETypeFromFileName (const char *const fileName) |
| static const char * | mimeTypeFromFileName (MIMEType *const MIMETypeP, const char *const fileName) |
| const char * | MIMETypeFromFileName2 (MIMEType *const MIMETypeArg, const char *const fileName) |
| const char * | MIMETypeGuessFromFile (const char *const fileName) |
| static const char * | mimeTypeGuessFromFile (MIMEType *const MIMETypeP, const char *const fileName) |
| const char * | MIMETypeGuessFromFile2 (MIMEType *const MIMETypeArg, const char *const fileName) |
| void | MIMETypeInit (void) |
| void | MIMETypeTerm (void) |
| abyss_bool | ResponseAddField (TSession *const sessionP, const char *const name, const char *const value) |
| abyss_bool | ResponseChunked (TSession *const sessionP) |
| abyss_bool | ResponseContentLength (TSession *const sessionP, uint64_t const len) |
| abyss_bool | ResponseContentType (TSession *const serverP, const char *const type) |
| void | ResponseError (TSession *const sessionP) |
| void | ResponseStatus (TSession *const sessionP, uint16_t const code) |
| void | ResponseStatusErrno (TSession *const sessionP) |
| uint16_t | ResponseStatusFromErrno (int const errnoArg) |
| abyss_bool | ResponseWriteBody (TSession *const sessionP, const char *const data, uint32_t const len) |
| abyss_bool | ResponseWriteEnd (TSession *const sessionP) |
| void | ResponseWriteStart (TSession *const sessionP) |
Variables | |
| static MIMEType * | globalMimeTypeP = NULL |
| static void addDateHeader | ( | TSession *const | sessionP | ) | [static] |
Definition at line 122 of file abyss_response.c.
References TSession::date, DateToString(), ResponseAddField(), and TSession::status.
Referenced by ResponseWriteStart().
| void Base64Encode | ( | char * | s, | |
| char * | d | |||
| ) |
| static abyss_bool fileContainsText | ( | const char *const | fileName | ) | [static] |
Definition at line 502 of file abyss_response.c.
References FALSE, file, FileClose(), FileOpen(), FileRead(), O_BINARY, and TRUE.
Referenced by mimeTypeGuessFromFile().
| static void findExtension | ( | const char *const | fileName, | |
| const char **const | extP | |||
| ) | [static] |
Definition at line 426 of file abyss_response.c.
References FALSE, NULL, and TRUE.
Referenced by mimeTypeFromFileName(), and mimeTypeGuessFromFile().
| abyss_bool MIMETypeAdd | ( | const char *const | type, | |
| const char *const | ext | |||
| ) |
| static void mimeTypeAdd | ( | MIMEType *const | MIMETypeP, | |
| const char *const | type, | |||
| const char *const | ext, | |||
| abyss_bool *const | successP | |||
| ) | [static] |
Definition at line 299 of file abyss_response.c.
References MIMEType::extList, FALSE, TList::item, ListAdd(), ListFindString(), ListRemove(), NULL, MIMEType::pool, PoolReturn(), PoolStrdup(), TRUE, and MIMEType::typeList.
Referenced by MIMETypeAdd2().
| abyss_bool MIMETypeAdd2 | ( | MIMEType *const | MIMETypeArg, | |
| const char *const | type, | |||
| const char *const | ext | |||
| ) |
Definition at line 351 of file abyss_response.c.
References FALSE, mimeTypeAdd(), and NULL.
Referenced by MIMETypeAdd(), and readMIMETypesFile().
| MIMEType* MIMETypeCreate | ( | void | ) |
Definition at line 250 of file abyss_response.c.
References MIMEType::extList, ListInit(), MALLOCVAR, MIMEType::pool, PoolCreate(), and MIMEType::typeList.
Referenced by MIMETypeInit(), and readMIMETypesFile().
| void MIMETypeDestroy | ( | MIMEType *const | MIMETypeP | ) |
Definition at line 267 of file abyss_response.c.
References MIMEType::pool, and PoolFree().
Referenced by MIMETypeTerm(), and readMIMETypesFile().
| const char* MIMETypeFromExt | ( | const char *const | ext | ) |
| static const char* mimeTypeFromExt | ( | MIMEType *const | MIMETypeP, | |
| const char *const | ext | |||
| ) | [static] |
Definition at line 379 of file abyss_response.c.
References MIMEType::extList, TList::item, ListFindString(), NULL, and MIMEType::typeList.
Referenced by MIMETypeFromExt2().
| const char* MIMETypeFromExt2 | ( | MIMEType *const | MIMETypeArg, | |
| const char *const | ext | |||
| ) |
Definition at line 400 of file abyss_response.c.
References mimeTypeFromExt(), and NULL.
Referenced by MIMETypeFromExt(), mimeTypeFromFileName(), and mimeTypeGuessFromFile().
| const char* MIMETypeFromFileName | ( | const char *const | fileName | ) |
| static const char* mimeTypeFromFileName | ( | MIMEType *const | MIMETypeP, | |
| const char *const | fileName | |||
| ) | [static] |
Definition at line 455 of file abyss_response.c.
References findExtension(), MIMETypeFromExt2(), and NULL.
Referenced by MIMETypeFromFileName2().
| const char* MIMETypeFromFileName2 | ( | MIMEType *const | MIMETypeArg, | |
| const char *const | fileName | |||
| ) |
Definition at line 476 of file abyss_response.c.
References mimeTypeFromFileName(), and NULL.
Referenced by MIMETypeFromFileName(), and sendDirectoryDocument().
| const char* MIMETypeGuessFromFile | ( | const char *const | fileName | ) |
| static const char* mimeTypeGuessFromFile | ( | MIMEType *const | MIMETypeP, | |
| const char *const | fileName | |||
| ) | [static] |
Definition at line 544 of file abyss_response.c.
References fileContainsText(), findExtension(), MIMETypeFromExt2(), and NULL.
Referenced by MIMETypeGuessFromFile(), and MIMETypeGuessFromFile2().
| const char* MIMETypeGuessFromFile2 | ( | MIMEType *const | MIMETypeArg, | |
| const char *const | fileName | |||
| ) |
Definition at line 569 of file abyss_response.c.
References mimeTypeGuessFromFile().
Referenced by ServerFileHandler().
| void MIMETypeInit | ( | void | ) |
Definition at line 275 of file abyss_response.c.
References MIMETypeCreate(), and NULL.
Referenced by xmlrpc_process(), and xmlrpc_server_abyss_init().
| void MIMETypeTerm | ( | void | ) |
| abyss_bool ResponseAddField | ( | TSession *const | sessionP, | |
| const char *const | name, | |||
| const char *const | value | |||
| ) |
Definition at line 112 of file abyss_response.c.
References TSession::response_headers, and TableAdd().
| abyss_bool ResponseChunked | ( | TSession *const | sessionP | ) |
Definition at line 57 of file abyss_response.c.
References TSession::chunkedwrite, TSession::chunkedwritemode, and TRUE.
Referenced by sendXmlData(), and ServerDirectoryHandler().
| abyss_bool ResponseContentLength | ( | TSession *const | sessionP, | |
| uint64_t const | len | |||
| ) |
| abyss_bool ResponseContentType | ( | TSession *const | serverP, | |
| const char *const | type | |||
| ) |
| void ResponseError | ( | TSession *const | sessionP | ) |
Definition at line 34 of file abyss_response.c.
References TSession::conn, ConnWrite(), HTTPReasonByStatus(), ResponseAddField(), ResponseWriteStart(), SERVER_HTML_INFO, TSession::status, xmlrpc_asprintf(), and xmlrpc_strfree().
Referenced by processDataFromClient(), and sendError().
| void ResponseStatus | ( | TSession *const | sessionP, | |
| uint16_t const | code | |||
| ) |
| void ResponseStatusErrno | ( | TSession *const | sessionP | ) |
Definition at line 104 of file abyss_response.c.
References ResponseStatus(), and ResponseStatusFromErrno().
Referenced by ServerDefaultHandlerFunc(), and ServerFileHandler().
| uint16_t ResponseStatusFromErrno | ( | int const | errnoArg | ) |
Definition at line 84 of file abyss_response.c.
Referenced by generateListing(), and ResponseStatusErrno().
| abyss_bool ResponseWriteBody | ( | TSession *const | sessionP, | |
| const char *const | data, | |||
| uint32_t const | len | |||
| ) |
Definition at line 197 of file abyss_response.c.
References HTTPWriteBodyChunk().
Referenced by sendXmlData().
| abyss_bool ResponseWriteEnd | ( | TSession *const | sessionP | ) |
Definition at line 207 of file abyss_response.c.
References HTTPWriteEndChunk().
Referenced by sendXmlData().
| void ResponseWriteStart | ( | TSession *const | sessionP | ) |
Definition at line 136 of file abyss_response.c.
References addDateHeader(), _TServer::advertise, TSession::chunkedwrite, TSession::chunkedwritemode, TSession::conn, ConnServer(), ConnWrite(), HTTPKeepalive(), HTTPReasonByStatus(), TTable::item, _TServer::keepalivemaxconn, _TServer::keepalivetimeout, TTableItem::name, TSession::response_headers, ResponseAddField(), SERVER_HVERSION, TTable::size, TSession::status, TRUE, TTableItem::value, xmlrpc_asprintf(), and xmlrpc_strfree().
Referenced by ResponseError(), and sendXmlData().
MIMEType* globalMimeTypeP = NULL [static] |
Definition at line 245 of file abyss_response.c.
1.5.6