77 lines
1.8 KiB
Go
77 lines
1.8 KiB
Go
package handlers
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"proxy-server/gateway/app"
|
|
"proxy-server/gateway/core"
|
|
)
|
|
|
|
type InfoResp struct {
|
|
Id int32 `json:"id"`
|
|
Name string `json:"name"`
|
|
|
|
FwdListeners int `json:"fwd_listeners"`
|
|
UserConnections int `json:"user_connections"`
|
|
CtrlConnections int `json:"ctrl_connections"`
|
|
DataConnections int `json:"data_connections"`
|
|
|
|
// Edges []EdgeResp `json:"edges"`
|
|
Assigns map[uint16]int32 `json:"assigns"`
|
|
Edges map[int32]uint16 `json:"edges"`
|
|
Permits map[int32]*core.Permit `json:"permits"`
|
|
}
|
|
|
|
type EdgeResp struct {
|
|
Id int32 `json:"id"`
|
|
Port uint16 `json:"port"`
|
|
Permit *core.Permit `json:"permit"`
|
|
}
|
|
|
|
func Info(c *fiber.Ctx) error {
|
|
|
|
// var edges = make([]EdgeResp, 0)
|
|
// app.Edges.Range(func(id int32, port uint16) bool {
|
|
// permit, ok := app.Permits.Load(id)
|
|
// if !ok {
|
|
// return true
|
|
// }
|
|
//
|
|
// edges = append(edges, EdgeResp{
|
|
// Id: id,
|
|
// Port: port,
|
|
// Permit: permit,
|
|
// })
|
|
// return true
|
|
// })
|
|
|
|
var assigns = make(map[uint16]int32)
|
|
app.Assigns.Range(func(port uint16, id int32) bool {
|
|
assigns[port] = id
|
|
return true
|
|
})
|
|
|
|
var edges = make(map[int32]uint16)
|
|
app.Edges.Range(func(id int32, port uint16) bool {
|
|
edges[id] = port
|
|
return true
|
|
})
|
|
|
|
var permits = make(map[int32]*core.Permit)
|
|
app.Permits.Range(func(id int32, permit *core.Permit) bool {
|
|
permits[id] = permit
|
|
return true
|
|
})
|
|
|
|
return c.JSON(InfoResp{
|
|
Id: app.Id,
|
|
Name: app.Name,
|
|
FwdListeners: int(app.FwdLesWg.Count()),
|
|
UserConnections: int(app.UserConnWg.Count()),
|
|
CtrlConnections: int(app.CtrlConnWg.Count()),
|
|
DataConnections: int(app.DataConnWg.Count()),
|
|
Assigns: assigns,
|
|
Edges: edges,
|
|
Permits: permits,
|
|
})
|
|
}
|