2 * InspIRCd -- Internet Relay Chat Daemon
4 * Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
6 * This file is part of InspIRCd. InspIRCd is free software: you can
7 * redistribute it and/or modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation, version 2.
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #include "treesocket.h"
24 #include "treeserver.h"
28 void TreeSocket::Encap(User* who, parameterlist ¶ms)
30 if (params.size() > 1)
32 if (ServerInstance->Config->GetSID() == params[0] || InspIRCd::Match(ServerInstance->Config->ServerName, params[0]))
34 parameterlist plist(params.begin() + 2, params.end());
35 ServerInstance->Parser->CallHandler(params[1], plist, who);
36 // discard return value, ENCAP shall succeed even if the command does not exist
39 params[params.size() - 1] = ":" + params[params.size() - 1];
41 if (params[0].find_first_of("*?") != std::string::npos)
43 Utils->DoOneToAllButSender(who->uuid, "ENCAP", params, who->server);
46 Utils->DoOneToOne(who->uuid, "ENCAP", params, params[0]);