diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/conf.c | 4 | ||||
| -rw-r--r-- | src/ngircd/login.c | 14 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index 5ee552e6..120db216 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -2000,9 +2000,11 @@ Handle_CHANNEL(const char *File, int Line, char *Var, char *Arg) Config_Error_TooLong(File, Line, Var); return; } - if( strcasecmp( Var, "Autojoin" ) == 0 ) + if( strcasecmp( Var, "Autojoin" ) == 0 ) { /* Check autojoin */ chan->autojoin = Check_ArgIsTrue(Arg); + return; + } if( strcasecmp( Var, "Key" ) == 0 ) { /* Initial Channel Key (mode k) */ len = strlcpy(chan->key, Arg, sizeof(chan->key)); diff --git a/src/ngircd/login.c b/src/ngircd/login.c index 0dd0bd89..3412e337 100644 --- a/src/ngircd/login.c +++ b/src/ngircd/login.c @@ -31,6 +31,7 @@ #include "log.h" #include "messages.h" #include "ngircd.h" +#include "irc-channel.h" #include "irc-info.h" #include "irc-mode.h" #include "irc-write.h" @@ -201,24 +202,25 @@ Login_User_PostAuth(CLIENT *Client) } else IRC_SetPenalty(Client, 1); - /* Autojoin clients to the channels */ - Login_Autojoin(Client); + /* Autojoin clients to the channels */ + Login_Autojoin(Client); return CONNECTED; } /** * Autojoin clients to the channels set by administrator - * If autojoin is not set in Config or the channel is not available for search - do nothing * + * Do nothing if autojoin is not set in the configuration or the channel is not + * available (any more). **/ GLOBAL void Login_Autojoin(CLIENT *Client) { - /** make an autojoin to each channel that is good for it **/ REQUEST Req; const struct Conf_Channel *conf_chan; - size_t i, n, channel_count = array_length(&Conf_Channels, sizeof(*conf_chan)); + size_t i, channel_count = array_length(&Conf_Channels, sizeof(*conf_chan)); + conf_chan = array_start(&Conf_Channels); assert(channel_count == 0 || conf_chan != NULL); @@ -230,7 +232,7 @@ Login_Autojoin(CLIENT *Client) Req.prefix = Client_ID(Client_ThisServer()); Req.command = "JOIN"; Req.argc = 1; - Req.argv[0] = conf_chan->name; + Req.argv[0] = (char *)conf_chan->name; IRC_JOIN(Client, &Req); } } |