X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc.c;h=4ec0427f2ff3cb197d3effffdf751d9aace0763f;hp=ef42e857a0a0f86a27b992b5a829eb3dd8f5abef;hb=3da161131a1fd94b572dd23963a612e16366a1e4;hpb=f7327524fce6a7db28850c8b8b8f0e99d0b2402b diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index ef42e857..4ec0427f 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -9,7 +9,7 @@ * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. * - * $Id: irc.c,v 1.91 2002/05/30 16:52:21 alex Exp $ + * $Id: irc.c,v 1.94 2002/07/25 11:37:01 alex Exp $ * * irc.c: IRC-Befehle */ @@ -79,6 +79,9 @@ IRC_PRIVMSG( CLIENT *Client, REQUEST *Req ) cl = Client_Search( Req->argv[0] ); if( cl ) { + /* Okay, Ziel ist ein Client. Aber ist es auch ein User? */ + if( Client_Type( cl ) != CLIENT_USER ) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( from ), Req->argv[0] ); + /* Okay, Ziel ist ein User */ if(( Client_Type( Client ) != CLIENT_SERVER ) && ( strchr( Client_Modes( cl ), 'a' ))) { @@ -116,7 +119,7 @@ IRC_NOTICE( CLIENT *Client, REQUEST *Req ) if( ! from ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix ); to = Client_Search( Req->argv[0] ); - if( to ) + if(( to ) && ( Client_Type( to ) == CLIENT_USER )) { /* Okay, Ziel ist ein User */ return IRC_WriteStrClientPrefix( to, from, "NOTICE %s :%s", Client_ID( to ), Req->argv[1] ); @@ -640,8 +643,14 @@ IRC_KILL( CLIENT *Client, REQUEST *Req ) /* haben wir selber einen solchen Client? */ c = Client_Search( Req->argv[0] ); - if( c && ( Client_Conn( c ) != NONE )) Conn_Close( Client_Conn( c ), NULL, Req->argv[1], TRUE ); - + if( c ) + { + /* Ja, wir haben einen solchen Client */ + if( Client_Conn( c ) != NONE ) Conn_Close( Client_Conn( c ), NULL, Req->argv[1], TRUE ); + else Client_Destroy( c, NULL, Req->argv[1], TRUE ); + } + else Log( LOG_NOTICE, "Client with nick \"%s\" is unknown here.", Req->argv[0] ); + return CONNECTED; } /* IRC_KILL */