Skip to content

Commit 1fc4077

Browse files
authored
Merge pull request #72 from NodePassProject/main
Improve control loops, context handling, and periodic task management for stronger reliability
2 parents d1d8290 + c90f983 commit 1fc4077

File tree

5 files changed

+184
-176
lines changed

5 files changed

+184
-176
lines changed

docs/en/usage.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ nodepass "client://server.example.com:10101/192.168.1.100:8080?log=debug&min=128
163163

164164
# Resource-constrained configuration with forced mode
165165
nodepass "client://server.example.com:10101/127.0.0.1:8080?mode=2&min=16&log=info"
166+
167+
# Resource-constrained configuration - Small connection pool
168+
nodepass "client://server.example.com:10101/127.0.0.1:8080?min=16&log=info"
166169
```
167170

168171
### Master Mode (API)

internal/client.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ func (c *Client) Run() {
7272

7373
// 启动客户端服务并处理重启
7474
go func() {
75-
for {
76-
if ctx.Err() != nil {
77-
return
78-
}
75+
for ctx.Err() == nil {
7976
// 启动客户端
8077
if err := c.start(); err != nil && err != io.EOF {
8178
c.logger.Error("Client error: %v", err)
@@ -113,10 +110,11 @@ func (c *Client) start() error {
113110
// 运行模式判断
114111
switch c.runMode {
115112
case "1": // 单端模式
116-
if err := c.initTunnelListener(); err != nil {
113+
if err := c.initTunnelListener(); err == nil {
114+
return c.singleStart()
115+
} else {
117116
return fmt.Errorf("start: initTunnelListener failed: %w", err)
118117
}
119-
return c.singleStart()
120118
case "2": // 双端模式
121119
return c.commonStart()
122120
default: // 自动判断

0 commit comments

Comments
 (0)