mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2024-11-15 13:41:23 +08:00
463da578dd
* fixes #512: geo download failed when startup - 启动阶段,executor还未初始化tunnel,tcpIn==nil导致geo下载失败,阻塞在 tcpIn <- context * chore: handled by the upper layer * chore: remove useless parameters --------- Co-authored-by: Skyxim <noreply@skyxim.dev>
27 lines
475 B
Go
27 lines
475 B
Go
package inner
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
|
|
"github.com/Dreamacro/clash/adapter/inbound"
|
|
C "github.com/Dreamacro/clash/constant"
|
|
)
|
|
|
|
var tcpIn chan<- C.ConnContext
|
|
|
|
func New(in chan<- C.ConnContext) {
|
|
tcpIn = in
|
|
}
|
|
|
|
func HandleTcp(address string) (conn net.Conn, err error) {
|
|
if tcpIn == nil {
|
|
return nil, errors.New("tcp uninitialized")
|
|
}
|
|
// executor Parsed
|
|
conn1, conn2 := net.Pipe()
|
|
context := inbound.NewInner(conn2, address)
|
|
tcpIn <- context
|
|
return conn1, nil
|
|
}
|