Commit Diff


commit - 05e2c0f0483aa53b1396f60fc39047350dfb49d8
commit + ff2c1efae8b8b1bf30013123bb17243dc682f7d3
blob - bdb6d83056039370ed8c82eb68bbeef95294e221
blob + 648da5c3c24d051961f3b39555f6bd18ff94a5af
--- src/ngircd/irc-op.c
+++ src/ngircd/irc-op.c
@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-op.c,v 1.11 2002/12/12 12:24:18 alex Exp $";
+static char UNUSED id[] = "$Id: irc-op.c,v 1.12 2003/12/05 11:57:28 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -69,14 +69,14 @@ IRC_INVITE( CLIENT *Client, REQUEST *Req )
 	assert( Client != NULL );
 	assert( Req != NULL );
 
-	/* Falsche Anzahl Parameter? */
+	/* Wrong number of parameters? */
 	if( Req->argc != 2 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
 
 	if( Client_Type( Client ) == CLIENT_SERVER ) from = Client_Search( Req->prefix );
 	else from = Client;
 	if( ! from ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix );
 	
-	/* User suchen */
+	/* Search user */
 	target = Client_Search( Req->argv[0] );
 	if(( ! target ) || ( Client_Type( target ) != CLIENT_USER )) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[0] );
 
@@ -84,36 +84,38 @@ IRC_INVITE( CLIENT *Client, REQUEST *Req )
 
 	if( chan )
 	{
-		/* Der Channel existiert bereits; ist der User Mitglied? */
+		/* Channel exists. Is the user a valid member of the channel? */
 		if( ! Channel_IsMemberOf( chan, from )) return IRC_WriteStrClient( from, ERR_NOTONCHANNEL_MSG, Client_ID( Client ), Req->argv[1] );
 
-		/* Ist der Channel "invite-only"? */
+		/* Is the channel "invite-only"? */
 		if( strchr( Channel_Modes( chan ), 'i' ))
 		{
-			/* Ja. Der User muss Channel-Operator sein! */
+			/* Yes. The user must be channel operator! */
 			if( ! strchr( Channel_UserModes( chan, from ), 'o' )) return IRC_WriteStrClient( from, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( from ), Channel_Name( chan ));
 			remember = TRUE;
 		}
 
-		/* Ist der Ziel-User bereits Mitglied? */
+		/* Is the target user already member of the channel? */
 		if( Channel_IsMemberOf( chan, target )) return IRC_WriteStrClient( from, ERR_USERONCHANNEL_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] );
-	}
 
-	/* Wenn der User gebanned ist, so muss das Invite auch gespeichert werden */
-	if( Lists_CheckBanned( target, chan )) remember = TRUE;
+		/* If the target user is banned on that channel: remember invite */
+		if( Lists_CheckBanned( target, chan )) remember = TRUE;
 
-	Log( LOG_DEBUG, "User \"%s\" invites \"%s\" to \"%s\" ...", Client_Mask( from ), Req->argv[0], Req->argv[1] );
-	if( remember )
-	{
-		if( ! Lists_AddInvited( from, Client_Mask( target ), chan, TRUE )) return CONNECTED;
+		if( remember )
+		{
+			/* We must memember this invite */
+			if( ! Lists_AddInvited( from, Client_Mask( target ), chan, TRUE )) return CONNECTED;
+		}
 	}
+
+	Log( LOG_DEBUG, "User \"%s\" invites \"%s\" to \"%s\" ...", Client_Mask( from ), Req->argv[0], Req->argv[1] );
 	
-	/* an Ziel-Client forwarden ... */
+	/* Inform target client */
 	IRC_WriteStrClientPrefix( target, from, "INVITE %s %s", Req->argv[0], Req->argv[1] );
 
 	if( Client_Conn( target ) > NONE )
 	{
-		/* lokaler Ziel-Client, Status-Code melden */
+		/* The target user is local, so we have to send the status code */
 		if( ! IRC_WriteStrClientPrefix( from, target, RPL_INVITING_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] )) return DISCONNECTED;
 	}