X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fchannel.c;h=6b9fb69b4d50bc1d04b7cad47384a67b9e05bc16;hb=f53914b17a97e09266025a0d54900ea3e6b0dd58;hp=4e5f561390f5470b83d03d46e13c73a513d837d5;hpb=71c7a6fcc07f1899197d494aefc0b9f4e91405e7;p=ngircd.git diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c index 4e5f5613..6b9fb69b 100644 --- a/src/ngircd/channel.c +++ b/src/ngircd/channel.c @@ -9,11 +9,18 @@ * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. * - * $Id: channel.c,v 1.10 2002/01/28 01:16:15 alex Exp $ + * $Id: channel.c,v 1.12 2002/02/06 16:48:48 alex Exp $ * * channel.c: Management der Channels * * $Log: channel.c,v $ + * Revision 1.12 2002/02/06 16:48:48 alex + * - neue Funktion Channel_Modes() und Channel_IsValidName(). + * - Channel-Namen werden (besser) validiert. + * + * Revision 1.11 2002/01/29 00:11:10 alex + * - neue Funktionen Channel_FirstChannelOf() und Channel_NextChannelOf(). + * * Revision 1.10 2002/01/28 01:16:15 alex * - neue Funktionen Channel_Name(), Channel_First() und Channel_Next(). * @@ -122,7 +129,7 @@ GLOBAL BOOLEAN Channel_Join( CLIENT *Client, CHAR *Name ) assert( Name != NULL ); /* Valider Channel-Name? */ - if(( Name[0] != '#' ) || ( strlen( Name ) >= CHANNEL_NAME_LEN )) + if( ! Channel_IsValidName( Name )) { IRC_WriteStrClient( Client, ERR_NOSUCHCHANNEL_MSG, Client_ID( Client ), Name ); return FALSE; @@ -212,6 +219,13 @@ GLOBAL CHAR *Channel_Name( CHANNEL *Chan ) } /* Channel_Name */ +GLOBAL CHAR *Channel_Modes( CHANNEL *Chan ) +{ + assert( Chan != NULL ); + return Chan->modes; +} /* Channel_Modes */ + + GLOBAL CHANNEL *Channel_First( VOID ) { return My_Channels; @@ -246,7 +260,7 @@ GLOBAL CL2CHAN *Channel_FirstMember( CHANNEL *Chan ) { assert( Chan != NULL ); return Get_First_Cl2Chan( NULL, Chan ); -} /* Channel_IsMember */ +} /* Channel_FirstMember */ GLOBAL CL2CHAN *Channel_NextMember( CHANNEL *Chan, CL2CHAN *Cl2Chan ) @@ -257,6 +271,21 @@ GLOBAL CL2CHAN *Channel_NextMember( CHANNEL *Chan, CL2CHAN *Cl2Chan ) } /* Channel_NextMember */ +GLOBAL CL2CHAN *Channel_FirstChannelOf( CLIENT *Client ) +{ + assert( Client != NULL ); + return Get_First_Cl2Chan( Client, NULL ); +} /* Channel_FirstChannelOf */ + + +GLOBAL CL2CHAN *Channel_NextChannelOf( CLIENT *Client, CL2CHAN *Cl2Chan ) +{ + assert( Client != NULL ); + assert( Cl2Chan != NULL ); + return Get_Next_Cl2Chan( Cl2Chan->next, Client, NULL ); +} /* Channel_NextChannelOf */ + + GLOBAL CLIENT *Channel_GetClient( CL2CHAN *Cl2Chan ) { assert( Cl2Chan != NULL ); @@ -271,6 +300,17 @@ GLOBAL CHANNEL *Channel_GetChannel( CL2CHAN *Cl2Chan ) } /* Channel_GetChannel */ +GLOBAL BOOLEAN Channel_IsValidName( CHAR *Name ) +{ + /* PrŸfen, ob Name als Channelname gueltig */ + + assert( Name != NULL ); + + if(( Name[0] != '#' ) || ( strlen( Name ) >= CHANNEL_NAME_LEN )) return FALSE; + return TRUE; +} /* Channel_IsValidName */ + + LOCAL CHANNEL *New_Chan( CHAR *Name ) { /* Neue Channel-Struktur anlegen */