ANSC_STATUS HttpSpoDestroyBmoRepPool ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_SIMPLE_PROXY_OBJECT pMyObject = (PHTTP_SIMPLE_PROXY_OBJECT )hThisObject; PHTTP_SIMPLE_PROXY_PROPERTY pProperty = (PHTTP_SIMPLE_PROXY_PROPERTY)&pMyObject->Property; PHTTP_BMO_REP_OBJECT pBmoRep = NULL; PSINGLE_LINK_ENTRY pSLinkEntry = NULL; AnscAcquireLock(&pMyObject->BmoRepSListLock); pSLinkEntry = AnscSListPopEntry(&pMyObject->BmoRepSList); while ( pSLinkEntry ) { pBmoRep = ACCESS_HTTP_BMO_REP_OBJECT(pSLinkEntry); pSLinkEntry = AnscSListPopEntry(&pMyObject->BmoRepSList); pBmoRep->Remove((ANSC_HANDLE)pBmoRep); } AnscReleaseLock(&pMyObject->BmoRepSListLock); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS HttpSpoReleaseBmoRep ( ANSC_HANDLE hThisObject, ANSC_HANDLE hBmoRep ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_SIMPLE_PROXY_OBJECT pMyObject = (PHTTP_SIMPLE_PROXY_OBJECT )hThisObject; PHTTP_SIMPLE_PROXY_PROPERTY pProperty = (PHTTP_SIMPLE_PROXY_PROPERTY)&pMyObject->Property; PHTTP_BMO_REP_OBJECT pBmoRep = (PHTTP_BMO_REP_OBJECT )hBmoRep; pBmoRep->Reset((ANSC_HANDLE)pBmoRep); if ( pMyObject->ProxyMode & HTTP_SPO_MODE_COMPACT ) { pBmoRep->Remove((ANSC_HANDLE)pBmoRep); } else { AnscAcquireLock (&pMyObject->BmoRepSListLock); AnscSListPushEntry(&pMyObject->BmoRepSList, &pBmoRep->Linkage); AnscReleaseLock (&pMyObject->BmoRepSListLock); } return ANSC_STATUS_SUCCESS; }