|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"v2ray.com/core"
|
|
|
"v2ray.com/core/app/proxyman"
|
|
|
"v2ray.com/core/app/proxyman/mux"
|
|
|
+ "v2ray.com/core/common"
|
|
|
"v2ray.com/core/common/errors"
|
|
|
"v2ray.com/core/common/net"
|
|
|
"v2ray.com/core/proxy"
|
|
|
@@ -50,11 +51,16 @@ func NewHandler(ctx context.Context, config *core.OutboundHandlerConfig) (*Handl
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
- proxyHandler, err := proxy.CreateOutboundHandler(ctx, proxyConfig)
|
|
|
+ rawProxyHandler, err := common.CreateObject(ctx, proxyConfig)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
+ proxyHandler, ok := rawProxyHandler.(proxy.Outbound)
|
|
|
+ if !ok {
|
|
|
+ return nil, newError("not an outbound handler")
|
|
|
+ }
|
|
|
+
|
|
|
if h.senderSettings != nil && h.senderSettings.MultiplexSettings != nil && h.senderSettings.MultiplexSettings.Enabled {
|
|
|
config := h.senderSettings.MultiplexSettings
|
|
|
if config.Concurrency < 1 || config.Concurrency > 1024 {
|
|
|
@@ -134,5 +140,6 @@ func (h *Handler) Start() error {
|
|
|
|
|
|
// Close implements common.Runnable.
|
|
|
func (h *Handler) Close() error {
|
|
|
+ common.Close(h.mux)
|
|
|
return nil
|
|
|
}
|