diff --git a/v2rayN/v2rayN/Handler/StatisticsV2ray.cs b/v2rayN/v2rayN/Handler/StatisticsV2ray.cs index 67385453ec..0be8a61728 100644 --- a/v2rayN/v2rayN/Handler/StatisticsV2ray.cs +++ b/v2rayN/v2rayN/Handler/StatisticsV2ray.cs @@ -87,6 +87,8 @@ private async void Run() private void ParseOutput(Google.Protobuf.Collections.RepeatedField source, out ServerSpeedItem server) { server = new(); + long aggregateProxyUp = 0; + long aggregateProxyDown = 0; try { foreach (Stat stat in source) @@ -101,15 +103,15 @@ private void ParseOutput(Google.Protobuf.Collections.RepeatedField source, name = nStr[1]; type = nStr[3]; - if (name == Global.ProxyTag) + if (name.StartsWith(Global.ProxyTag)) { if (type == "uplink") { - server.proxyUp = value; + aggregateProxyUp += value; } else if (type == "downlink") { - server.proxyDown = value; + aggregateProxyDown += value; } } else if (name == Global.DirectTag) @@ -124,6 +126,8 @@ private void ParseOutput(Google.Protobuf.Collections.RepeatedField source, } } } + server.proxyUp = aggregateProxyUp; + server.proxyDown = aggregateProxyDown; } catch {