ANSC_STATUS HttpTroSendToClient ( ANSC_HANDLE hThisObject, ANSC_HANDLE hMessage, ULONG ulSendFlags ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_TRANS_RECORD_OBJECT pMyObject = (PHTTP_TRANS_RECORD_OBJECT )hThisObject; PHTTP_ADVANCED_PROXY_OBJECT pAdvancedProxy = (PHTTP_ADVANCED_PROXY_OBJECT )pMyObject->hOwnerContext; PANSC_DAEMON_SOCKET_TCP_OBJECT pClientSocket = (PANSC_DAEMON_SOCKET_TCP_OBJECT)pMyObject->hClientSocket; PANSC_BROKER_SOCKET_TCP_OBJECT pServerSocket = (PANSC_BROKER_SOCKET_TCP_OBJECT)pMyObject->hServerSocket; PHTTP_BMO_REP_OBJECT pBmoRep = (PHTTP_BMO_REP_OBJECT )hMessage; ANSC_HANDLE hOrgTmhIf = pBmoRep->GetTmhIf((ANSC_HANDLE)pBmoRep); if ( !pClientSocket ) { return ANSC_STATUS_INTERNAL_ERROR; } pBmoRep->SetTmhIf((ANSC_HANDLE)pBmoRep, pMyObject->hTmhClientIf); if ( ulSendFlags & HTTP_TRO_SFLAG_HEADERS ) { returnStatus = pBmoRep->OutputHeaders ( (ANSC_HANDLE)pBmoRep, (ANSC_HANDLE)pClientSocket ); } if ( ulSendFlags & HTTP_TRO_SFLAG_BODY ) { returnStatus = pBmoRep->OutputBody ( (ANSC_HANDLE)pBmoRep, (ANSC_HANDLE)pClientSocket ); } pBmoRep->SetTmhIf((ANSC_HANDLE)pBmoRep, hOrgTmhIf); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS HttpWstoSend ( ANSC_HANDLE hThisObject, ANSC_HANDLE hMessage, ULONG ulSendFlags ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_WEBS_TRANS_OBJECT pMyObject = (PHTTP_WEBS_TRANS_OBJECT )hThisObject; PHTTP_SIMPLE_SERVER_OBJECT pSimpleServer = (PHTTP_SIMPLE_SERVER_OBJECT )pMyObject->hOwnerContext; PANSC_DAEMON_SOCKET_TCP_OBJECT pWebSocket = (PANSC_DAEMON_SOCKET_TCP_OBJECT)pMyObject->hWebSocket; PHTTP_BMO_REP_OBJECT pBmoRep = (PHTTP_BMO_REP_OBJECT )hMessage; ANSC_HANDLE hOrgTmhIf = pBmoRep->GetTmhIf((ANSC_HANDLE)pBmoRep); pBmoRep->SetTmhIf((ANSC_HANDLE)pBmoRep, pMyObject->hTmhIf); if ( ulSendFlags & HTTP_WSTO_SFLAG_HEADERS ) { returnStatus = pBmoRep->OutputHeaders ( (ANSC_HANDLE)pBmoRep, (ANSC_HANDLE)pWebSocket ); } if ( ulSendFlags & HTTP_WSTO_SFLAG_BODY ) { returnStatus = pBmoRep->OutputBody ( (ANSC_HANDLE)pBmoRep, (ANSC_HANDLE)pWebSocket ); } pBmoRep->SetTmhIf((ANSC_HANDLE)pBmoRep, hOrgTmhIf); if ( pWebSocket->bBroken ) { pMyObject->TransState = HTTP_WSTO_STATE_FINISHED; } return ANSC_STATUS_SUCCESS; }