- if(IsFakeHost(cptr)) ircd_strncpy(buf, cli_user(cptr)->fakehost, HOSTLEN);
- else if (IsAccount(cptr)) ircd_snprintf(0, buf, HOSTLEN, "%s.%s", cli_user(cptr)->account, feature_str(FEAT_HIDDEN_HOST));
- else return 0;
- if(strncmp(buf, cli_user(cptr)->host, HOSTLEN) == 0) return 0;
+ unsigned int reregister = 0;
+ if(IsFakeHost(cptr) || IsAccount(cptr)) {
+ if(IsFakeHost(cptr))
+ ircd_strncpy(buf, cli_user(cptr)->fakehost, HOSTLEN);
+ else
+ ircd_snprintf(0, buf, HOSTLEN, "%s.%s", cli_user(cptr)->account, feature_str(FEAT_HIDDEN_HOST));
+ if(strncmp(buf, cli_user(cptr)->host, HOSTLEN))
+ reregister |= HIDE_HOSTMASK_FLAG_FAKEHOST;
+ }
+ if(IsFakeIdent(cptr)) {
+ if(strncmp(cli_user(cptr)->fakeuser, cli_user(cptr)->username, USERLEN))
+ reregister |= HIDE_HOSTMASK_FLAG_FAKEIDENT;
+ }
+
+ if (!reregister) return 0;