|
|
@@ -29,6 +29,7 @@ type Handler struct {
|
|
|
serverList *protocol.ServerList
|
|
|
serverPicker protocol.ServerPicker
|
|
|
policyManager policy.Manager
|
|
|
+ cone bool
|
|
|
}
|
|
|
|
|
|
// New creates a new VMess outbound handler.
|
|
|
@@ -47,6 +48,7 @@ func New(ctx context.Context, config *Config) (*Handler, error) {
|
|
|
serverList: serverList,
|
|
|
serverPicker: protocol.NewRoundRobinServerPicker(serverList),
|
|
|
policyManager: v.GetFeature(policy.ManagerType()).(policy.Manager),
|
|
|
+ cone: ctx.Value("cone").(bool),
|
|
|
}
|
|
|
|
|
|
return handler, nil
|
|
|
@@ -123,7 +125,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
|
|
|
ctx, cancel := context.WithCancel(ctx)
|
|
|
timer := signal.CancelAfterInactivity(ctx, cancel, sessionPolicy.Timeouts.ConnectionIdle)
|
|
|
|
|
|
- if request.Command == protocol.RequestCommandUDP {
|
|
|
+ if request.Command == protocol.RequestCommandUDP && h.cone {
|
|
|
request.Command = protocol.RequestCommandMux
|
|
|
request.Address = net.DomainAddress("v1.mux.cool")
|
|
|
request.Port = net.Port(666)
|