X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fm_join.c;h=9e2298331ff1a7957c5f42a1529f89393cb220c1;hp=66c4379650c267d1f448eb66f9d49e1c835db6c5;hb=bb5d6a24f02155e2252474809cd5e7161fa29b93;hpb=21592a40b5608357580412667ce0c31b8a1ebc5f diff --git a/ircd/m_join.c b/ircd/m_join.c index 66c4379..9e22983 100644 --- a/ircd/m_join.c +++ b/ircd/m_join.c @@ -216,6 +216,8 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) err = ERR_CHANNELISFULL; else if ((chptr->mode.mode & MODE_REGONLY) && !IsAccount(sptr)) err = ERR_NEEDREGGEDNICK; + else if ((chptr->mode.mode & MODE_SSLCHAN) && !IsSSL(sptr)) + err = ERR_SSLCHANNEL; else if (find_ban(sptr, chptr->banlist)) err = ERR_BANNEDFROMCHAN; else if (*chptr->mode.key && (!key || strcmp(key, chptr->mode.key))) @@ -252,6 +254,7 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) case ERR_BANNEDFROMCHAN: err = 'b'; break; case ERR_BADCHANNELKEY: err = 'k'; break; case ERR_NEEDREGGEDNICK: err = 'r'; break; + case ERR_SSLCHANNEL: err = 'S'; break; default: err = '?'; break; } /* send accountability notice */ @@ -303,6 +306,8 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) err2 = ERR_CHANNELISFULL; else if ((chptrb->mode.mode & MODE_REGONLY) && !IsAccount(sptr)) err2 = ERR_NEEDREGGEDNICK; + else if ((chptrb->mode.mode & MODE_SSLCHAN) && !IsSSL(sptr)) + err2 = ERR_SSLCHANNEL; else if (find_ban(sptr, chptrb->banlist)) err2 = ERR_BANNEDFROMCHAN; else if (*chptrb->mode.key && (!key || strcmp(key, chptrb->mode.key))) @@ -331,6 +336,8 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) error = feature_str(FEAT_ERR_BADCHANNELKEY); else if (err == ERR_NEEDREGGEDNICK) error = feature_str(FEAT_ERR_NEEDREGGEDNICK); + else if (err == ERR_SSLCHANNEL) + error = feature_str(FEAT_ERR_SSLCHANNEL); else if (err == ERR_JOINACCESS) error = feature_str(FEAT_ERR_JOINACCESS);