char c = format[i];
if (c == '$')
{
- if (format.substr(i, 13) == "$nickrequired")
+ if (!format.compare(i, 13, "$nickrequired", 13))
{
result.append(nickrequired);
i += 12;
}
- else if (format.substr(i, 5) == "$nick")
+ else if (!format.compare(i, 5, "$nick", 5))
{
result.append(user->nick);
i += 4;
}
- else if (format.substr(i, 5) == "$user")
+ else if (!format.compare(i, 5, "$user", 5))
{
result.append(user->ident);
i += 4;
}
- else if (format.substr(i,5) == "$pass")
+ else if (!format.compare(i, 5, "$pass", 5))
{
result.append(user->password);
i += 4;
if (!user || user->password.empty())
return;
+ // If the connect class requires a password, don't forward it
+ if (!user->MyClass->config->getString("password").empty())
+ return;
+
if (!nickrequired.empty())
{
/* Check if nick exists and its server is ulined */
User* u = ServerInstance->FindNick(nickrequired);
- if (!u || !ServerInstance->ULine(u->server))
+ if (!u || !u->server->IsULine())
return;
}
tmp.clear();
FormatStr(tmp,forwardcmd, user);
- ServerInstance->Parser->ProcessBuffer(tmp,user);
+ ServerInstance->Parser.ProcessBuffer(tmp,user);
}
};