X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcommands%2Fcmd_eline.cpp;h=ca95955b7a4d1bb92b82e746b31f53be9123ee0f;hb=5db1d322be106c8462dc691072f9415dc0766ed4;hp=cd0627178be4e2995c9c514041a3f5f3d258d98e;hpb=c45fe6715d51a0b6565fee1321c45645883fa749;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/commands/cmd_eline.cpp b/src/commands/cmd_eline.cpp index cd0627178..ca95955b7 100644 --- a/src/commands/cmd_eline.cpp +++ b/src/commands/cmd_eline.cpp @@ -2,11 +2,11 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * InspIRCd: (C) 2002-2008 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see - * the file COPYING for details. + * the file COPYING for details. * * --------------------------------------------------- */ @@ -26,15 +26,20 @@ CmdResult CommandEline::Handle (const char** parameters, int pcnt, User *user) { if (pcnt >= 3) { - IdentHostPair ih = ServerInstance->XLines->IdentSplit(parameters[0]); - if (ServerInstance->HostMatchesEveryone(ih.first+"@"+ih.second,user)) - return CMD_FAILURE; - - if (!strchr(parameters[0],'@')) + IdentHostPair ih; + User* find = ServerInstance->FindNick(parameters[0]); + if (find) { - user->WriteServ("NOTICE %s :*** E-Line must contain a username, e.g. *@%s",user->nick,parameters[0]); - return CMD_FAILURE; + ih.first = "*"; + ih.second = find->GetIPString(); + std::string c = std::string("*@") + find->GetIPString(); + parameters[0] = c.c_str(); } + else + ih = ServerInstance->XLines->IdentSplit(parameters[0]); + + if (ServerInstance->HostMatchesEveryone(ih.first+"@"+ih.second,user)) + return CMD_FAILURE; long duration = ServerInstance->Duration(parameters[1]); @@ -60,7 +65,7 @@ CmdResult CommandEline::Handle (const char** parameters, int pcnt, User *user) } else { - if (ServerInstance->XLines->DelLine(parameters[0], 'E', user)) + if (ServerInstance->XLines->DelLine(parameters[0], "E", user)) { ServerInstance->SNO->WriteToSnoMask('x',"%s Removed E-line on %s.",user->nick,parameters[0]); }