本文整理汇总了C++中CNick::GetSite方法的典型用法代码示例。如果您正苦于以下问题:C++ CNick::GetSite方法的具体用法?C++ CNick::GetSite怎么用?C++ CNick::GetSite使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNick
的用法示例。
在下文中一共展示了CNick::GetSite方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateHostHelper
/**
* UpdateHostHelper
*
* Updates the host for a user.
*
* @param Host the host (nick!ident\@host)
*/
void CIRCConnection::UpdateHostHelper(const char *Host) {
const char *NickEnd;
size_t Offset;
char *Copy;
if (GetOwner() != NULL && GetOwner()->GetLeanMode() > 0 && m_Site != NULL) {
return;
}
NickEnd = strchr(Host, '!');
if (NickEnd == NULL) {
return;
}
Offset = NickEnd - Host;
Copy = strdup(Host);
if (AllocFailed(Copy)) {
return;
}
const char *Nick = Copy;
char *Site = Copy + Offset;
*Site = '\0';
Site++;
if (m_CurrentNick && strcasecmp(Nick, m_CurrentNick) == 0) {
free(m_Site);
m_Site = strdup(Site);
if (AllocFailed(m_Site)) {}
}
if (GetOwner()->GetLeanMode() > 0) {
free(Copy);
return;
}
int i = 0;
while (hash_t<CChannel *> *Chan = m_Channels->Iterate(i++)) {
if (!Chan->Value || !Chan->Value->HasNames()) {
continue;
}
CNick *NickObj = Chan->Value->GetNames()->Get(Nick);
if (NickObj && NickObj->GetSite() == NULL) {
NickObj->SetSite(Site);
}
}
free(Copy);
}