Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name : generalhandler.cxx
Abstract: A general purpose error sending handler. This cleans up some of the logic needed to allow DetermineHandler() to send HTTP errors. Author: Bilal Alam (balam) 7-Jan-2000
Environment: Win32 - User Mode
Project: ULW3.DLL --*/
#include "precomp.hxx"
#include "generalhandler.hxx"
ALLOC_CACHE_HANDLER * W3_GENERAL_HANDLER::sm_pachGeneralHandlers;
CONTEXT_STATUS W3_GENERAL_HANDLER::DoWork( VOID ) /*++
Routine Description:
Send the configured error response to the client
Return Value:
HRESULT
--*/ { HRESULT hr;
W3_CONTEXT *pW3Context = QueryW3Context(); DBG_ASSERT( pW3Context != NULL );
//
// Setup the error response and send it
//
pW3Context->QueryResponse()->SetStatus( _httpStatus, _httpSubError ); hr = pW3Context->SendResponse( W3_FLAG_ASYNC ); if ( FAILED( hr ) ) { pW3Context->SetErrorStatus( hr ); pW3Context->QueryResponse()->SetStatus( HttpStatusServerError ); return CONTEXT_STATUS_CONTINUE; } return CONTEXT_STATUS_PENDING; }
// static
HRESULT W3_GENERAL_HANDLER::Initialize( VOID ) /*++
Routine Description:
Global initialization routine for W3_GENERAL_HANDLERs
Arguments:
None Return Value:
HRESULT
--*/ { ALLOC_CACHE_CONFIGURATION acConfig; HRESULT hr = NO_ERROR;
//
// Setup allocation lookaside
//
acConfig.nConcurrency = 1; acConfig.nThreshold = 100; acConfig.cbSize = sizeof( W3_GENERAL_HANDLER );
DBG_ASSERT( sm_pachGeneralHandlers == NULL ); sm_pachGeneralHandlers = new ALLOC_CACHE_HANDLER( "W3_GENERAL_HANDLER", &acConfig );
if ( sm_pachGeneralHandlers == NULL ) { return HRESULT_FROM_WIN32( ERROR_NOT_ENOUGH_MEMORY ); } return NO_ERROR; }
// static
VOID W3_GENERAL_HANDLER::Terminate( VOID ) /*++
Routine Description:
Terminate MAIN_CONTEXT globals
Arguments:
None Return Value:
None
--*/ { if ( sm_pachGeneralHandlers != NULL ) { delete sm_pachGeneralHandlers; sm_pachGeneralHandlers = NULL; } }
|