mirror of https://github.com/v2ray/v2ray-core
				
				
				
			proto option for C# namespace
							parent
							
								
									e66a787782
								
							
						
					
					
						commit
						eb782436b3
					
				| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.app.dispatcher;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.App.Dispatcher";
 | 
			
		||||
option go_package = "dispatcher";
 | 
			
		||||
option java_package = "com.v2ray.core.app.dispatcher";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.app.dns;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.App.Dns";
 | 
			
		||||
option go_package = "dns";
 | 
			
		||||
option java_package = "com.v2ray.core.app.dns";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.app.router;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.App.Router";
 | 
			
		||||
option go_package = "router";
 | 
			
		||||
option java_package = "com.v2ray.core.app.router";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.app.web;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.App.Web";
 | 
			
		||||
option go_package = "web";
 | 
			
		||||
option java_package = "com.v2ray.core.app.web";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.net;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Net";
 | 
			
		||||
option go_package = "net";
 | 
			
		||||
option java_package = "com.v2ray.core.common.net";
 | 
			
		||||
option java_outer_classname = "AddressProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.net;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Net";
 | 
			
		||||
option go_package = "net";
 | 
			
		||||
option java_package = "com.v2ray.core.common.net";
 | 
			
		||||
option java_outer_classname = "DestinationProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.net;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Net";
 | 
			
		||||
option go_package = "net";
 | 
			
		||||
option java_package = "com.v2ray.core.common.net";
 | 
			
		||||
option java_outer_classname = "NetworkProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.net;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Net";
 | 
			
		||||
option go_package = "net";
 | 
			
		||||
option java_package = "com.v2ray.core.common.net";
 | 
			
		||||
option java_outer_classname = "PortProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.protocol;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Protocol";
 | 
			
		||||
option go_package = "protocol";
 | 
			
		||||
option java_package = "com.v2ray.core.common.protocol";
 | 
			
		||||
option java_outer_classname = "HeadersProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.protocol;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Protocol";
 | 
			
		||||
option go_package = "protocol";
 | 
			
		||||
option java_package = "com.v2ray.core.common.protocol";
 | 
			
		||||
option java_outer_classname = "ServerSpecProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.protocol;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Protocol";
 | 
			
		||||
option go_package = "protocol";
 | 
			
		||||
option java_package = "com.v2ray.core.common.protocol";
 | 
			
		||||
option java_outer_classname = "UserProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.common.serial;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Common.Serial";
 | 
			
		||||
option go_package = "serial";
 | 
			
		||||
option java_package = "com.v2ray.core.common.serial";
 | 
			
		||||
option java_outer_classname = "TypedMessageProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core";
 | 
			
		||||
option go_package = "core";
 | 
			
		||||
option java_package = "com.v2ray.core";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.blackhole;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Blackhole";
 | 
			
		||||
option go_package = "blackhole";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.blackhole";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.dokodemo;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Dokodemo";
 | 
			
		||||
option go_package = "dokodemo";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.dokodemo";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.freedom;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Freedom";
 | 
			
		||||
option go_package = "freedom";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.freedom";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.http;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Http";
 | 
			
		||||
option go_package = "http";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.http";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.shadowsocks;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Shadowsocks";
 | 
			
		||||
option go_package = "shadowsocks";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.shadowsocks";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.socks;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Socks";
 | 
			
		||||
option go_package = "socks";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.socks";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.vmess;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Vmess";
 | 
			
		||||
option go_package = "vmess";
 | 
			
		||||
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.vmess";
 | 
			
		||||
option java_outer_classname = "AccountProto";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.vmess.inbound;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Vmess.Inbound";
 | 
			
		||||
option go_package = "inbound";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.vmess.inbound";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.proxy.vmess.outbound;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Proxy.Vmess.Outbound";
 | 
			
		||||
option go_package = "outbound";
 | 
			
		||||
option java_package = "com.v2ray.core.proxy.vmess.outbound";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport";
 | 
			
		||||
option go_package = "transport";
 | 
			
		||||
option java_package = "com.v2ray.core.transport";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet";
 | 
			
		||||
option go_package = "internet";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.headers.http;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Headers.Http";
 | 
			
		||||
option go_package = "http";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.headers.http";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.headers.noop;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Headers.Noop";
 | 
			
		||||
option go_package = "noop";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.headers.noop";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.headers.srtp;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Headers.Srtp";
 | 
			
		||||
option go_package = "srtp";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.headers.srtp";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.headers.utp;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Headers.Utp";
 | 
			
		||||
option go_package = "utp";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.headers.utp";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.kcp;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Kcp";
 | 
			
		||||
option go_package = "kcp";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.kcp";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,155 @@
 | 
			
		|||
