diff --git a/src/client.c b/src/client.c index 8e895dfc..25b1676f 100644 --- a/src/client.c +++ b/src/client.c @@ -625,6 +625,10 @@ resv_nick_fnc(const char *mask, const char *reason, int temp_time) if(IsMe(client_p) || !IsPerson(client_p) || IsExemptResv(client_p)) continue; + /* Skip users that already have UID nicks. */ + if(IsDigit(client_p->name[0])) + continue; + if(match_esc(mask, client_p->name)) { nick = client_p->id; @@ -656,6 +660,8 @@ resv_nick_fnc(const char *mask, const char *reason, int temp_time) client_p->tsinfo = rb_current_time(); add_history(client_p, 1); + monitor_signoff(client_p); + invalidate_bancache_user(client_p); sendto_common_channels_local(client_p, NOCAPS, ":%s!%s@%s NICK :%s", @@ -667,6 +673,8 @@ resv_nick_fnc(const char *mask, const char *reason, int temp_time) rb_strlcpy(client_p->name, nick, sizeof(client_p->name)); add_to_client_hash(nick, client_p); + monitor_signon(client_p); + RB_DLINK_FOREACH_SAFE(ptr, next_ptr, client_p->on_allow_list.head) { target_p = ptr->data;