repo: ngircd action: commit revision: path_from: revision_from: 2e88dd72d1776695fa223cea65953ba4642992f4: path_to: revision_to:
commit 2e88dd72d1776695fa223cea65953ba4642992f4 Author: Alexander BartonDate: Mon Dec 16 23:05:24 2002 +0000 - New functions Channel_[Set]Key(), Channel_[Set]MaxUsers. diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c
--- a/src/ngircd/channel.c +++ b/src/ngircd/channel.c @@ -17,7 +17,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: channel.c,v 1.37 2002/12/14 13:21:56 alex Exp $"; +static char UNUSED id[] = "$Id: channel.c,v 1.38 2002/12/16 23:05:24 alex Exp $"; #include "imp.h" #include@@ -350,6 +350,22 @@ Channel_Modes( CHANNEL *Chan ) } /* Channel_Modes */ +GLOBAL CHAR * +Channel_Key( CHANNEL *Chan ) +{ + assert( Chan != NULL ); + return Chan->key; +} /* Channel_Key */ + + +GLOBAL LONG +Channel_MaxUsers( CHANNEL *Chan ) +{ + assert( Chan != NULL ); + return Chan->maxusers; +} /* Channel_MaxUsers */ + + GLOBAL CHANNEL * Channel_First( VOID ) { @@ -629,6 +645,27 @@ Channel_SetModes( CHANNEL *Chan, CHAR *Modes ) } /* Channel_SetModes */ +GLOBAL VOID +Channel_SetKey( CHANNEL *Chan, CHAR *Key ) +{ + assert( Chan != NULL ); + assert( Key != NULL ); + + strncpy( Chan->key, Key, CLIENT_PASS_LEN - 1 ); + Chan->key[CLIENT_PASS_LEN - 1] = '\0'; + Log( LOG_DEBUG, "Channel %s: Key is now \"%s\".", Chan->name, Chan->key ); +} /* Channel_SetKey */ + + +GLOBAL VOID +Channel_SetMaxUsers( CHANNEL *Chan, LONG Count ) +{ + assert( Chan != NULL ); + + Chan->maxusers = Count; + Log( LOG_DEBUG, "Channel %s: Member limit is now %ld.", Chan->name, Chan->maxusers ); +} /* Channel_SetMaxUsers */ + GLOBAL BOOLEAN Channel_Write( CHANNEL *Chan, CLIENT *From, CLIENT *Client, CHAR *Text ) @@ -678,6 +715,8 @@ Channel_Create( CHAR *Name ) strcpy( c->modes, "" ); strcpy( c->topic, "" ); c->hash = Hash( c->name ); + strcpy( c->key, "" ); + c->maxusers = 0; /* Verketten */ c->next = My_Channels; diff --git a/src/ngircd/channel.h b/src/ngircd/channel.h
--- a/src/ngircd/channel.h
+++ b/src/ngircd/channel.h
@@ -8,7 +8,7 @@
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
*
- * $Id: channel.h,v 1.25 2002/12/14 13:21:56 alex Exp $
+ * $Id: channel.h,v 1.26 2002/12/16 23:05:24 alex Exp $
*
* Channel management (header)
*/
@@ -25,10 +25,12 @@
typedef struct _CHANNEL
{
struct _CHANNEL *next;
- CHAR name[CHANNEL_NAME_LEN]; /* Name des Channel */
- UINT32 hash; /* Hash ueber (kleingeschrieben) Namen */
- CHAR modes[CHANNEL_MODE_LEN]; /* Channel-Modes */
- CHAR topic[CHANNEL_TOPIC_LEN]; /* Topic des Channels */
+ CHAR name[CHANNEL_NAME_LEN]; /* Name of the channel */
+ UINT32 hash; /* Hash of the (lowecase!) name */
+ CHAR modes[CHANNEL_MODE_LEN]; /* Channel modes */
+ CHAR topic[CHANNEL_TOPIC_LEN]; /* Topic of the channel */
+ CHAR key[CLIENT_PASS_LEN]; /* Channel key ("password", mode "k" ) */
+ LONG maxusers; /* Maximum number of members (mode "l") */
} CHANNEL;
typedef struct _CLIENT2CHAN
@@ -66,9 +68,13 @@ GLOBAL INT Channel_PCount PARAMS(( VOID ));
GLOBAL CHAR *Channel_Name PARAMS(( CHANNEL *Chan ));
GLOBAL CHAR *Channel_Modes PARAMS(( CHANNEL *Chan ));
GLOBAL CHAR *Channel_Topic PARAMS(( CHANNEL *Chan ));
+GLOBAL CHAR *Channel_Key PARAMS(( CHANNEL *Chan ));
+GLOBAL LONG Channel_MaxUsers PARAMS(( CHANNEL *Chan ));
GLOBAL VOID Channel_SetTopic PARAMS(( CHANNEL *Chan, CHAR *Topic ));
GLOBAL VOID Channel_SetModes PARAMS(( CHANNEL *Chan, CHAR *Modes ));
+GLOBAL VOID Channel_SetKey PARAMS(( CHANNEL *Chan, CHAR *Key ));
+GLOBAL VOID Channel_SetMaxUsers PARAMS(( CHANNEL *Chan, LONG Count ));
GLOBAL CHANNEL *Channel_Search PARAMS(( CHAR *Name ));
-----END OF PAGE-----