start.go 793 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package handler
  2. import (
  3. "crypto/sha1"
  4. "encoding/hex"
  5. "os"
  6. "github.com/bjdgyc/anylink/admin"
  7. "github.com/bjdgyc/anylink/base"
  8. "github.com/bjdgyc/anylink/cron"
  9. "github.com/bjdgyc/anylink/dbdata"
  10. "github.com/bjdgyc/anylink/sessdata"
  11. )
  12. func Start() {
  13. dbdata.Start()
  14. sessdata.Start()
  15. cron.Start()
  16. switch base.Cfg.LinkMode {
  17. case base.LinkModeTUN:
  18. checkTun()
  19. case base.LinkModeTAP:
  20. checkTap()
  21. case base.LinkModeMacvtap:
  22. checkMacvtap()
  23. default:
  24. base.Fatal("LinkMode is err")
  25. }
  26. // 计算profile.xml的hash
  27. b, err := os.ReadFile(base.Cfg.Profile)
  28. if err != nil {
  29. panic(err)
  30. }
  31. ha := sha1.Sum(b)
  32. profileHash = hex.EncodeToString(ha[:])
  33. go admin.StartAdmin()
  34. go startTls()
  35. go startDtls()
  36. go logAuditBatch()
  37. }
  38. func Stop() {
  39. _ = dbdata.Stop()
  40. destroyVtap()
  41. }