From 4e957e3b845963aa6cc80ebedb96f131695a34ab Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Mon, 24 Mar 2008 23:22:05 -0400 Subject: [PATCH] src/proto-p10.c (AddUser): Avoid sending a duplicate irc_user() during bursts. --- src/proto-p10.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/proto-p10.c b/src/proto-p10.c index e4077ac..7711560 100644 --- a/src/proto-p10.c +++ b/src/proto-p10.c @@ -2088,13 +2088,19 @@ AddUser(struct server* uplink, const char *nick, const char *ident, const char * ignore_user = 0; if ((oldUser = GetUserH(nick))) { - if (IsLocal(oldUser) && (IsService(oldUser) || IsPersistent(oldUser))) { - /* The service should collide the new user off. */ + if (IsLocal(oldUser) + && (IsService(oldUser) || IsPersistent(oldUser)) + && !uplink->burst) { + /* The service should collide the new user off - but not + * if the new user is coming in during a burst. (During a + * burst, the bursting server will kill either our user -- + * triggering a ReintroduceUser() -- or its own.) + */ oldUser->timestamp = timestamp - 1; irc_user(oldUser); } if (oldUser->timestamp > timestamp) { - /* "Old" user is really newer; remove them */ + /* "Old" user is really newer; remove them. */ DelUser(oldUser, 0, 1, "Overruled by older nick"); } else { /* User being added is too new; do not add them to -- 2.20.1