/*****************************************************************************/
/*
                                  Request.h
*/
/*****************************************************************************/

#ifndef REQUEST_H_LOADED
#define REQUEST_H_LOADED 1

#include "wasd.h"

/**********/
/* macros */
/**********/

#define REQUEST_STATE_CONNECTED  1
#define REQUEST_STATE_PERSIST    2
#define REQUEST_STATE_HEADER     3
#define REQUEST_STATE_PROCESSING 4
#define REQUEST_STATE_ENDING     5
#define REQUEST_STATE_ABORT      6
#define REQUEST_STATE_SHUTDOWN   7
#define REQUEST_STATE_NOMORE     8

/***********************/
/* function prototypes */
/***********************/

void RequestAbort (REQUEST_STRUCT*);
void RequestAccept (NETIO_STRUCT*);
void RequestAlert (REQUEST_STRUCT*);
void RequestAstFunction (REQUEST_STRUCT*, void*, void*);
void RequestBegin (REQUEST_STRUCT*);
BOOL RequestBps (REQUEST_STRUCT*);
int RequestControlRunDown (int);
void RequestDiscardBody (REQUEST_STRUCT*);
void RequestDump ();
void RequestEnd (REQUEST_STRUCT*);
void RequestEnd2 (REQUEST_STRUCT*);
void RequestEnd3 (REQUEST_STRUCT*);
void RequestEnd4 (REQUEST_STRUCT*);
void RequestEnd5 (REQUEST_STRUCT*);
void RequestExecute (REQUEST_STRUCT*);
void RequestExecutePostAuth1 (REQUEST_STRUCT*);
void RequestExecutePostAuth2 (REQUEST_STRUCT*);
void RequestExecutePostCache1 (REQUEST_STRUCT*);
void RequestExecutePostCache2 (REQUEST_STRUCT*);
void RequestExecutePostCache3 (REQUEST_STRUCT*);
void RequestExecutePostThrottle (REQUEST_STRUCT*);
int RequestFields (REQUEST_STRUCT*, char*, int);
char* RequestFoldedHeader (REQUEST_STRUCT*, char*, int, char*, char*);
void RequestFile (REQUEST_STRUCT*, REQUEST_AST, REQUEST_AST);
void RequestFileNoType (REQUEST_STRUCT*);
void RequestGblSecUpdate (REQUEST_STRUCT*);
void RequestGet (REQUEST_STRUCT*);
DICT_ENTRY_STRUCT* RequestDictHeader (REQUEST_STRUCT*);
void RequestHistory (REQUEST_STRUCT*);
void RequestHomePage (REQUEST_STRUCT*);
int RequestHttpStatusIndex (int);
char* RequestState (int);
int RequestHttpStatusCode (REQUEST_STRUCT*);
void RequestIoCancel (REQUEST_STRUCT*);
BOOL RequestIoInProgress (REQUEST_STRUCT*);
void RequestLogNBG (char*, int, REQUEST_STRUCT*);
void RequestMappedToStatus (REQUEST_STRUCT*);
void RequestNBG (REQUEST_STRUCT*);
void RequestNoticeDump (char*, int, int);
void RequestParseDictionary (REQUEST_STRUCT*);
void RequestParseExecute (REQUEST_STRUCT*);
void RequestParseHeader (REQUEST_STRUCT*);
void RequestPersistentConnection (REQUEST_STRUCT*);
BOOL RequestProcessFields (REQUEST_STRUCT*);
void RequestRedact (REQUEST_STRUCT*, char*, int, BOOL);
BOOL RequestRedactEnd (REQUEST_STRUCT*);
void RequestReport (REQUEST_STRUCT*);
BOOL RequestRunDown (REQUEST_STRUCT*);
void RequestScript (REQUEST_STRUCT*, char*, char*, char*);
void RequestShareBegin (REQUEST_STRUCT*);

/* redirect.c prototype */

int RedirectRequest (REQUEST_STRUCT*);

#endif /* REQUEST_H_LOADED */

/*****************************************************************************/
