ClearBox Server v1.2 Developer's Guide |
IServer2::GetCookieAllows server extension to retrieve some data associated with a packet and stored earlier with SetCookie method. HRESULT GetCookie( [in] long packetTag, [out] unsigned long* cookieDataSize, [out] unsigned char** cookieData); Parameters
Return ValuesThis method returns S_OK if succeeds and cookie data is returned, S_FALSE otherwise. Thread SafetyThis method can be called from any thread. Memory ManagementServer allocates memory for cookieData parameter, and server extension should free it. RemarksThis method allows to design server extension as "stateless", one that doesn't store intermediary data. This method erases the stored data. It may happen that although data has been stored earlier this method returns S_FALSE. It's because server erases stored data after "expiration time". It's configured with Server Manager (Server settings -> Agent settings -> Free lost RADIUS resources after...). Example CodeThis code uses m_pServer as IServer interface pointer stored in ICommonExtenderEx::InitializeEx implementation. In this example server extension reprieves data stored earlier in GetChallengeResponseAttributes while issuing Access-Challenge response. STDMETHODIMP CTest::ChallengeDataReply(long tag, long prevTag, AUTHENTYPE authType, USERINFOLITE * userInf, RADIUS_ATTRIBUTE stored, RADAUTHENREPLY * authenRes) { ... IServer2* pS2=NULL; m_pServer->QueryInterface(IID_IServer2,(void**)&pS2; //QueryInterface will always succeed ULONG dataSize; BYTE* pData; if (pS2->GetCookie(prevTag,&dataSize,&pData)==S_FALSE) { // no data was found } else { // use *pData array with dataSize length CoTaskMemFree(*pData); } // Call to pS2->Release() is not necessary ... } See AlsoIServer2, Server services, IRADIUSAuthentication::GetChallengeResponseAttributes, IEAP::ProcessMessage, SetCookie
© 2001-2003 XPerience Technologies. www.xperiencetech.com |
Created by chm2web html help conversion utility. |