* @param user User to send the numeric to. May be unregistered, must remain valid as long as this object is alive.
*/
Numeric(const ::Numeric::Numeric& num, User* user)
- : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer()->GetName() : ServerInstance->Config->ServerName))
+ : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer() : ServerInstance->FakeClient->server)->GetName())
{
if (user->registered & REG_NICK)
PushParamRef(user->nick);
* @param target Target string, must stay valid as long as this object is alive.
*/
Numeric(const ::Numeric::Numeric& num, const std::string& target)
- : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer()->GetName() : ServerInstance->Config->ServerName))
+ : ClientProtocol::Message(NULL, (num.GetServer() ? num.GetServer() : ServerInstance->FakeClient->server)->GetName())
{
PushParamRef(target);
InitFromNumeric(num);
* @param num Numeric number.
*/
Numeric(unsigned int num)
- : ClientProtocol::Message(NULL, ServerInstance->Config->ServerName)
+ : ClientProtocol::Message(NULL, ServerInstance->Config->GetServerName())
{
InitCommand(num);
PushParam("*");
Ping()
: ClientProtocol::Message("PING")
{
- PushParamRef(ServerInstance->Config->ServerName);
+ PushParamRef(ServerInstance->Config->GetServerName());
}
/** Constructor.
* @param server Pinged server. Must remain valid as long as this object is alive if non-empty.
*/
Pong(const std::string& cookie, const std::string& server = "")
- : ClientProtocol::Message("PONG", ServerInstance->Config->ServerName)
+ : ClientProtocol::Message("PONG", ServerInstance->Config->GetServerName())
{
- PushParamRef(ServerInstance->Config->ServerName);
+ PushParamRef(ServerInstance->Config->GetServerName());
if (!server.empty())
PushParamRef(server);
PushParamRef(cookie);
*/
const std::string& GetSID() const { return sid; }
+ /** Retrieves the server name which should be shown to users. */
+ const std::string& GetServerName() const { return HideServer.empty() ? ServerName : HideServer; }
+
+ /** Retrieves the server description which should be shown to users. */
+ const std::string& GetServerDesc() const { return HideServer.empty() ? ServerDesc : HideServer; }
+
/** Read the entire configuration into memory
* and initialize this class. All other methods
* should be used only by the core.
{
public:
MessageBase(const std::string& subcmd)
- : ClientProtocol::Message("CAP", ServerInstance->Config->ServerName)
+ : ClientProtocol::Message("CAP", ServerInstance->Config->GetServerName())
{
PushParamPlaceholder();
PushParam(subcmd);
*/
void Send(LocalUser* user, Command* command, const std::string& code, const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
msg.PushParamRef(command->name);
msg.PushParam(code);
msg.PushParam(description);
template<typename T1>
void Send(LocalUser* user, Command* command, const std::string& code, const T1& p1, const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
msg.PushParamRef(command->name);
msg.PushParam(code);
msg.PushParam(ConvToStr(p1));
void Send(LocalUser* user, Command* command, const std::string& code, const T1& p1, const T2& p2,
const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
msg.PushParamRef(command->name);
msg.PushParam(code);
msg.PushParam(ConvToStr(p1));
void Send(LocalUser* user, Command* command, const std::string& code, const T1& p1, const T2& p2,
const T3& p3, const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
msg.PushParamRef(command->name);
msg.PushParam(code);
msg.PushParam(ConvToStr(p1));
void Send(LocalUser* user, Command* command, const std::string& code, const T1& p1, const T2& p2,
const T3& p3, const T4& p4, const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
msg.PushParamRef(command->name);
msg.PushParam(code);
msg.PushParam(ConvToStr(p1));
void Send(LocalUser* user, Command* command, const std::string& code, const T1& p1, const T2& p2,
const T3& p3, const T4& p4, const T5& p5, const std::string& description)
{
- ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->ServerName);
+ ClientProtocol::Message msg(cmd.c_str(), ServerInstance->Config->GetServerName());
if (command)
msg.PushParamRef(command->name);
else
GenericBuilder(Sink s, unsigned int num, bool addparam = true, size_t additionalsize = 0)
: sink(s)
, numeric(num)
- , max(ServerInstance->Config->Limits.MaxLine - ServerInstance->Config->ServerName.size() - additionalsize - 10)
+ , max(ServerInstance->Config->Limits.MaxLine - ServerInstance->Config->GetServerName().size() - additionalsize - 10)
{
if (addparam)
numeric.push(std::string());
: sink(s)
, numeric(num)
, currlen(0)
- , max(ServerInstance->Config->Limits.MaxLine - ServerInstance->Config->ServerName.size() - additionalsize - 10)
+ , max(ServerInstance->Config->Limits.MaxLine - ServerInstance->Config->GetServerName().size() - additionalsize - 10)
{
}
}
}
-static std::string GetServerName()
+static std::string GetServerHost()
{
#ifndef _WIN32
char hostname[256];
ConfigTag* server = ConfValue("server");
if (sid.empty())
{
- ServerName = server->getString("name", GetServerName(), InspIRCd::IsHost);
+ ServerName = server->getString("name", GetServerHost(), InspIRCd::IsHost);
sid = server->getString("id");
if (!sid.empty() && !InspIRCd::IsSID(sid))
{
if (parameters.size() > 0 && !irc::equals(parameters[0], ServerInstance->Config->ServerName))
return CMD_SUCCESS;
- user->WriteRemoteNumeric(RPL_ADMINME, ServerInstance->Config->ServerName, "Administrative info");
+ user->WriteRemoteNumeric(RPL_ADMINME, ServerInstance->Config->GetServerName(), "Administrative info");
if (!AdminName.empty())
user->WriteRemoteNumeric(RPL_ADMINLOC1, InspIRCd::Format("Name: %s", AdminName.c_str()));
user->WriteRemoteNumeric(RPL_ADMINLOC2, InspIRCd::Format("Nickname: %s", AdminNick.c_str()));
return CMD_SUCCESS;
}
- user->WriteRemoteNumeric(RPL_MOTDSTART, InspIRCd::Format("%s message of the day", ServerInstance->Config->ServerName.c_str()));
+ user->WriteRemoteNumeric(RPL_MOTDSTART, InspIRCd::Format("%s message of the day", ServerInstance->Config->GetServerName().c_str()));
for (file_cache::iterator i = motd->second.begin(); i != motd->second.end(); i++)
user->WriteRemoteNumeric(RPL_MOTD, InspIRCd::Format(" %s", i->c_str()));
if (parameters.size() > 0 && !irc::equals(parameters[0], ServerInstance->Config->ServerName))
return CMD_SUCCESS;
- user->WriteRemoteNumeric(RPL_TIME, ServerInstance->Config->ServerName, InspIRCd::TimeString(ServerInstance->Time()));
-
+ user->WriteRemoteNumeric(RPL_TIME, ServerInstance->Config->GetServerName(), InspIRCd::TimeString(ServerInstance->Time()));
return CMD_SUCCESS;
}
void OnUserConnect(LocalUser* user) CXX11_OVERRIDE
{
user->WriteNumeric(RPL_WELCOME, InspIRCd::Format("Welcome to the %s IRC Network %s", ServerInstance->Config->Network.c_str(), user->GetFullRealHost().c_str()));
- user->WriteNumeric(RPL_YOURHOST, InspIRCd::Format("Your host is %s, running version %s", ServerInstance->Config->ServerName.c_str(), INSPIRCD_BRANCH));
+ user->WriteNumeric(RPL_YOURHOST, InspIRCd::Format("Your host is %s, running version %s", ServerInstance->Config->GetServerName().c_str(), INSPIRCD_BRANCH));
user->WriteNumeric(RPL_CREATED, InspIRCd::TimeString(ServerInstance->startup_time, "This server was created %H:%M:%S %b %d %Y"));
user->WriteNumeric(numeric004);
*/
CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
- user->WriteNumeric(RPL_LINKS, ServerInstance->Config->ServerName, ServerInstance->Config->ServerName, InspIRCd::Format("0 %s", ServerInstance->Config->ServerDesc.c_str()));
+ user->WriteNumeric(RPL_LINKS, ServerInstance->Config->GetServerName(), ServerInstance->Config->GetServerName(), InspIRCd::Format("0 %s", ServerInstance->Config->GetServerDesc().c_str()));
user->WriteNumeric(RPL_ENDOFLINKS, '*', "End of /LINKS list.");
return CMD_SUCCESS;
}
{
public:
BatchMessage(const IRCv3::Batch::Batch& batch, bool start)
- : ClientProtocol::Message("BATCH", ServerInstance->Config->ServerName)
+ : ClientProtocol::Message("BATCH", ServerInstance->Config->GetServerName())
{
char c = (start ? '+' : '-');
PushParam(std::string(1, c) + batch.GetRefTagStr());
topicset = ServerInstance->Time();
std::string topicsetby = tag->getString("topicsetby");
if (topicsetby.empty())
- topicsetby = ServerInstance->Config->ServerName;
+ topicsetby = ServerInstance->Config->GetServerName();
c->SetTopic(ServerInstance->FakeClient, topic, topicset, &topicsetby);
}
return;
user->WriteNumeric(RPL_LINKS, Current->GetName(),
- (((Utils->FlatLinks) && (!user->IsOper())) ? ServerInstance->Config->ServerName : Parent),
+ (((Utils->FlatLinks) && (!user->IsOper())) ? ServerInstance->Config->GetServerName() : Parent),
InspIRCd::Format("%d %s", (((Utils->FlatLinks) && (!user->IsOper())) ? 0 : hops), Current->GetDesc().c_str()));
}
std::string text = "*** You are connected to ";
if (!ssliohook->GetServerName(text))
- text.append(ServerInstance->Config->ServerName);
+ text.append(ServerInstance->Config->GetServerName());
text.append(" using TLS (SSL) cipher '");
ssliohook->GetCiphersuite(text);
text.push_back('\'');
{
if (getFullVersion)
return INSPIRCD_VERSION ". " + Config->ServerName + " :[" + Config->sid + "] " + Config->CustomVersion;
- return INSPIRCD_BRANCH ". " + Config->ServerName + " :" + Config->CustomVersion;
+ return INSPIRCD_BRANCH ". " + Config->GetServerName() + " :" + Config->CustomVersion;
}
std::string UIDGenerator::GenerateSID(const std::string& servername, const std::string& serverdesc)
{
std::string message;
VAFORMAT(message, text, text);
- ClientProtocol::Messages::Privmsg msg(ClientProtocol::Messages::Privmsg::nocopy, ServerInstance->FakeClient, ServerInstance->Config->ServerName, message, MSG_NOTICE);
+ ClientProtocol::Messages::Privmsg msg(ClientProtocol::Messages::Privmsg::nocopy, ServerInstance->FakeClient, ServerInstance->Config->GetServerName(), message, MSG_NOTICE);
ClientProtocol::Event msgevent(ServerInstance->GetRFCEvents().privmsg, msg);
for (LocalList::const_iterator i = local_users.begin(); i != local_users.end(); ++i)