X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cloaking.cpp;h=61bf3f4e9f52c9efaed79248c8b81e1cb889a668;hb=0b3a4371c504c45c8a4504d114efb2ca674374e0;hp=70f335c1c886cfee07fcec15c40fddda8fc4a808;hpb=ca215635bea432e83bb797e063da9b34103d29c6;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index 70f335c1c..61bf3f4e9 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -1,16 +1,28 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2010 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2006-2008 Robin Burchell + * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2003-2008 Craig Edwards + * Copyright (C) 2007 John Brooks + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006 Oliver Lupton * - * This program is free but copyrighted software; see - * the file COPYING for details. + * 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 + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + #include "inspircd.h" #include "hash.h" @@ -106,8 +118,8 @@ class CloakUser : public ModeHandler /* User is removing the mode, so restore their real host * and make it match the displayed one. */ - user->ChangeDisplayedHost(user->host.c_str()); user->SetMode('x',false); + user->ChangeDisplayedHost(user->host.c_str()); return MODEACTION_ALLOW; } } @@ -198,7 +210,7 @@ class ModuleCloaking : public Module input.reserve(key.length() + 3 + item.length()); input.append(1, id); input.append(key); - input.append(1, 0); // null does not terminate a C++ string + input.append(1, '\0'); // null does not terminate a C++ string input.append(item); std::string rv = Hash->sum(input).substr(0,len); @@ -365,7 +377,11 @@ class ModuleCloaking : public Module // mode change, we will call SetMode back to true AFTER the host change is done. void OnChangeHost(User* u, const std::string& host) { - u->SetMode('x', false); + if(u->IsModeSet('x')) + { + u->SetMode('x', false); + u->WriteServ("MODE %s -x", u->nick.c_str()); + } } ~ModuleCloaking()