+ /* Existiert der Channel bereits, oder wird er im Moment neu erzeugt? */
+ if( is_new_chan )
+ {
+ /* Erster User im Channel: Operator-Flag setzen */
+ flags = "o";
+ }
+ else
+ {
+ /* Existierenden Channel suchen */
+ chan = Channel_Search( channame );
+ assert( chan != NULL );
+
+ /* Testen, ob Client gebanned ist */
+ if( Lists_CheckBanned( target, chan ))
+ {
+ /* Client ist gebanned: */
+ IRC_WriteStrClient( Client, ERR_BANNEDFROMCHAN_MSG, Client_ID( Client ), channame );
+
+ /* naechsten Namen ermitteln */
+ channame = strtok( NULL, "," );
+ continue;
+ }
+
+ /* Ist der Channel "invite-only"? */
+ if( strchr( Channel_Modes( chan ), 'i' ))
+ {
+ /* Wurde der Client invited? */
+ if( ! Lists_CheckInvited( target, chan ))
+ {
+ /* Client wurde nicht invited: */
+ IRC_WriteStrClient( Client, ERR_INVITEONLYCHAN_MSG, Client_ID( Client ), channame );
+
+ /* naechsten Namen ermitteln */
+ channame = strtok( NULL, "," );
+ continue;
+ }
+ }
+ }