Commit Diff


commit - e907816380d02f913cc1f9c463f7835fc70fc0c0
commit + 00e75ccd7d3c43b1142c65ed2a26408efd1b9c5b
blob - 52e245190d40ec8eca2addb0edb816575589056a
blob + 528751e48d0f013291ace866a66f071323f78967
--- src/ngircd/irc-channel.c
+++ src/ngircd/irc-channel.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-channel.c,v 1.19 2002/12/13 17:53:32 alex Exp $";
+static char UNUSED id[] = "$Id: irc-channel.c,v 1.20 2002/12/14 13:23:11 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -83,6 +83,16 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
 		/* Lokaler Client? */
 		if( Client_Type( Client ) == CLIENT_USER )
 		{
+			/* Test if the user has reached his maximum channel count */
+			if( Client_Type( Client ) == CLIENT_USER )
+			{
+				if(( Conf_MaxJoins > 0 ) && ( Channel_CountForUser( Client ) >= Conf_MaxJoins ))
+				{
+					IRC_WriteStrClient( Client, ERR_TOOMANYCHANNELS_MSG, Client_ID( Client ), channame );
+					return CONNECTED;
+				}
+			}
+
 			/* Existiert der Channel bereits, oder wird er im Moment neu erzeugt? */
 			if( is_new_chan )
 			{
@@ -95,17 +105,6 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
 				chan = Channel_Search( channame );
 				assert( chan != NULL );
 
-				/* Test if the user has reached his maximum channel count */
-				if( Client_Type( Client ) == CLIENT_USER )
-				{
-					if(( Conf_MaxJoins > 0 ) && ( Channel_CountForUser( chan, Client ) > Conf_MaxJoins ))
-					{
-						IRC_WriteStrClient( Client, ERR_TOOMANYCHANNELS_MSG, Client_ID( Client ), channame );
-						return CONNECTED;
-					}
-				}
-
-
 				is_banned = Lists_CheckBanned( target, chan );
 				is_invited = Lists_CheckInvited( target, chan );