mirror of
				https://github.com/bjdgyc/anylink.git
				synced 2025-11-04 19:16:22 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			793 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			793 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package handler
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/sha1"
 | 
						|
	"encoding/hex"
 | 
						|
	"os"
 | 
						|
 | 
						|
	"github.com/bjdgyc/anylink/admin"
 | 
						|
	"github.com/bjdgyc/anylink/base"
 | 
						|
	"github.com/bjdgyc/anylink/cron"
 | 
						|
	"github.com/bjdgyc/anylink/dbdata"
 | 
						|
	"github.com/bjdgyc/anylink/sessdata"
 | 
						|
)
 | 
						|
 | 
						|
func Start() {
 | 
						|
	dbdata.Start()
 | 
						|
	sessdata.Start()
 | 
						|
	cron.Start()
 | 
						|
 | 
						|
	switch base.Cfg.LinkMode {
 | 
						|
	case base.LinkModeTUN:
 | 
						|
		checkTun()
 | 
						|
	case base.LinkModeTAP:
 | 
						|
		checkTap()
 | 
						|
	case base.LinkModeMacvtap:
 | 
						|
		checkMacvtap()
 | 
						|
	default:
 | 
						|
		base.Fatal("LinkMode is err")
 | 
						|
	}
 | 
						|
 | 
						|
	// 计算profile.xml的hash
 | 
						|
	b, err := os.ReadFile(base.Cfg.Profile)
 | 
						|
	if err != nil {
 | 
						|
		panic(err)
 | 
						|
	}
 | 
						|
	ha := sha1.Sum(b)
 | 
						|
	profileHash = hex.EncodeToString(ha[:])
 | 
						|
 | 
						|
	go admin.StartAdmin()
 | 
						|
	go startTls()
 | 
						|
	go startDtls()
 | 
						|
 | 
						|
	go logAuditBatch()
 | 
						|
}
 | 
						|
 | 
						|
func Stop() {
 | 
						|
	_ = dbdata.Stop()
 | 
						|
	destroyVtap()
 | 
						|
}
 |