diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.c | 6 | ||||
-rw-r--r-- | src/nickserv.c | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/channels.c b/src/channels.c index bd7477da8..d80a62f4a 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1240,9 +1240,6 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) if ((ci->flags & CI_VERBOTEN) || (*(c->name) == '+')) return; - if ((ci->flags & CI_SECURE) && !nick_identified(user)) - return; - status = chan_get_user_status(c, user); if (debug >= 2) @@ -1268,8 +1265,9 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) /* We check if every mode they have is legally acquired here, and remove * the modes that they're not allowed to have. But only if SECUREOPS is * on, because else every mode is legal. -GD + * Unless the channel has just been created. -heinz */ - if (ci->flags & CI_SECUREOPS) { + if ((ci->flags & CI_SECUREOPS) || c->usercount == 1) { if (ircd->owner && (status & CUS_OWNER) && !(((ci->flags & CI_SECUREFOUNDER) && is_real_founder(user, ci)) diff --git a/src/nickserv.c b/src/nickserv.c index 586362c9e..76dfcf21f 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -1763,8 +1763,8 @@ static void collide(NickAlias * na, int from_timeout) if (ircd->svsnick) { /* We need to make sure the guestnick is free -- heinz */ do { - snprintf(guestnick, sizeof(guestnick), "%s%d%d", - NSGuestNickPrefix, getrandom32(), getrandom32()); + snprintf(guestnick, sizeof(guestnick), "%s%d", + NSGuestNickPrefix, getrandom16()); } while (finduser(guestnick)); notice_lang(s_NickServ, na->u, FORCENICKCHANGE_CHANGING, guestnick); |