From 57990d3d2a28c4b3d00e6cc6e044a4bc6aa3cd49 Mon Sep 17 00:00:00 2001
From: bjdgyc <bjdgyc@163.com>
Date: Mon, 30 Oct 2023 11:38:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E5=8D=A1=20alias?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 server/handler/link_tun.go    | 9 +++++----
 server/handler/link_tunnel.go | 6 +++++-
 server/handler/link_vtap.go   | 3 ++-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/server/handler/link_tun.go b/server/handler/link_tun.go
index cbe4415..7c2d212 100644
--- a/server/handler/link_tun.go
+++ b/server/handler/link_tun.go
@@ -28,19 +28,19 @@ func checkTun() {
 	if err != nil {
 		base.Fatal("testTun err: ", err)
 	}
-	//开启服务器转发
+	// 开启服务器转发
 	if err := execCmd([]string{"sysctl -w net.ipv4.ip_forward=1"}); err != nil {
 		base.Fatal(err)
 	}
 	if base.Cfg.IptablesNat {
-		//添加NAT转发规则
+		// 添加NAT转发规则
 		ipt, err := iptables.New()
 		if err != nil {
 			base.Fatal(err)
 			return
 		}
 
-		//修复 rockyos nat 不生效
+		// 修复 rockyos nat 不生效
 		cmdstr0 := fmt.Sprintln("modprobe -i iptable_filter")
 		cmdstr1 := fmt.Sprintf("modprobe -i iptable_nat")
 		err = execCmd([]string{cmdstr0, cmdstr1})
@@ -75,7 +75,8 @@ func LinkTun(cSess *sessdata.ConnSession) error {
 	// log.Printf("Interface Name: %s\n", ifce.Name())
 	cSess.SetIfName(ifce.Name())
 
-	cmdstr1 := fmt.Sprintf("ip link set dev %s up mtu %d multicast off", ifce.Name(), cSess.Mtu)
+	cmdstr1 := fmt.Sprintf("ip link set dev %s up mtu %d multicast off alias %s.%s", ifce.Name(), cSess.Mtu,
+		cSess.Group.Name, cSess.Username)
 	cmdstr2 := fmt.Sprintf("ip addr add dev %s local %s peer %s/32",
 		ifce.Name(), base.Cfg.Ipv4Gateway, cSess.IpAddr)
 	err = execCmd([]string{cmdstr1, cmdstr2})
diff --git a/server/handler/link_tunnel.go b/server/handler/link_tunnel.go
index 61cf1a1..3fd5b8b 100644
--- a/server/handler/link_tunnel.go
+++ b/server/handler/link_tunnel.go
@@ -238,7 +238,11 @@ func SetPostAuthXml(g *dbdata.Group, w http.ResponseWriter) error {
 	if err != nil {
 		return err
 	}
-	HttpSetHeader(w, "X-CSTP-Post-Auth-XML", result.String())
+	xmlAuth := ""
+	for _, v := range strings.Split(result.String(), "\n") {
+		xmlAuth += strings.TrimSpace(v)
+	}
+	HttpSetHeader(w, "X-CSTP-Post-Auth-XML", xmlAuth)
 	return nil
 }
 
diff --git a/server/handler/link_vtap.go b/server/handler/link_vtap.go
index 399f9da..9536fca 100644
--- a/server/handler/link_vtap.go
+++ b/server/handler/link_vtap.go
@@ -54,7 +54,8 @@ func LinkMacvtap(cSess *sessdata.ConnSession) error {
 	cSess.SetIfName(ifName)
 
 	cmdstr1 := fmt.Sprintf("ip link add link %s name %s type macvtap mode bridge", base.Cfg.Ipv4Master, ifName)
-	cmdstr2 := fmt.Sprintf("ip link set dev %s up mtu %d address %s", ifName, cSess.Mtu, cSess.MacHw)
+	cmdstr2 := fmt.Sprintf("ip link set dev %s up mtu %d address %s alias %s.%s", ifName, cSess.Mtu, cSess.MacHw,
+		cSess.Group.Name, cSess.Username)
 	err := execCmd([]string{cmdstr1, cmdstr2})
 	if err != nil {
 		base.Error(err)