Skip to content

Commit 673fb6a

Browse files
authored
Merge pull request #77 from NodePassProject/main
Configuration and Initialization Enhancements, Error Handling Improvements
2 parents 5139e3c + 0fadf91 commit 673fb6a

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

cmd/nodepass/core.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,8 @@ func getTLSProtocol(parsedURL *url.URL, logger *logs.Logger) (string, *tls.Confi
145145

146146
// exit 退出程序并显示帮助信息
147147
func exit(err error) {
148-
errMsg1, errMsg2 := "", ""
149148
if err != nil {
150-
errStr := "FAILED: " + err.Error()
151-
if len(errStr) > 35 {
152-
errMsg1 = errStr[:35]
153-
if len(errStr) > 70 {
154-
errMsg2 = errStr[35:67] + "..."
155-
} else {
156-
errMsg2 = errStr[35:]
157-
}
158-
} else {
159-
errMsg1 = errStr
160-
}
149+
fmt.Fprintf(os.Stderr, "Error: %v [%d]\n", err, os.Getpid())
161150
}
162151
fmt.Printf(`
163152
╭─────────────────────────────────────╮
@@ -171,11 +160,8 @@ func exit(err error) {
171160
│ server://password@host/host?<query> │
172161
│ client://password@host/host?<query> │
173162
│ master://hostname:port/path?<query> │
174-
├─────────────────────────────────────┤
175-
│ %-35s │
176-
│ %-35s │
177163
╰─────────────────────────────────────╯
178164
179-
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), errMsg1, errMsg2)
165+
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH))
180166
os.Exit(1)
181167
}

internal/common.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type Common struct {
3232
logger *logs.Logger // 日志记录器
3333
tlsCode string // TLS模式代码
3434
tlsConfig *tls.Config // TLS配置
35+
coreType string // 核心类型
3536
runMode string // 运行模式
3637
dataFlow string // 数据流向
3738
tunnelKey string // 隧道密钥
@@ -291,6 +292,11 @@ func (c *Common) getAddress(parsedURL *url.URL) error {
291292
return nil
292293
}
293294

295+
// getCoreType 获取核心类型
296+
func (c *Common) getCoreType(parsedURL *url.URL) {
297+
c.coreType = parsedURL.Scheme
298+
}
299+
294300
// getTargetAddrsString 获取目标地址组的字符串表示
295301
func (c *Common) getTargetAddrsString() string {
296302
addrs := make([]string, len(c.targetTCPAddrs))
@@ -447,6 +453,7 @@ func (c *Common) initConfig(parsedURL *url.URL) error {
447453
return err
448454
}
449455

456+
c.getCoreType(parsedURL)
450457
c.getTunnelKey(parsedURL)
451458
c.getPoolCapacity(parsedURL)
452459
c.getRunMode(parsedURL)
@@ -519,7 +526,7 @@ func (c *Common) initTunnelListener() error {
519526
}
520527

521528
// 初始化隧道TCP监听器
522-
if c.tunnelTCPAddr != nil && c.disableTCP != "1" {
529+
if c.tunnelTCPAddr != nil && (c.disableTCP != "1" || c.coreType != "client") {
523530
tunnelListener, err := net.ListenTCP("tcp", c.tunnelTCPAddr)
524531
if err != nil {
525532
return fmt.Errorf("initTunnelListener: listenTCP failed: %w", err)
@@ -528,7 +535,7 @@ func (c *Common) initTunnelListener() error {
528535
}
529536

530537
// 初始化隧道UDP监听器
531-
if c.tunnelUDPAddr != nil && c.disableUDP != "1" {
538+
if c.tunnelUDPAddr != nil && (c.disableUDP != "1" || c.coreType != "client") {
532539
tunnelUDPConn, err := net.ListenUDP("udp", c.tunnelUDPAddr)
533540
if err != nil {
534541
return fmt.Errorf("initTunnelListener: listenUDP failed: %w", err)

0 commit comments

Comments
 (0)