/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2013, 2016 Adam <Adam@anope.org>
+ * Copyright (C) 2012-2016, 2018 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007-2009 Craig Edwards <craigedwards@brainbox.cc>
- * Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
- * Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
- * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2007-2009 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007-2009 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2005, 2007-2010 Craig Edwards <brain@inspircd.org>
*
* 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
, messageeventprov(this, "event/server-message")
, synceventprov(this, "event/server-sync")
, sslapi(this)
+ , servicetag(this)
, DNS(this, "DNS")
- , tagevprov(this, "event/messagetag")
+ , tagevprov(this)
, loopCall(false)
{
}
ShowLinks(server, user, hops+1);
}
}
- /* Don't display the line if its a uline, hide ulines is on, and the user isnt an oper */
+ /* Don't display the line if its a uline, hide ulines is on, and the user isn't an oper */
if ((Utils->HideULines) && (Current->IsULine()) && (!user->IsOper()))
return;
/* Or if the server is hidden and they're not an oper */
// If this fails then the IP sa will be AF_UNSPEC.
irc::sockets::aptosa(x->IPAddr, x->Port, sa);
}
-
+
/* Do we already have an IP? If so, no need to resolve it. */
if (sa.family() != AF_UNSPEC)
{
// Create a TreeServer object that will start connecting immediately in the background
TreeSocket* newsocket = new TreeSocket(x, y, sa);
- if (newsocket->GetFd() > -1)
- {
- /* Handled automatically on success */
- }
- else
+ if (!newsocket->HasFd())
{
ServerInstance->SNO->WriteToSnoMask('l', "CONNECT: Error connecting \002%s\002: %s.",
x->Name.c_str(), newsocket->getError().c_str());
const std::string* serverglob = target.Get<std::string>();
CmdBuilder par(user, message_type);
par.push_tags(details.tags_out);
- par.push(*serverglob);
+ par.push(std::string("$") + *serverglob);
par.push_last(details.text);
par.Broadcast();
break;
const std::string* serverglob = target.Get<std::string>();
CmdBuilder par(user, "TAGMSG");
par.push_tags(details.tags_out);
- par.push(*serverglob);
+ par.push(std::string("$") + *serverglob);
par.Broadcast();
break;
}
Version ModuleSpanningTree::GetVersion()
{
- return Version("Allows servers to be linked", VF_VENDOR);
+ return Version("Allows linking multiple servers together as part of one network.", VF_VENDOR);
}
/* It is IMPORTANT that m_spanningtree is the last module in the chain