void InjectStatisticsConfigOnDemand(ref JObject config) { if (!setting.isEnableStatistics) { return; } var freePort = VgcApis.Misc.Utils.GetFreeTcpPort(); if (freePort <= 0) { return; } states.SetStatPort(freePort); var result = cache.tpl.LoadTemplate("statsApiV4Inb") as JObject; result["inbounds"][0]["port"] = freePort; Misc.Utils.CombineConfigWithRoutingInFront(ref result, config); result["inbounds"][0]["tag"] = "agentin"; var statsTpl = cache.tpl.LoadTemplate("statsApiV4Tpl") as JObject; Misc.Utils.CombineConfigWithRoutingInFront(ref result, statsTpl); config = result; }
void OnCoreStateChangedHandler(object sender, EventArgs args) { if (v2rayCore.isRunning) { GetParent().InvokeEventOnCoreStart(); } else { coreStates.SetStatPort(0); GetParent().InvokeEventOnCoreStop(); } }