if (!(chptr = FindChannel(name))) {
if (((name[0] == '&') && !feature_bool(FEAT_LOCAL_CHANNELS))
- || strlen(name) >= IRCD_MIN(CHANNELLEN, feature_int(FEAT_CHANNELLEN))) {
+ || strlen(name) > IRCD_MIN(CHANNELLEN, feature_int(FEAT_CHANNELLEN))) {
send_reply(sptr, ERR_NOSUCHCHANNEL, name);
continue;
}
/* Is there some reason the user may not join? */
if (err) {
- send_reply(sptr, err, chptr->chname);
+ switch(err) {
+ case ERR_NEEDREGGEDNICK:
+ send_reply(sptr,
+ ERR_NEEDREGGEDNICK,
+ chptr->chname,
+ feature_str(FEAT_URLREG));
+ break;
+ default:
+ send_reply(sptr, err, chptr->chname);
+ break;
+ }
continue;
}