2019-02-12 19:54:00 +00:00
|
|
|
package test
|
2019-02-05 16:35:23 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
2019-03-23 14:19:59 +00:00
|
|
|
"path/filepath"
|
2019-02-05 16:35:23 +00:00
|
|
|
"strconv"
|
2019-08-10 03:15:25 +00:00
|
|
|
|
2020-01-08 13:57:14 +00:00
|
|
|
"ehang.io/nps/lib/common"
|
|
|
|
"ehang.io/nps/lib/file"
|
2019-08-10 03:15:25 +00:00
|
|
|
"github.com/astaxie/beego"
|
2019-02-05 16:35:23 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestServerConfig() {
|
2019-02-09 09:07:47 +00:00
|
|
|
var postTcpArr []int
|
|
|
|
var postUdpArr []int
|
2019-03-29 07:21:30 +00:00
|
|
|
file.GetDb().JsonDb.Tasks.Range(func(key, value interface{}) bool {
|
2019-03-23 14:19:59 +00:00
|
|
|
v := value.(*file.Tunnel)
|
2019-03-01 09:23:14 +00:00
|
|
|
if v.Mode == "udp" {
|
2019-02-12 19:54:00 +00:00
|
|
|
isInArr(&postUdpArr, v.Port, v.Remark, "udp")
|
2019-03-23 14:19:59 +00:00
|
|
|
} else if v.Port != 0 {
|
|
|
|
|
2019-02-12 19:54:00 +00:00
|
|
|
isInArr(&postTcpArr, v.Port, v.Remark, "tcp")
|
2019-02-09 09:07:47 +00:00
|
|
|
}
|
2019-03-23 14:19:59 +00:00
|
|
|
return true
|
|
|
|
})
|
2019-03-05 01:23:18 +00:00
|
|
|
p, err := beego.AppConfig.Int("web_port")
|
2019-02-05 16:35:23 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Fatalln("Getting web management port error :", err)
|
|
|
|
} else {
|
2019-02-09 09:07:47 +00:00
|
|
|
isInArr(&postTcpArr, p, "Web Management port", "tcp")
|
|
|
|
}
|
|
|
|
|
2019-03-05 01:23:18 +00:00
|
|
|
if p := beego.AppConfig.String("bridge_port"); p != "" {
|
2019-02-09 09:07:47 +00:00
|
|
|
if port, err := strconv.Atoi(p); err != nil {
|
|
|
|
log.Fatalln("get Server and client communication portserror:", err)
|
2019-03-05 01:23:18 +00:00
|
|
|
} else if beego.AppConfig.String("bridge_type") == "kcp" {
|
2019-02-09 09:07:47 +00:00
|
|
|
isInArr(&postUdpArr, port, "Server and client communication ports", "udp")
|
|
|
|
} else {
|
|
|
|
isInArr(&postTcpArr, port, "Server and client communication ports", "tcp")
|
|
|
|
}
|
2019-02-05 16:35:23 +00:00
|
|
|
}
|
2019-02-09 09:07:47 +00:00
|
|
|
|
2019-02-05 16:35:23 +00:00
|
|
|
if p := beego.AppConfig.String("httpProxyPort"); p != "" {
|
|
|
|
if port, err := strconv.Atoi(p); err != nil {
|
|
|
|
log.Fatalln("get http port error:", err)
|
|
|
|
} else {
|
2019-02-09 09:07:47 +00:00
|
|
|
isInArr(&postTcpArr, port, "https port", "tcp")
|
2019-02-05 16:35:23 +00:00
|
|
|
}
|
|
|
|
}
|
2019-03-05 01:23:18 +00:00
|
|
|
if p := beego.AppConfig.String("https_proxy_port"); p != "" {
|
2019-03-23 14:19:59 +00:00
|
|
|
if b, err := beego.AppConfig.Bool("https_just_proxy"); !(err == nil && b) {
|
|
|
|
if port, err := strconv.Atoi(p); err != nil {
|
|
|
|
log.Fatalln("get https port error", err)
|
|
|
|
} else {
|
2019-04-08 09:01:08 +00:00
|
|
|
if !common.FileExists(filepath.Join(common.GetRunPath(), beego.AppConfig.String("pemPath"))) {
|
2019-03-23 14:19:59 +00:00
|
|
|
log.Fatalf("ssl certFile %s is not exist", beego.AppConfig.String("pemPath"))
|
|
|
|
}
|
2019-04-08 09:01:08 +00:00
|
|
|
if !common.FileExists(filepath.Join(common.GetRunPath(), beego.AppConfig.String("ketPath"))) {
|
2019-03-23 14:19:59 +00:00
|
|
|
log.Fatalf("ssl keyFile %s is not exist", beego.AppConfig.String("pemPath"))
|
|
|
|
}
|
|
|
|
isInArr(&postTcpArr, port, "http port", "tcp")
|
2019-02-05 16:35:23 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-09 09:07:47 +00:00
|
|
|
func isInArr(arr *[]int, val int, remark string, tp string) {
|
2019-02-05 16:35:23 +00:00
|
|
|
for _, v := range *arr {
|
|
|
|
if v == val {
|
|
|
|
log.Fatalf("the port %d is reused,remark: %s", val, remark)
|
|
|
|
}
|
|
|
|
}
|
2019-02-09 09:07:47 +00:00
|
|
|
if tp == "tcp" {
|
|
|
|
if !common.TestTcpPort(val) {
|
|
|
|
log.Fatalf("open the %d port error ,remark: %s", val, remark)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if !common.TestUdpPort(val) {
|
|
|
|
log.Fatalf("open the %d port error ,remark: %s", val, remark)
|
|
|
|
}
|
2019-02-05 16:35:23 +00:00
|
|
|
}
|
|
|
|
*arr = append(*arr, val)
|
|
|
|
return
|
|
|
|
}
|