本文整理汇总了C++中ThreadData::processSessionData方法的典型用法代码示例。如果您正苦于以下问题:C++ ThreadData::processSessionData方法的具体用法?C++ ThreadData::processSessionData怎么用?C++ ThreadData::processSessionData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ThreadData
的用法示例。
在下文中一共展示了ThreadData::processSessionData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: msn_httpGatewayUnwrapRecv
PBYTE msn_httpGatewayUnwrapRecv(NETLIBHTTPREQUEST* nlhr, PBYTE buf, int len, int *outBufLen, void *(*NetlibRealloc)(void *, size_t))
{
*outBufLen = len;
ThreadData* T = FindThreadConn(nlhr->nlc);
if (T == NULL) return buf;
bool isSessionClosed = true;
bool isMsnPacket = false;
if (nlhr->resultCode == 200)
{
for (int i=0; i < nlhr->headersCount; i++)
{
NETLIBHTTPHEADER& tHeader = nlhr->headers[i];
if (_stricmp(tHeader.szName, "X-MSN-Messenger") != 0)
continue;
isMsnPacket = true;
if (strstr(tHeader.szValue, "Session=close") == 0)
isSessionClosed = false;
else
break;
T->processSessionData(tHeader.szValue);
T->applyGatewayData(nlhr->nlc, false);
}
}
T->sessionClosed |= isSessionClosed;
if (isSessionClosed && buf == NULL)
{
*outBufLen = 0;
buf = (PBYTE)mir_alloc(1);
*buf = 0;
}
else if (buf == NULL && len == 0)
{
*outBufLen = 1;
buf = (PBYTE)mir_alloc(1);
*buf = 0;
}
else if (!isMsnPacket)
{
*outBufLen = 0;
*buf = 0;
}
return buf;
}