start.go 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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/dbdata"
  9. "github.com/bjdgyc/anylink/sessdata"
  10. )
  11. func Start() {
  12. dbdata.Start()
  13. sessdata.Start()
  14. switch base.Cfg.LinkMode {
  15. case base.LinkModeTUN:
  16. checkTun()
  17. case base.LinkModeTAP:
  18. checkTap()
  19. case base.LinkModeMacvtap:
  20. checkMacvtap()
  21. default:
  22. base.Fatal("LinkMode is err")
  23. }
  24. // 计算profile.xml的hash
  25. b, err := os.ReadFile(base.Cfg.Profile)
  26. if err != nil {
  27. panic(err)
  28. }
  29. ha := sha1.Sum(b)
  30. profileHash = hex.EncodeToString(ha[:])
  31. go admin.StartAdmin()
  32. go startTls()
  33. go startDtls()
  34. }
  35. func Stop() {
  36. _ = dbdata.Stop()
  37. destroyVtap()
  38. }