package kcp
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"sync"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	defaultRTT = 100
 | 
			
		||||
	queueSize  = 10
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Queue struct {
 | 
			
		||||
	value  [queueSize]uint32
 | 
			
		||||
	start  uint32
 | 
			
		||||
	length uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Queue) Push(value uint32) {
 | 
			
		||||
	if v.length < queueSize {
 | 
			
		||||
		v.value[v.length] = value
 | 
			
		||||
		v.length++
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	v.value[v.start] = value
 | 
			
		||||
	v.start++
 | 
			
		||||
	if v.start == queueSize {
 | 
			
		||||
		v.start = 0
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Queue) Max() uint32 {
 | 
			
		||||
	max := v.value[0]
 | 
			
		||||
	for i := 1; i < queueSize; i++ {
 | 
			
		||||
		if v.value[i] > max {
 | 
			
		||||
			max = v.value[i]
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return max
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Queue) Min() uint32 {
 | 
			
		||||
	max := v.value[0]
 | 
			
		||||
	for i := 1; i < queueSize; i++ {
 | 
			
		||||
		if v.value[i] < max {
 | 
			
		||||
			max = v.value[i]
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return max
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CongestionState byte
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	CongestionStateRTTProbe CongestionState = iota
 | 
			
		||||
	CongestionStateBandwidthProbe
 | 
			
		||||
	CongestionStateTransfer
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Congestion struct {
 | 
			
		||||
	sync.RWMutex
 | 
			
		||||
 | 
			
		||||
	state      CongestionState
 | 
			
		||||
	stateSince uint32
 | 
			
		||||
	limit      uint32 // bytes per 1000 seconds
 | 
			
		||||
 | 
			
		||||
	rtt           uint32 // millisec
 | 
			
		||||
	rttHistory    Queue
 | 
			
		||||
	rttUpdateTime uint32
 | 
			
		||||
 | 
			
		||||
	initialThroughput uint32 // bytes per 1000 seconds
 | 
			
		||||
 | 
			
		||||
	cycleStartTime      uint32
 | 
			
		||||
	cycleBytesConfirmed uint32
 | 
			
		||||
	cycleBytesSent      uint32
 | 
			
		||||
	cycleBytesLimit     uint32
 | 
			
		||||
 | 
			
		||||
	cycle                   uint32
 | 
			
		||||
	bestCycleBytesConfirmed uint32
 | 
			
		||||
	bestCycleBytesSent      uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) SetState(current uint32, state CongestionState) {
 | 
			
		||||
	v.state = state
 | 
			
		||||
	v.stateSince = current
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) Update(current uint32) {
 | 
			
		||||
	switch v.state {
 | 
			
		||||
	case CongestionStateRTTProbe:
 | 
			
		||||
		if v.rtt > 0 {
 | 
			
		||||
			v.SetState(current, CongestionStateBandwidthProbe)
 | 
			
		||||
			v.cycleStartTime = current
 | 
			
		||||
			v.cycleBytesConfirmed = 0
 | 
			
		||||
			v.cycleBytesSent = 0
 | 
			
		||||
			v.cycleBytesLimit = v.initialThroughput * v.rtt / 1000 / 1000
 | 
			
		||||
		}
 | 
			
		||||
	case CongestionStateBandwidthProbe:
 | 
			
		||||
		if current-v.cycleStartTime >= v.rtt {
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) AddBytesConfirmed(current uint32, bytesConfirmed uint32) {
 | 
			
		||||
	v.Lock()
 | 
			
		||||
	defer v.Unlock()
 | 
			
		||||
 | 
			
		||||
	v.cycleBytesConfirmed += bytesConfirmed
 | 
			
		||||
	v.Update(current)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) UpdateRTT(current uint32, rtt uint32) {
 | 
			
		||||
	v.Lock()
 | 
			
		||||
	defer v.Unlock()
 | 
			
		||||
 | 
			
		||||
	if v.state == CongestionStateRTTProbe || rtt < v.rtt {
 | 
			
		||||
		v.rtt = rtt
 | 
			
		||||
		v.rttUpdateTime = current
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	v.Update(current)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) GetBytesLimit() uint32 {
 | 
			
		||||
	v.RLock()
 | 
			
		||||
	defer v.RUnlock()
 | 
			
		||||
 | 
			
		||||
	if v.state == CongestionStateRTTProbe {
 | 
			
		||||
		return v.initialThroughput/1000/(1000/defaultRTT) - v.cycleBytesSent
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return v.cycleBytesLimit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) RoundTripTime() uint32 {
 | 
			
		||||
	v.RLock()
 | 
			
		||||
	defer v.RUnlock()
 | 
			
		||||
 | 
			
		||||
	if v.state == CongestionStateRTTProbe {
 | 
			
		||||
		return defaultRTT
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return v.rtt
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Congestion) Timeout() uint32 {
 | 
			
		||||
	v.RLock()
 | 
			
		||||
	defer v.RUnlock()
 | 
			
		||||
 | 
			
		||||
	if v.state == CongestionStateRTTProbe {
 | 
			
		||||
		return defaultRTT * 3 / 2
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return v.rtt * 3 / 2
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.tcp;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Tcp";
 | 
			
		||||
option go_package = "tcp";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.tcp";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.tls;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Tls";
 | 
			
		||||
option go_package = "tls";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.tls";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
syntax = "proto3";
 | 
			
		||||
 | 
			
		||||
package v2ray.core.transport.internet.ws;
 | 
			
		||||
option csharp_namespace = "V2Ray.Core.Transport.Internet.Ws";
 | 
			
		||||
option go_package = "ws";
 | 
			
		||||
option java_package = "com.v2ray.core.transport.internet.ws";
 | 
			
		||||
option java_outer_classname = "ConfigProto";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue