tavenli 5 rokov pred
rodič
commit
87bd7b686a

+ 6 - 8
forward-server/Controllers/ForwardCtrl.go

@@ -7,6 +7,7 @@ import (
 	"forward-core/Utils"
 	"forward-server/Controllers/BaseCtrl"
 	"forward-server/Service"
+
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/logs"
 )
@@ -15,7 +16,6 @@ type ForwardCtrl struct {
 	BaseCtrl.ConsoleCtrl
 }
 
-
 // @router /u/ForwardList [get]
 func (c *ForwardCtrl) ForwardList() {
 
@@ -41,7 +41,7 @@ func (c *ForwardCtrl) ForwardListJson() {
 		//entity.Status = Utils.If(forwardJob!=nil, int(forwardJob.Status), 0).(int)
 		if forwardJob != nil {
 			entity.Status = int(forwardJob.Status)
-		}else{
+		} else {
 			entity.Status = 0
 		}
 	}
@@ -87,7 +87,7 @@ func (c *ForwardCtrl) DelForward() {
 		//检查是否正在转发中
 		entity := Service.SysDataS.GetPortForwardById(_id)
 		forwardJob := Service.SysDataS.GetForwardJob(entity)
-		if forwardJob!=nil && forwardJob.Status == Constant.RunStatus_Running {
+		if forwardJob != nil && forwardJob.Status == Constant.RunStatus_Running {
 			c.Data["json"] = Models.FuncResult{Code: 1, Msg: fmt.Sprint("[", entity.Name, "] 正在转发中,不能删除")}
 			c.ServeJSON()
 			return
@@ -122,6 +122,7 @@ func (c *ForwardCtrl) SaveForward() {
 	targetPort, _ := c.GetInt("targetPort")
 	others := c.GetString("others", "")
 	fType, _ := c.GetInt("fType")
+	status, _ := c.GetInt("status")
 
 	if Utils.IsEmpty(name) {
 		//
@@ -164,7 +165,7 @@ func (c *ForwardCtrl) SaveForward() {
 	if id > 0 {
 		entity := Service.SysDataS.GetPortForwardById(id)
 		forwardJob := Service.SysDataS.GetForwardJob(entity)
-		if forwardJob!=nil && forwardJob.Status == Constant.RunStatus_Running {
+		if forwardJob != nil && forwardJob.Status == Constant.RunStatus_Running {
 			//正在转发中,修改前先关闭
 			c.Data["json"] = Models.FuncResult{Code: 1, Msg: fmt.Sprint("[", entity.Name, "] 正在转发中,不能修改")}
 			c.ServeJSON()
@@ -184,6 +185,7 @@ func (c *ForwardCtrl) SaveForward() {
 	entity.TargetPort = targetPort
 	entity.Others = others
 	entity.FType = fType
+	entity.Status = status
 
 	err := Service.SysDataS.SavePortForward(entity)
 	if err == nil {
@@ -332,7 +334,6 @@ func (c *ForwardCtrl) ClearNetAgentStatus() {
 	c.ServeJSON()
 }
 
-
 // @router /u/StartAgentJob [post]
 func (c *ForwardCtrl) StartAgentJob() {
 
@@ -341,7 +342,6 @@ func (c *ForwardCtrl) StartAgentJob() {
 	targetAddr := c.GetString("targetAddr", "")
 	fType, _ := c.GetInt("fType")
 
-
 	portForward := new(Models.PortForward)
 	portForward.Addr = Utils.Split(lAddr, ":")[0]
 	portForward.Port = Utils.ToInt(Utils.Split(lAddr, ":")[1])
@@ -350,7 +350,6 @@ func (c *ForwardCtrl) StartAgentJob() {
 	portForward.TargetPort = Utils.ToInt(Utils.Split(targetAddr, ":")[1])
 	portForward.FType = fType
 
-
 	resultChan := make(chan Models.FuncResult)
 	go Service.MagicServ.StartMagicForward(portForward, resultChan)
 
@@ -366,4 +365,3 @@ func (c *ForwardCtrl) StopAgentJob() {
 	c.ServeJSON()
 
 }
-

+ 23 - 7
forward-server/Service/InitServices.go

@@ -1,20 +1,22 @@
 package Service
 
-
 import (
+	"fmt"
+	"forward-core/Models"
+
+	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/orm"
 	_ "github.com/mattn/go-sqlite3"
 )
 
-
 var (
-	OrmerS     orm.Ormer
+	OrmerS orm.Ormer
 	//ForWardServ   = new(ForWardServer)
-	ForWardServ   = NewForWardServer()
+	ForWardServ = NewForWardServer()
 	MagicServ   = NewMagicServiceV1()
 	//MagicServ   = new(MagicServer)
 	ConsoleServ = new(ConsoleServer)
-	SysDataS   = new(SysDataService)
+	SysDataS    = new(SysDataService)
 )
 
 func init() {
@@ -28,5 +30,19 @@ func init() {
 	OrmerS = orm.NewOrm()
 	OrmerS.Using("default")
 
-
-}
+	onstartForward := beego.AppConfig.String("onstart.forward")
+	if onstartForward == "true" {
+		onStartForward()
+	}
+}
+
+func onStartForward() {
+	forwards := SysDataS.GetAllPortForwardList(1)
+	for _, entity := range forwards {
+		resultChan := make(chan Models.FuncResult)
+		config := SysDataS.ToForwardConfig(entity)
+		go ForWardServ.OpenForward(config, resultChan)
+
+		fmt.Println(<-resultChan)
+	}
+}

+ 23 - 1
forward-server/Service/SysDataService.go

@@ -163,6 +163,27 @@ func (_self *SysDataService) SavePortForwardByApi(sourcePort, protocol, targetPo
 
 }
 
+func (_self *SysDataService) GetAllPortForwardList(status int) []*Models.PortForward {
+
+	var entites []*Models.PortForward
+	entity := new(Models.PortForward)
+	qs := OrmerS.QueryTable(entity)
+
+	if status > -1 {
+		qs = qs.Filter("Status", status)
+	}
+
+	num, err := qs.All(&entites)
+	if err != nil {
+		logs.Error("GetAllPortForwardList ", err)
+	} else {
+		logs.Debug("GetAllPortForwardList rows ", num)
+	}
+
+	return entites
+
+}
+
 func (_self *SysDataService) GetPortForwardList(query *Models.PortForward, pageIndex int64, pageSize int64) Models.PageData {
 
 	var entites []*Models.PortForward
@@ -216,6 +237,7 @@ func (_self *SysDataService) SavePortForward(entity *Models.PortForward) error {
 		update.TargetPort = entity.TargetPort
 		update.Others = entity.Others
 		update.FType = entity.FType
+		update.Status = entity.Status
 
 		_, err1 := OrmerS.Update(update)
 		return err1
@@ -272,4 +294,4 @@ func (_self *SysDataService) GetForwardJob(entity *Models.PortForward) *ForWardJ
 
 	return ForWardServ.GetForwardJob(_self.ToForwardConfig(entity))
 
-}
+}

+ 0 - 2
forward-server/build_linux.bat

@@ -1,10 +1,8 @@
 
-set GoDevWork="D:\CodeWork\port-forward-v2\"
 
 echo "Build For Linux..."
 set GOOS=linux
 set GOARCH=amd64
-set GOPATH=%GoDevWork%;%GOPATH%
 go build -o forward-server
 
 echo "--------- Build For Linux Success!"

+ 1 - 2
forward-server/build_mac.bat

@@ -1,10 +1,9 @@
 
-set GoDevWork="D:\CodeWork\port-forward-v2\"
 
 echo "Build For Mac..."
 set GOOS=darwin
 set GOARCH=amd64
-set GOPATH=%GoDevWork%;%GOPATH%
+
 go build -o forward-server
 
 echo "--------- Build For Mac Success!"

+ 2 - 2
forward-server/build_win.bat

@@ -1,10 +1,10 @@
 
-set GoDevWork="D:\CodeWork\port-forward-v2\"
+::set GoDevWork="D:\CodeWork\port-forward\"
 
 echo "Build For windows..."
 set GOOS=windows
 set GOARCH=amd64
-set GOPATH=%GoDevWork%;%GOPATH%
+::set GOPATH=%GoDevWork%;%GOPATH%
 go build -o forward-server.exe
 
 echo "--------- Build For windows Success!"

+ 1 - 0
forward-server/conf/data.conf

@@ -3,3 +3,4 @@ api.auth = "26CCD056107481F45D1AC805A24A9E59"
 
 agent.auth = "722ED8F8D9900CC1AB17243DC7B51A2D"
 
+onstart.forward = "true"

BIN
forward-server/data/data.db


+ 6 - 0
forward-server/views/ucenter/forwardForm.html

@@ -57,6 +57,12 @@
         <input type="text" name="others" value="{{.entity.Others}}" placeholder="如 192.1.1.100:8081;192.1.1.100:8082" title="多个用 ; 号隔开" autocomplete="off" class="layui-input">
       </div>
     </div>
+    <div class="layui-form-item">
+      <label class="layui-form-label">是否禁用</label>
+      <div class="layui-input-inline">
+        <input type="text" name="status" value="{{.entity.Status}}" lay-verify="required" placeholder="0:禁用,1:开启" autocomplete="off" class="layui-input">
+      </div>
+    </div>
     <div class="layui-form-item">
         <pre class="layui-code" style="text-align: left;">
 *多分发说明:

粤ICP备19079148号