abyss_response.c File Reference

#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"

Include dependency graph for abyss_response.c:

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)
MIMETypeMIMETypeCreate (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 MIMETypeglobalMimeTypeP = NULL


Function Documentation

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 
)

Definition at line 590 of file abyss_response.c.

Referenced by RequestAuth().

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 
)

Definition at line 370 of file abyss_response.c.

References MIMETypeAdd2().

static void mimeTypeAdd ( MIMEType *const   MIMETypeP,
const char *const   type,
const char *const   ext,
abyss_bool *const   successP 
) [static]

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   ) 

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  ) 

Definition at line 418 of file abyss_response.c.

References MIMETypeFromExt2().

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  ) 

Definition at line 494 of file abyss_response.c.

References MIMETypeFromFileName2().

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  ) 

Definition at line 579 of file abyss_response.c.

References mimeTypeGuessFromFile().

static const char* mimeTypeGuessFromFile ( MIMEType *const   MIMETypeP,
const char *const   fileName 
) [static]

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   ) 

Definition at line 286 of file abyss_response.c.

References MIMETypeDestroy(), and NULL.

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 
)

Definition at line 224 of file abyss_response.c.

References ResponseAddField().

abyss_bool ResponseContentType ( TSession *const   serverP,
const char *const   type 
)

Definition at line 215 of file abyss_response.c.

References ResponseAddField().

void ResponseError ( TSession *const   sessionP  ) 

void ResponseStatus ( TSession *const   sessionP,
uint16_t const   code 
)

Definition at line 75 of file abyss_response.c.

References TSession::status.

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  ) 


Variable Documentation

MIMEType* globalMimeTypeP = NULL [static]

Definition at line 245 of file abyss_response.c.


Generated on Thu May 17 10:00:33 2012 for Kamailio - The Open Source SIP Server by  doxygen 1.5.6