ANSC_STATUS HttpSpoDestroyPsoPool ( 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_PROXY_SESSION_OBJECT pSession = NULL; PSINGLE_LINK_ENTRY pSLinkEntry = NULL; AnscAcquireLock(&pMyObject->PsoSListLock); pSLinkEntry = AnscSListPopEntry(&pMyObject->PsoSList); while ( pSLinkEntry ) { pSession = ACCESS_HTTP_PROXY_SESSION_OBJECT(pSLinkEntry); pSLinkEntry = AnscSListPopEntry(&pMyObject->PsoSList); pSession->Remove((ANSC_HANDLE)pSession); } AnscReleaseLock(&pMyObject->PsoSListLock); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS HttpSpoReleasePso ( ANSC_HANDLE hThisObject, ANSC_HANDLE hPso ) { 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_PROXY_SESSION_OBJECT pSession = (PHTTP_PROXY_SESSION_OBJECT )hPso; pSession->Reset((ANSC_HANDLE)pSession); if ( pMyObject->ProxyMode & HTTP_SPO_MODE_COMPACT ) { pSession->Remove((ANSC_HANDLE)pSession); } else { AnscAcquireLock (&pMyObject->PsoSListLock); AnscSListPushEntry(&pMyObject->PsoSList, &pSession->Linkage); AnscReleaseLock (&pMyObject->PsoSListLock); } return ANSC_STATUS_SUCCESS; }