浏览代码

修复BUG:重复执行接口,端口启动异常的问题

TavenLi 3 年之前
父节点
当前提交
84e227b76b
共有 2 个文件被更改,包括 8 次插入1 次删除
  1. 1 1
      forward-server/Service/ForWardJob.go
  2. 7 0
      forward-server/Service/ForwardServer.go

+ 1 - 1
forward-server/Service/ForWardJob.go

@@ -28,7 +28,7 @@ func (_self *ForWardJob) StartJob(result chan Models.FuncResult) {
 	sourceAddr := fmt.Sprint(_self.Config.SrcAddr, ":", _self.Config.SrcPort)
 	destAddr := fmt.Sprint(_self.Config.DestAddr, ":", _self.Config.DestPort)
 
-	resultData := &Models.FuncResult{Code: 0, Msg: ""}
+	resultData := &Models.FuncResult{Code: 0, Msg: "success"}
 	var err error
 	if _self.IsUdpJob() {
 		//_self.PortListener, err = NetUtils.NewKCP(sourceAddr, Common.DefaultKcpSetting())

+ 7 - 0
forward-server/Service/ForwardServer.go

@@ -2,6 +2,7 @@ package Service
 
 import (
 	"fmt"
+	"forward-core/Constant"
 	"forward-core/Models"
 	"net"
 	"sync"
@@ -82,6 +83,12 @@ func (_self *ForWardServer) GetForwardJob(config *Models.ForwardConfig) *ForWard
 }
 
 func (_self *ForWardServer) OpenForward(config *Models.ForwardConfig, result chan Models.FuncResult) {
+	hasJob := _self.GetForwardJob(config)
+	if hasJob != nil && hasJob.Status == Constant.RunStatus_Running {
+		resultData := &Models.FuncResult{Code: 1, Msg: "该端口转发正在执行中"}
+		result <- *resultData
+		return
+	}
 
 	forWardJob := new(ForWardJob)
 	forWardJob.ClientMap = make(map[string]*ForWardClient, 500)

粤ICP备19079148号