| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package Controllers
- import (
- "forward-core/Models"
- "forward-core/Utils"
- "forward-server/Controllers/BaseCtrl"
- "forward-server/Service"
- "runtime"
- "strings"
- "time"
- )
- type RestApiCtrl struct {
- BaseCtrl.ApiCtrl
- }
- // @router /ServerSummary [get,post]
- func (c *RestApiCtrl) ServerSummary() {
- obj := make(map[string]interface{})
- obj["runtime_NumGoroutine"] = runtime.NumGoroutine()
- obj["runtime_GOOS"] = runtime.GOOS
- obj["runtime_GOARCH"] = runtime.GOARCH
- obj["server_Time"] = time.Now()
- obj["forwardList"] = Service.ForWardServ.FindAllForward()
- c.Data["json"] = obj
- c.ServeJSON()
- }
- // @router /OpenForward [get,post]
- func (c *RestApiCtrl) OpenForward() {
- fromAddr := c.GetString("fromAddr")
- toAddr := c.GetString("toAddr")
- protocol := c.GetString("protocol", "TCP")
- entity := Service.SysDataS.ChkPortForwardByApi(fromAddr, protocol, toAddr)
- if entity == nil {
- _, err := Service.SysDataS.SavePortForwardByApi(fromAddr, protocol, toAddr)
- if err != nil {
- c.Data["json"] = Models.FuncResult{Code: 1, Msg: "保存端口配置失败"}
- c.ServeJSON()
- return
- }
- }
- //测试
- //http://127.0.0.1:8000/api/v1/OpenForward?auth=26CCD056107481F45D1AC805A24A9E59&fromAddr=:8010&toAddr=127.0.0.1:3306
- resultChan := make(chan Models.FuncResult)
- config := Service.SysDataS.ToForwardConfig(entity)
- go Service.ForWardServ.OpenForward(config, resultChan)
- c.Data["json"] = <-resultChan
- c.ServeJSON()
- }
- // @router /CloseForward [get,post]
- func (c *RestApiCtrl) CloseForward() {
- fromAddr := c.GetString("fromAddr")
- toAddr := c.GetString("toAddr")
- protocol := c.GetString("protocol", "TCP")
- //fType, _ := c.GetInt("fType", 0)
- //测试
- //http://127.0.0.1:8000/api/v1/CloseForward?auth=26CCD056107481F45D1AC805A24A9E59&fromAddr=:8010&toAddr=127.0.0.1:3306
- config := new(Models.ForwardConfig)
- config.RuleId = 0
- config.Name = ""
- config.Protocol = protocol
- config.SrcAddr = strings.Split(fromAddr, ":")[0]
- config.SrcPort = Utils.ToInt(strings.Split(fromAddr, ":")[1])
- config.DestAddr = strings.Split(toAddr, ":")[0]
- config.DestPort = Utils.ToInt(strings.Split(toAddr, ":")[1])
- config.Status = 0
- Service.ForWardServ.CloseForward(config)
- c.Data["json"] = Models.FuncResult{Code: 0, Msg: ""}
- c.ServeJSON()
- }
|