Example #1
0
        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;
        }
Example #2
0
 void OnCoreStateChangedHandler(object sender, EventArgs args)
 {
     if (v2rayCore.isRunning)
     {
         GetParent().InvokeEventOnCoreStart();
     }
     else
     {
         coreStates.SetStatPort(0);
         GetParent().InvokeEventOnCoreStop();
     }
 }