+ {
+ if (dest->IsModeSet('x'))
+ {
+ /* User is removing the mode, so just restore their real host
+ * and make it match the displayed one.
+ */
+ dest->ChangeDisplayedHost(dest->host);
+ dest->SetMode('x',false);
+ return MODEACTION_ALLOW;
+ }
+ }
+
+ return MODEACTION_DENY;
+ }
+
+ void DoRehash()
+ {
+ ConfigReader Conf(ServerInstance);
+ key1 = key2 = key3 = key4 = 0;
+ key1 = Conf.ReadInteger("cloak","key1",0,false);
+ key2 = Conf.ReadInteger("cloak","key2",0,false);
+ key3 = Conf.ReadInteger("cloak","key3",0,false);
+ key4 = Conf.ReadInteger("cloak","key4",0,false);
+
+ prefix = Conf.ReadValue("cloak","prefix",0);
+ if (prefix == "")
+ {
+ prefix = ServerInstance->Config->Network;
+ }
+ if (!key1 && !key2 && !key3 && !key4)