dockerfiles/anylink/server/handler/start.go

50 lines
793 B
Go
Raw Normal View History

2021-06-08 20:45:26 +08:00
package handler
import (
2021-12-31 20:21:26 +08:00
"crypto/sha1"
"encoding/hex"
"os"
2021-06-08 20:45:26 +08:00
"github.com/bjdgyc/anylink/admin"
"github.com/bjdgyc/anylink/base"
2022-11-10 15:53:48 +08:00
"github.com/bjdgyc/anylink/cron"
2021-06-08 20:45:26 +08:00
"github.com/bjdgyc/anylink/dbdata"
"github.com/bjdgyc/anylink/sessdata"
)
func Start() {
dbdata.Start()
sessdata.Start()
2022-11-10 15:53:48 +08:00
cron.Start()
2021-06-08 20:45:26 +08:00
2021-08-26 23:09:52 +08:00
switch base.Cfg.LinkMode {
case base.LinkModeTUN:
checkTun()
case base.LinkModeTAP:
2021-06-08 20:45:26 +08:00
checkTap()
2021-08-26 23:09:52 +08:00
case base.LinkModeMacvtap:
checkMacvtap()
default:
base.Fatal("LinkMode is err")
2021-06-08 20:45:26 +08:00
}
2021-08-26 23:09:52 +08:00
2021-12-31 20:21:26 +08:00
// 计算profile.xml的hash
b, err := os.ReadFile(base.Cfg.Profile)
if err != nil {
panic(err)
}
ha := sha1.Sum(b)
profileHash = hex.EncodeToString(ha[:])
2021-06-08 20:45:26 +08:00
go admin.StartAdmin()
go startTls()
go startDtls()
2022-11-10 15:53:48 +08:00
go logAuditBatch()
2021-06-08 20:45:26 +08:00
}
func Stop() {
_ = dbdata.Stop()
2021-08-26 23:09:52 +08:00
destroyVtap()
2021-06-08 20:45:26 +08:00
}