commit 75b719a0c88b58b6de3024413374b066ac4c6849 from: Eric Grunow via: Florian Westphal date: Thu May 08 01:15:04 2008 UTC Anglified and improved comments in channel.c and channel.h [Dana Dahlstrom: repair tab/space conversion in patch] commit - 4e56e5341f632827af3810e26cd59ac0c15b642b commit + 75b719a0c88b58b6de3024413374b066ac4c6849 blob - c923404bff904382db95359a444ec6501129ec85 blob + 5caf7d0ce267fa68598cbca60c67414b29b15f03 --- src/ngircd/channel.c +++ src/ngircd/channel.c @@ -89,18 +89,18 @@ Channel_GetListInvites(CHANNEL *c) GLOBAL void Channel_InitPredefined( void ) { - /* Vordefinierte persistente Channels erzeugen */ + /* Generate predefined persistent channels */ CHANNEL *chan; char *c; unsigned int i; - + for( i = 0; i < Conf_Channel_Count; i++ ) { - /* Ist ein Name konfiguriert? */ + /* Check for Name configuration */ if( ! Conf_Channel[i].name[0] ) continue; - /* Gueltiger Channel-Name? */ + /* Check for invalid channel name */ if( ! Channel_IsValidName( Conf_Channel[i].name )) { Log( LOG_ERR, "Can't create pre-defined channel: invalid name: \"%s\"!", Conf_Channel[i].name ); @@ -108,7 +108,7 @@ Channel_InitPredefined( void ) continue; } - /* Gibt es den Channel bereits? */ + /* Check if the channel name is already in use */ chan = Channel_Search( Conf_Channel[i].name ); if( chan ) { @@ -149,7 +149,7 @@ Channel_Exit( void ) CHANNEL *c, *c_next; CL2CHAN *cl2chan, *cl2chan_next; - /* Channel-Strukturen freigeben */ + /* free struct Channel */ c = My_Channels; while( c ) { @@ -159,7 +159,7 @@ Channel_Exit( void ) c = c_next; } - /* Channel-Zuordnungstabelle freigeben */ + /* Free Channel allocation table */ cl2chan = My_Cl2Chan; while( c ) { @@ -170,14 +170,23 @@ Channel_Exit( void ) } /* Channel_Exit */ +/** + * Join Channel + * This function lets a client join a channel. First, the function + * checks that the specified channel name is valid and that the client + * isn't already a member. If the specified channel doesn't exist, + * a new channel is created. Client is added to channel by function + * Add_Client(). + */ GLOBAL bool Channel_Join( CLIENT *Client, char *Name ) { CHANNEL *chan; - + assert( Client != NULL ); assert( Name != NULL ); + /* Check that the channel name is valid */ if( ! Channel_IsValidName( Name )) { IRC_WriteStrClient( Client, ERR_NOSUCHCHANNEL_MSG, Client_ID( Client ), Name ); return false; @@ -185,25 +194,25 @@ Channel_Join( CLIENT *Client, char *Name ) chan = Channel_Search( Name ); if( chan ) { - /* Ist der Client bereits Mitglied? */ + /* Check if the client is already in the channel */ if( Get_Cl2Chan( chan, Client )) return false; } else { - /* Gibt es noch nicht? Dann neu anlegen: */ + /* If the specified channel doesn't exist, the channel is created */ chan = Channel_Create( Name ); if (!chan) return false; } - /* User dem Channel hinzufuegen */ + /* Add user to Channel */ if( ! Add_Client( chan, Client )) return false; else return true; } /* Channel_Join */ /** - * Remove client from channel. - * This function lets a client lead a channel. First, the function checks + * Part client from channel. + * This function lets a client part from a channel. First, the function checks * if the channel exists and the client is a member of it and sends out * appropriate error messages if not. The real work is done by the function * Remove_Client(). @@ -217,18 +226,22 @@ Channel_Part(CLIENT * Client, CLIENT * Origin, const c assert(Name != NULL); assert(Reason != NULL); + /* Check that specified channel exists */ chan = Channel_Search(Name); if (!chan) { IRC_WriteStrClient(Client, ERR_NOSUCHCHANNEL_MSG, Client_ID(Client), Name); return false; } + + /* Check that the client is in the channel */ if (!Get_Cl2Chan(chan, Client)) { IRC_WriteStrClient(Client, ERR_NOTONCHANNEL_MSG, Client_ID(Client), Name); return false; } + /* Part client from channel */ if (!Remove_Client(REMOVE_PART, chan, Client, Origin, Reason, true)) return false; else @@ -236,6 +249,7 @@ Channel_Part(CLIENT * Client, CLIENT * Origin, const c } /* Channel_Part */ +/* Kick user from Channel */ GLOBAL void Channel_Kick( CLIENT *Client, CLIENT *Origin, const char *Name, const char *Reason ) { @@ -246,6 +260,7 @@ Channel_Kick( CLIENT *Client, CLIENT *Origin, const ch assert( Name != NULL ); assert( Reason != NULL ); + /* Check that channel exists */ chan = Channel_Search( Name ); if( ! chan ) { @@ -253,26 +268,28 @@ Channel_Kick( CLIENT *Client, CLIENT *Origin, const ch return; } + /* Check that user is on the specified channel */ if( ! Channel_IsMemberOf( chan, Origin )) { IRC_WriteStrClient( Origin, ERR_NOTONCHANNEL_MSG, Client_ID( Origin ), Name ); return; } - /* Is User Channel-Operator? */ + /* Check if user has operator status */ if( ! strchr( Channel_UserModes( chan, Origin ), 'o' )) { IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Name); return; } - /* Ist the kickED User member of channel? */ + /* Check that the client to be kicked is on the specified channel */ if( ! Channel_IsMemberOf( chan, Client )) { IRC_WriteStrClient( Origin, ERR_USERNOTINCHANNEL_MSG, Client_ID( Origin ), Client_ID( Client ), Name ); return; } + /* Kick Client from channel */ Remove_Client( REMOVE_KICK, chan, Client, Origin, Reason, true); } /* Channel_Kick */ @@ -302,7 +319,7 @@ Channel_Count( void ) { CHANNEL *c; unsigned long count = 0; - + c = My_Channels; while( c ) { @@ -338,9 +355,9 @@ Channel_CountForUser( CLIENT *Client ) CL2CHAN *cl2chan; int count = 0; - + assert( Client != NULL ); - + cl2chan = My_Cl2Chan; while( cl2chan ) { @@ -352,7 +369,6 @@ Channel_CountForUser( CLIENT *Client ) } /* Channel_CountForUser */ - GLOBAL const char * Channel_Name( const CHANNEL *Chan ) { @@ -404,7 +420,7 @@ GLOBAL CHANNEL * Channel_Search( const char *Name ) { /* Channel-Struktur suchen */ - + CHANNEL *c; UINT32 search_hash; @@ -631,7 +647,7 @@ Channel_Topic( CHANNEL *Chan ) return ret ? ret : ""; } /* Channel_Topic */ - + #ifndef STRICT_RFC GLOBAL unsigned int @@ -849,7 +865,7 @@ Remove_Client( int Type, CHANNEL *Chan, CLIENT *Client { CL2CHAN *cl2chan, *last_cl2chan; CHANNEL *c; - + assert( Chan != NULL ); assert( Client != NULL ); assert( Origin != NULL ); @@ -999,7 +1015,7 @@ Get_Next_Cl2Chan( CL2CHAN *Start, CLIENT *Client, CHAN CL2CHAN *cl2chan; assert( Client != NULL || Channel != NULL ); - + cl2chan = Start; while( cl2chan ) { blob - 1483b4acc12c373daff7696a9fd75642a1ae2e6f blob + 1f78bf87b377f2e70be8a0ebf0c48c0874d1d841 --- src/ngircd/channel.h +++ src/ngircd/channel.h @@ -46,7 +46,7 @@ typedef struct _CLIENT2CHAN struct _CLIENT2CHAN *next; CLIENT *client; CHANNEL *channel; - char modes[CHANNEL_MODE_LEN]; /* User-Modes in dem Channel */ + char modes[CHANNEL_MODE_LEN]; /* User-Modes in Channel */ } CL2CHAN; #else