X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fconf.c;h=a3c9afecf097c88de0fc55e9b1ac44aebb9c25b0;hb=ea041b8838714707dca4500f63e2b40344b506c2;hp=fc12cd9ba826ed19903120433464b6d148a59f3d;hpb=0e4e22a7a671d1e8efbc44bffd80062191f75c38;p=ngircd-alex.git diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index fc12cd9b..a3c9afec 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -40,6 +40,7 @@ #include "ngircd.h" #include "conn.h" #include "client.h" +#include "channel.h" #include "defines.h" #include "log.h" #include "match.h" @@ -313,7 +314,8 @@ Conf_Test( void ) printf(" Modes = %s\n", predef_chan->modes); printf(" Key = %s\n", predef_chan->key); printf(" MaxUsers = %lu\n", predef_chan->maxusers); - printf(" Topic = %s\n\n", predef_chan->topic); + printf(" Topic = %s\n", predef_chan->topic); + printf(" KeyFile = %s\n\n", predef_chan->keyfile); } return (config_valid ? 0 : 1); @@ -385,7 +387,7 @@ Conf_GetServer( CONN_ID Idx ) GLOBAL bool -Conf_EnableServer( char *Name, UINT16 Port ) +Conf_EnableServer( const char *Name, UINT16 Port ) { /* Enable specified server and adjust port */ @@ -424,7 +426,7 @@ Conf_EnablePassiveServer(const char *Name) GLOBAL bool -Conf_DisableServer( char *Name ) +Conf_DisableServer( const char *Name ) { /* Enable specified server and adjust port */ @@ -445,7 +447,7 @@ Conf_DisableServer( char *Name ) GLOBAL bool -Conf_AddServer( char *Name, UINT16 Port, char *Host, char *MyPwd, char *PeerPwd ) +Conf_AddServer( const char *Name, UINT16 Port, const char *Host, const char *MyPwd, const char *PeerPwd ) { /* Add new server to configuration */ @@ -479,7 +481,7 @@ Conf_AddServer( char *Name, UINT16 Port, char *Host, char *MyPwd, char *PeerPwd * Check if the given nick name is an service */ GLOBAL bool -Conf_IsService(int ConfServer, char *Nick) +Conf_IsService(int ConfServer, const char *Nick) { return MatchCaseInsensitive(Conf_Server[ConfServer].svs_mask, Nick); } /* Conf_IsService */ @@ -1168,10 +1170,11 @@ Handle_Channelname(struct Conf_Channel *new_chan, const char *name) size_t size = sizeof(new_chan->name); char *dest = new_chan->name; - /* Channels names must begin with "&" or "#", if it is - * missing, add a '#'. This is only here for user convenience. - */ - if (*name && *name != '#' && *name != '&') { + if (!Channel_IsValidName(name)) { + /* + * maybe user forgot to add a '#'. + * This is only here for user convenience. + */ *dest = '#'; --size; ++dest; @@ -1232,6 +1235,13 @@ Handle_CHANNEL(int Line, char *Var, char *Arg) Config_Error_NaN(Line, Var); return; } + if (strcasecmp(Var, "KeyFile") == 0) { + /* channel keys */ + len = strlcpy(chan->keyfile, Arg, sizeof(chan->keyfile)); + if (len >= sizeof(chan->keyfile)) + Config_Error_TooLong(Line, Var); + return; + } Config_Error( LOG_ERR, "%s, line %d (section \"Channel\"): Unknown variable \"%s\"!", NGIRCd_ConfFile, Line, Var );