|
@@ -73,6 +73,10 @@ func (h *DynamicInboundHandler) refresh() error {
|
|
|
|
|
|
|
|
h.worker2Recycle, h.worker = h.worker, h.worker2Recycle[:0]
|
|
h.worker2Recycle, h.worker = h.worker, h.worker2Recycle[:0]
|
|
|
|
|
|
|
|
|
|
+ address := h.receiverConfig.Listen.AsAddress()
|
|
|
|
|
+ if address == nil {
|
|
|
|
|
+ address = v2net.AnyIP
|
|
|
|
|
+ }
|
|
|
for i := uint32(0); i < h.receiverConfig.AllocationStrategy.GetConcurrencyValue(); i++ {
|
|
for i := uint32(0); i < h.receiverConfig.AllocationStrategy.GetConcurrencyValue(); i++ {
|
|
|
port := h.allocatePort()
|
|
port := h.allocatePort()
|
|
|
p, err := proxy.CreateInboundHandler(h.ctx, h.proxyConfig)
|
|
p, err := proxy.CreateInboundHandler(h.ctx, h.proxyConfig)
|
|
@@ -84,7 +88,7 @@ func (h *DynamicInboundHandler) refresh() error {
|
|
|
if nl.HasNetwork(v2net.Network_TCP) {
|
|
if nl.HasNetwork(v2net.Network_TCP) {
|
|
|
worker := &tcpWorker{
|
|
worker := &tcpWorker{
|
|
|
tag: h.tag,
|
|
tag: h.tag,
|
|
|
- address: h.receiverConfig.Listen.AsAddress(),
|
|
|
|
|
|
|
+ address: address,
|
|
|
port: port,
|
|
port: port,
|
|
|
proxy: p,
|
|
proxy: p,
|
|
|
stream: h.receiverConfig.StreamSettings,
|
|
stream: h.receiverConfig.StreamSettings,
|
|
@@ -101,7 +105,7 @@ func (h *DynamicInboundHandler) refresh() error {
|
|
|
worker := &udpWorker{
|
|
worker := &udpWorker{
|
|
|
tag: h.tag,
|
|
tag: h.tag,
|
|
|
proxy: p,
|
|
proxy: p,
|
|
|
- address: h.receiverConfig.Listen.AsAddress(),
|
|
|
|
|
|
|
+ address: address,
|
|
|
port: port,
|
|
port: port,
|
|
|
recvOrigDest: h.receiverConfig.ReceiveOriginalDestination,
|
|
recvOrigDest: h.receiverConfig.ReceiveOriginalDestination,
|
|
|
}
|
|
}
|