diff options
Diffstat (limited to 'src/core/ns_update.c')
-rw-r--r-- | src/core/ns_update.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/core/ns_update.c b/src/core/ns_update.c index 9eca8daad..bd452bc88 100644 --- a/src/core/ns_update.c +++ b/src/core/ns_update.c @@ -26,20 +26,22 @@ class CommandNSUpdate : public Command CommandReturn Process(User *u, std::vector<std::string> ¶ms) { - if (!nick_identified(u)) + NickAlias *na = findnick(u->nick); + + if (!na) { - notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } if (NSModeOnID) do_setmodes(u); check_memos(u); - if (u->na->last_realname) - delete [] u->na->last_realname; - u->na->last_realname = sstrdup(u->realname); - u->na->status |= NS_IDENTIFIED; - u->na->last_seen = time(NULL); + + if (na->last_realname) + delete [] na->last_realname; + na->last_realname = sstrdup(u->realname); + na->status |= NS_IDENTIFIED; + na->last_seen = time(NULL); if (ircd->vhost) do_on_id(u); notice_lang(s_NickServ, u, NICK_UPDATE_SUCCESS, s_NickServ); |