@@ -418,11 +418,11 @@ func (s *Service) CreateTunnel(req CreateTunnelRequest) (*Tunnel, error) {
418418 }
419419
420420 if req .Mode == "client" {
421- if req .Min >= 0 {
422- queryParams = append (queryParams , fmt .Sprintf ("min=%d" , req .Min ))
421+ if req .Min != nil {
422+ queryParams = append (queryParams , fmt .Sprintf ("min=%d" , * req .Min ))
423423 }
424- if req .Max >= 0 {
425- queryParams = append (queryParams , fmt .Sprintf ("max=%d" , req .Max ))
424+ if req .Max != nil {
425+ queryParams = append (queryParams , fmt .Sprintf ("max=%d" , * req .Max ))
426426 }
427427 }
428428
@@ -473,13 +473,13 @@ func (s *Service) CreateTunnel(req CreateTunnelRequest) (*Tunnel, error) {
473473 commandLine ,
474474 req .Password ,
475475 func () interface {} {
476- if req .Min >= 0 {
476+ if req .Min != nil {
477477 return req .Min
478478 }
479479 return nil
480480 }(),
481481 func () interface {} {
482- if req .Max >= 0 {
482+ if req .Max != nil {
483483 return req .Max
484484 }
485485 return nil
@@ -544,14 +544,14 @@ func (s *Service) CreateTunnel(req CreateTunnelRequest) (*Tunnel, error) {
544544 CommandLine : commandLine ,
545545 Password : req .Password ,
546546 Min : func () * int {
547- if req .Min >= 0 {
548- return & req .Min
547+ if req .Min != nil {
548+ return req .Min
549549 }
550550 return nil
551551 }(),
552552 Max : func () * int {
553- if req .Max >= 0 {
554- return & req .Max
553+ if req .Max != nil {
554+ return req .Max
555555 }
556556 return nil
557557 }(),
@@ -1220,11 +1220,11 @@ func (s *Service) CreateTunnelAndWait(req CreateTunnelRequest, timeout time.Dura
12201220 }
12211221 }
12221222 if req .Mode == "client" {
1223- if req .Min >= 0 {
1224- queryParams = append (queryParams , fmt .Sprintf ("min=%d" , req .Min ))
1223+ if req .Min != nil {
1224+ queryParams = append (queryParams , fmt .Sprintf ("min=%d" , * req .Min ))
12251225 }
1226- if req .Max >= 0 {
1227- queryParams = append (queryParams , fmt .Sprintf ("max=%d" , req .Max ))
1226+ if req .Max != nil {
1227+ queryParams = append (queryParams , fmt .Sprintf ("max=%d" , * req .Max ))
12281228 }
12291229 }
12301230 if len (queryParams ) > 0 {
@@ -1312,14 +1312,14 @@ func (s *Service) CreateTunnelAndWait(req CreateTunnelRequest, timeout time.Dura
13121312 CommandLine : commandLine ,
13131313 Password : req .Password ,
13141314 Min : func () * int {
1315- if req .Min >= 0 {
1316- return & req .Min
1315+ if req .Min != nil {
1316+ return req .Min
13171317 }
13181318 return nil
13191319 }(),
13201320 Max : func () * int {
1321- if req .Max >= 0 {
1322- return & req .Max
1321+ if req .Max != nil {
1322+ return req .Max
13231323 }
13241324 return nil
13251325 }(),
@@ -1358,13 +1358,13 @@ func (s *Service) CreateTunnelAndWait(req CreateTunnelRequest, timeout time.Dura
13581358 req .TLSMode , req .CertPath , req .KeyPath , req .LogLevel , commandLine ,
13591359 req .Password ,
13601360 func () interface {} {
1361- if req .Min >= 0 {
1361+ if req .Min != nil {
13621362 return req .Min
13631363 }
13641364 return nil
13651365 }(),
13661366 func () interface {} {
1367- if req .Max >= 0 {
1367+ if req .Max != nil {
13681368 return req .Max
13691369 }
13701370 return nil
@@ -1429,14 +1429,14 @@ func (s *Service) CreateTunnelAndWait(req CreateTunnelRequest, timeout time.Dura
14291429 CommandLine : commandLine ,
14301430 Password : req .Password ,
14311431 Min : func () * int {
1432- if req .Min >= 0 {
1433- return & req .Min
1432+ if req .Min != nil {
1433+ return req .Min
14341434 }
14351435 return nil
14361436 }(),
14371437 Max : func () * int {
1438- if req .Max >= 0 {
1439- return & req .Max
1438+ if req .Max != nil {
1439+ return req .Max
14401440 }
14411441 return nil
14421442 }(),
@@ -1682,8 +1682,26 @@ func (s *Service) QuickCreateTunnel(endpointID int64, rawURL string, name string
16821682 KeyPath : cfg .KeyPath ,
16831683 LogLevel : LogLevel (cfg .LogLevel ),
16841684 Password : cfg .Password ,
1685- Min : func () int { v , _ := strconv .Atoi (cfg .Min ); return v }(),
1686- Max : func () int { v , _ := strconv .Atoi (cfg .Max ); return v }(),
1685+ Min : func () * int {
1686+ if cfg .Min == "" {
1687+ return nil
1688+ }
1689+ v , err := strconv .Atoi (cfg .Min )
1690+ if err != nil {
1691+ return nil
1692+ }
1693+ return & v
1694+ }(),
1695+ Max : func () * int {
1696+ if cfg .Max == "" {
1697+ return nil
1698+ }
1699+ v , err := strconv .Atoi (cfg .Max )
1700+ if err != nil {
1701+ return nil
1702+ }
1703+ return & v
1704+ }(),
16871705 }
16881706 _ , err := s .CreateTunnelAndWait (req , 3 * time .Second )
16891707 return err
@@ -1709,16 +1727,16 @@ func (s *Service) QuickCreateTunnelAndWait(endpointID int64, rawURL string, name
17091727 }
17101728
17111729 // 正确处理min和max值,区分未设置和设置为0的情况
1712- var minVal , maxVal int
1730+ var minVal , maxVal * int
17131731 if cfg .Min != "" {
1714- minVal , _ = strconv .Atoi (cfg .Min )
1715- } else {
1716- minVal = - 1 // 使用-1表示未设置
1732+ if val , err : = strconv .Atoi (cfg .Min ); err == nil {
1733+ minVal = & val
1734+ }
17171735 }
17181736 if cfg .Max != "" {
1719- maxVal , _ = strconv .Atoi (cfg .Max )
1720- } else {
1721- maxVal = - 1 // 使用-1表示未设置
1737+ if val , err : = strconv .Atoi (cfg .Max ); err == nil {
1738+ maxVal = & val
1739+ }
17221740 }
17231741
17241742 req := CreateTunnelRequest {
0 commit comments