return HUNTED_NOSUCH;
}
- assert(!IsServer(from));
+ /* assert(!IsServer(from)); SETTIME to particular destinations permitted */
parv[server] = (char *) acptr; /* HACK! HACK! HACK! ARGH! */
* If, after setting the flags, the user has both HiddenHost and Account
* set, its hostmask is changed.
*/
-#define FLAGS_HOST_HIDDEN (FLAGS_ACCOUNT|FLAGS_HIDDENHOST)
int
hide_hostmask(struct Client *cptr, unsigned int flag)
{
ircd_snprintf(0, cli_user(cptr)->host, HOSTLEN, "%s.%s",
cli_user(cptr)->account, feature_str(FEAT_HIDDEN_HOST));
+ /* ok, the client is now fully hidden, so let them know -- hikari */
+ if (MyConnect(cptr))
+ send_reply(cptr, RPL_HOSTHIDDEN, cli_user(cptr)->account,
+ feature_str(FEAT_HIDDEN_HOST));
+
/*
* Go through all channels the client was on, rejoin him
* and set the modes, if any
}
if (MyConnect(sptr))
{
- if (FlagHas(&setflags, FLAG_OPER) || FlagHas(&setflags, FLAG_LOCOP))
+ if (FlagHas(&setflags, FLAG_OPER) || FlagHas(&setflags, FLAG_LOCOP) &&
+ !IsAnOper(sptr))
det_confs_butmask(sptr, CONF_CLIENT & ~CONF_OPS);
if (SendServNotice(sptr))
{
/* user now oper */
++UserStats.opers;
- client_set_privs(sptr, NULL);
+ client_set_privs(sptr, NULL); /* may set propagate privilege */
}
/* remember propagate privilege setting */
if (HasPriv(sptr, PRIV_PROPAGATE))