/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2014, 2017-2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2014 Daniel Vassdal <shutter@canternet.org>
+ * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2008, 2010 Craig Edwards <brain@inspircd.org>
+ * Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
* Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
if ((!do_compat_include) && (!(v.Flags & filter)))
continue;
- if (i != modlist.begin())
- capabilities.push_back(' ');
+ capabilities.push_back(' ');
capabilities.append(i->first);
if (!v.link_data.empty())
{
// If we are linked in a 2.0 server and have an ascii casemapping
// advertise it as m_ascii.so from inspircd-extras
if ((filter & VF_COMMON) && ServerInstance->Config->CaseMapping == "ascii" && proto_version == PROTO_INSPIRCD_20)
- {
- if (!capabilities.empty())
- capabilities += "m_ascii.so";
- }
+ capabilities.append(" m_ascii.so");
- return capabilities;
+ if (capabilities.empty())
+ return capabilities;
+
+ return capabilities.substr(1);
}
std::string TreeSocket::BuildModeList(ModeType mtype)
.append(" PREFIX="+ ServerInstance->Modes->BuildPrefixes());
}
+ // HACK: Allow services to know what extbans exist. This will be
+ // replaced by CAPAB EXTBANS in the next protocol version.
+ std::map<std::string, std::string> tokens;
+ FOREACH_MOD(On005Numeric, (tokens));
+ std::map<std::string, std::string>::const_iterator eiter = tokens.find("EXTBAN");
+ if (eiter != tokens.end())
+ extra.append(" EXTBANS=" + eiter->second);
+
this->WriteLine("CAPAB CAPABILITIES " /* Preprocessor does this one. */
":NICKMAX="+ConvToStr(ServerInstance->Config->Limits.NickMax)+
" CHANMAX="+ConvToStr(ServerInstance->Config->Limits.ChanMax)+
this->WriteLine("CAPAB END");
}
-/* Isolate and return the elements that are different between two comma seperated lists */
+/* Isolate and return the elements that are different between two comma separated lists */
void TreeSocket::ListDifference(const std::string &one, const std::string &two, char sep,
std::string& mleft, std::string& mright)
{