summaryrefslogtreecommitdiff
path: root/modules/protocol/bahamut.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/bahamut.cpp')
-rw-r--r--modules/protocol/bahamut.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp
index d65c24d65..4b6feae2d 100644
--- a/modules/protocol/bahamut.cpp
+++ b/modules/protocol/bahamut.cpp
@@ -379,14 +379,13 @@ struct IRCDMessageNick : IRCDMessage
return;
}
- User *user = new User(params[0], params[4], params[5], "", params[8], s, params[9], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3]);
- try
- {
- NickAlias *na;
- if (user->signon == convertTo<time_t>(params[7]) && (na = NickAlias::Find(user->nick)))
- user->Login(na->nc);
- }
- catch (const ConvertException &) { }
+ NickAlias *na = NULL;
+ time_t signon = params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0,
+ stamp = params[7].is_pos_number_only() ? convertTo<time_t>(params[7]) : 0;
+ if (signon && signon == stamp)
+ na = NickAlias::Find(params[0]);
+
+ new User(params[0], params[4], params[5], "", params[8], s, params[9], signon, params[3], "", na ? *na->nc : NULL);
}
else
source.GetUser()->ChangeNick(params[0]);