commit - 7924fafb258cda33fa578acf5170c4ff8d85ee31
commit + 2e88dd72d1776695fa223cea65953ba4642992f4
blob - 386aaa2a1ad7f5166a31490746b822356e32f56c
blob + aafb8bc0d91ddc249f1bca19265cbefd880f645f
--- src/ngircd/channel.c
+++ src/ngircd/channel.c
#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 <assert.h>
assert( Chan != NULL );
return Chan->modes;
} /* 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 )
} /* 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 )
{
strcpy( c->modes, "" );
strcpy( c->topic, "" );
c->hash = Hash( c->name );
+ strcpy( c->key, "" );
+ c->maxusers = 0;
/* Verketten */
c->next = My_Channels;
blob - 18957d7b93d88378024d1d3f34a35df5bee917f2
blob + 9c0971034f099609686a56641e1fda0bbc36b95b
--- src/ngircd/channel.h
+++ src/ngircd/channel.h
* (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)
*/
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
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 ));