mirror of
https://github.com/bolucat/Archive.git
synced 2025-12-24 13:28:37 +08:00
Update On Tue Nov 11 19:39:22 CET 2025
This commit is contained in:
@@ -145,19 +145,8 @@ func getTLSProtocol(parsedURL *url.URL, logger *logs.Logger) (string, *tls.Confi
|
||||
|
||||
// exit 退出程序并显示帮助信息
|
||||
func exit(err error) {
|
||||
errMsg1, errMsg2 := "", ""
|
||||
if err != nil {
|
||||
errStr := "FAILED: " + err.Error()
|
||||
if len(errStr) > 35 {
|
||||
errMsg1 = errStr[:35]
|
||||
if len(errStr) > 70 {
|
||||
errMsg2 = errStr[35:67] + "..."
|
||||
} else {
|
||||
errMsg2 = errStr[35:]
|
||||
}
|
||||
} else {
|
||||
errMsg1 = errStr
|
||||
}
|
||||
fmt.Fprintf(os.Stderr, "Error: %v [%d]\n", err, os.Getpid())
|
||||
}
|
||||
fmt.Printf(`
|
||||
╭─────────────────────────────────────╮
|
||||
@@ -171,11 +160,8 @@ func exit(err error) {
|
||||
│ server://password@host/host?<query> │
|
||||
│ client://password@host/host?<query> │
|
||||
│ master://hostname:port/path?<query> │
|
||||
├─────────────────────────────────────┤
|
||||
│ %-35s │
|
||||
│ %-35s │
|
||||
╰─────────────────────────────────────╯
|
||||
|
||||
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), errMsg1, errMsg2)
|
||||
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH))
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ type Common struct {
|
||||
logger *logs.Logger // 日志记录器
|
||||
tlsCode string // TLS模式代码
|
||||
tlsConfig *tls.Config // TLS配置
|
||||
coreType string // 核心类型
|
||||
runMode string // 运行模式
|
||||
dataFlow string // 数据流向
|
||||
tunnelKey string // 隧道密钥
|
||||
@@ -291,6 +292,11 @@ func (c *Common) getAddress(parsedURL *url.URL) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// getCoreType 获取核心类型
|
||||
func (c *Common) getCoreType(parsedURL *url.URL) {
|
||||
c.coreType = parsedURL.Scheme
|
||||
}
|
||||
|
||||
// getTargetAddrsString 获取目标地址组的字符串表示
|
||||
func (c *Common) getTargetAddrsString() string {
|
||||
addrs := make([]string, len(c.targetTCPAddrs))
|
||||
@@ -447,6 +453,7 @@ func (c *Common) initConfig(parsedURL *url.URL) error {
|
||||
return err
|
||||
}
|
||||
|
||||
c.getCoreType(parsedURL)
|
||||
c.getTunnelKey(parsedURL)
|
||||
c.getPoolCapacity(parsedURL)
|
||||
c.getRunMode(parsedURL)
|
||||
@@ -519,7 +526,7 @@ func (c *Common) initTunnelListener() error {
|
||||
}
|
||||
|
||||
// 初始化隧道TCP监听器
|
||||
if c.tunnelTCPAddr != nil && c.disableTCP != "1" {
|
||||
if c.tunnelTCPAddr != nil && (c.disableTCP != "1" || c.coreType != "client") {
|
||||
tunnelListener, err := net.ListenTCP("tcp", c.tunnelTCPAddr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("initTunnelListener: listenTCP failed: %w", err)
|
||||
@@ -528,7 +535,7 @@ func (c *Common) initTunnelListener() error {
|
||||
}
|
||||
|
||||
// 初始化隧道UDP监听器
|
||||
if c.tunnelUDPAddr != nil && c.disableUDP != "1" {
|
||||
if c.tunnelUDPAddr != nil && (c.disableUDP != "1" || c.coreType != "client") {
|
||||
tunnelUDPConn, err := net.ListenUDP("udp", c.tunnelUDPAddr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("initTunnelListener: listenUDP failed: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user