Commit Diff


commit - 3e723318961b452c851eda2bec2a322fc249bfce
commit + 0e63fb3fa7ac4ca048e8c2b648d2be3fd0572311
blob - 4eab2726a04393f40bc08ddec9ecfd4a4d5144c0
blob + 45bf615c29d604b453807e2a1e6c2b07c8c3f02c
--- src/ngircd/channel.c
+++ src/ngircd/channel.c
@@ -324,6 +324,13 @@ Channel_Kick(CLIENT *Peer, CLIENT *Target, CLIENT *Ori
 					    Client_ID(Origin), Name);
 			return;
 		}
+	}
+
+	/* Check that the client to be kicked is on the specified channel */
+	if (!Channel_IsMemberOf(chan, Target)) {
+		IRC_WriteStrClient(Origin, ERR_USERNOTINCHANNEL_MSG,
+				   Client_ID(Origin), Client_ID(Target), Name );
+		return;
 	}
 
 	if(Client_Type(Peer) == CLIENT_USER) {
@@ -382,13 +389,6 @@ Channel_Kick(CLIENT *Peer, CLIENT *Target, CLIENT *Ori
 		}
 	}
 
-	/* Check that the client to be kicked is on the specified channel */
-	if (!Channel_IsMemberOf(chan, Target)) {
-		IRC_WriteStrClient(Origin, ERR_USERNOTINCHANNEL_MSG,
-				   Client_ID(Origin), Client_ID(Target), Name );
-		return;
-	}
-
 	/* Kick Client from channel */
 	Remove_Client( REMOVE_KICK, chan, Target, Origin, Reason, true);
 } /* Channel_Kick */