+ if(oper_p->swhois)
+ user_metadata_add(source_p, "SWHOIS", oper_p->swhois, 1);
+
+ if(oper_p->operstring)
+ user_metadata_add(source_p, "OPERSTRING", oper_p->operstring, 1);
+
+ if(oper_p->vhost || !EmptyString(ConfigFileEntry.default_operhost))
+ {
+ if(oper_p->vhost)
+ change_nick_user_host(source_p, source_p->name, source_p->username, oper_p->vhost, 0, "Changing host");
+ else
+ change_nick_user_host(source_p, source_p->name, source_p->username, ConfigFileEntry.default_operhost, 0, "Changing host");
+
+ sendto_one_numeric(source_p, RPL_HOSTHIDDEN, "%s :is now your hidden host (set by %s)", source_p->host, source_p->servptr->name);
+
+ sendto_server(NULL, NULL,
+ CAP_EUID | CAP_TS6, NOCAPS, ":%s CHGHOST %s :%s",
+ use_id(&me), use_id(source_p), source_p->host);
+ sendto_server(NULL, NULL,
+ CAP_TS6, CAP_EUID, ":%s ENCAP * CHGHOST %s :%s",
+ use_id(&me), use_id(source_p), source_p->host);
+
+ if (!IsDynSpoof(source_p))
+ SetDynSpoof(source_p);
+ }
+