From 4b3834e46db94971ceb1df8f693a9bd04a0f0935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Fri, 6 Dec 2019 23:32:44 +0800 Subject: [PATCH 1/5] fix multi account file --- lib/config/config.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/config/config.go b/lib/config/config.go index 89a6bfd..96531e2 100644 --- a/lib/config/config.go +++ b/lib/config/config.go @@ -241,13 +241,15 @@ func dealTunnel(s string) *file.Tunnel { t.StripPre = item[1] case "multi_account": t.MultiAccount = &file.MultiAccount{} - if b, err := common.ReadAllFromFile(item[1]); err != nil { - panic(err) - } else { - if content, err := common.ParseStr(string(b)); err != nil { + if common.FileExists(item[1]){ + if b, err := common.ReadAllFromFile(item[1]); err != nil { panic(err) } else { - t.MultiAccount.AccountMap = dealMultiUser(content) + if content, err := common.ParseStr(string(b)); err != nil { + panic(err) + } else { + t.MultiAccount.AccountMap = dealMultiUser(content) + } } } } From 883dd07d86a8eaf755a111bcae7d674166de5a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Fri, 6 Dec 2019 23:42:37 +0800 Subject: [PATCH 2/5] fix the number of client bug --- server/server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/server.go b/server/server.go index 5335a40..868a94d 100644 --- a/server/server.go +++ b/server/server.go @@ -342,7 +342,10 @@ func GetDashboardData() map[string]interface{} { data := make(map[string]interface{}) data["version"] = version.VERSION data["hostCount"] = common.GeSynctMapLen(file.GetDb().JsonDb.Hosts) - data["clientCount"] = common.GeSynctMapLen(file.GetDb().JsonDb.Clients) - 1 //Remove the public key client + data["clientCount"] = common.GeSynctMapLen(file.GetDb().JsonDb.Clients) + if beego.AppConfig.String("public_vkey") != "" { //remove public vkey + data["clientCount"] = data["clientCount"].(int) - 1 + } dealClientData() c := 0 var in, out int64 From 614d81f374d5bab187ec09055bd52a56fc1e51e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Fri, 6 Dec 2019 23:54:55 +0800 Subject: [PATCH 3/5] delete user session when admin login --- web/controllers/login.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/controllers/login.go b/web/controllers/login.go index a460b75..10da8d7 100755 --- a/web/controllers/login.go +++ b/web/controllers/login.go @@ -22,6 +22,8 @@ func (self *LoginController) Verify() { var auth bool if self.GetString("password") == beego.AppConfig.String("web_password") && self.GetString("username") == beego.AppConfig.String("web_username") { self.SetSession("isAdmin", true) + self.DelSession("clientId") + self.DelSession("username") auth = true server.Bridge.Register.Store(common.GetIpByAddr(self.Ctx.Input.IP()), time.Now().Add(time.Hour*time.Duration(2))) } From 9268e6752909c039ee72765b002e3b4d6664d3c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Sat, 7 Dec 2019 20:44:32 +0800 Subject: [PATCH 4/5] fix port mux bug --- lib/mux/pconn.go | 24 ++++++++++++++++-------- lib/mux/pmux.go | 4 +++- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/mux/pconn.go b/lib/mux/pconn.go index b351e7c..35af3cc 100644 --- a/lib/mux/pconn.go +++ b/lib/mux/pconn.go @@ -6,15 +6,17 @@ import ( ) type PortConn struct { - Conn net.Conn - rs []byte - start int + Conn net.Conn + rs []byte + readMore bool + start int } -func newPortConn(conn net.Conn, rs []byte) *PortConn { +func newPortConn(conn net.Conn, rs []byte, readMore bool) *PortConn { return &PortConn{ - Conn: conn, - rs: rs, + Conn: conn, + rs: rs, + readMore: readMore, } } @@ -29,9 +31,15 @@ func (pConn *PortConn) Read(b []byte) (n int, err error) { defer func() { pConn.start = len(pConn.rs) }() - return copy(b, pConn.rs[pConn.start:]), nil + n = copy(b, pConn.rs[pConn.start:]) + if !pConn.readMore { + return + } } - return pConn.Conn.Read(b) + var n2 = 0 + n2, err = pConn.Conn.Read(b[n:]) + n = n + n2 + return } func (pConn *PortConn) Write(b []byte) (n int, err error) { diff --git a/lib/mux/pmux.go b/lib/mux/pmux.go index e593bb0..f4e9d4a 100644 --- a/lib/mux/pmux.go +++ b/lib/mux/pmux.go @@ -89,6 +89,7 @@ func (pMux *PortMux) process(conn net.Conn) { var ch chan *PortConn var rs []byte var buffer bytes.Buffer + var readMore = false switch common.BytesToNum(buf) { case HTTP_CONNECT, HTTP_DELETE, HTTP_GET, HTTP_HEAD, HTTP_OPTIONS, HTTP_POST, HTTP_PUT, HTTP_TRACE: //http and manager buffer.Reset() @@ -123,6 +124,7 @@ func (pMux *PortMux) process(conn net.Conn) { case CLIENT: // client connection ch = pMux.clientConn default: // https + readMore = true ch = pMux.httpsConn } if len(rs) == 0 { @@ -131,7 +133,7 @@ func (pMux *PortMux) process(conn net.Conn) { timer := time.NewTimer(ACCEPT_TIME_OUT) select { case <-timer.C: - case ch <- newPortConn(conn, rs): + case ch <- newPortConn(conn, rs, readMore): } } From 528386cfd6d3d3dcc1636cbde66b2b6c9ba76a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=B3?= Date: Sat, 7 Dec 2019 20:47:58 +0800 Subject: [PATCH 5/5] add multi_account file into build.sh --- build.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/build.sh b/build.sh index 1df36fb..768e448 100644 --- a/build.sh +++ b/build.sh @@ -10,75 +10,75 @@ cp upx-3.95-amd64_linux/upx ./ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_amd64_client.tar.gz npc conf/npc.conf +tar -czvf linux_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_386_client.tar.gz npc conf/npc.conf +tar -czvf linux_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf freebsd_386_client.tar.gz npc conf/npc.conf +tar -czvf freebsd_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf freebsd_amd64_client.tar.gz npc conf/npc.conf +tar -czvf freebsd_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf freebsd_arm_client.tar.gz npc conf/npc.conf +tar -czvf freebsd_arm_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_arm_v7_client.tar.gz npc conf/npc.conf +tar -czvf linux_arm_v7_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_arm_v6_client.tar.gz npc conf/npc.conf +tar -czvf linux_arm_v6_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_arm_v5_client.tar.gz npc conf/npc.conf +tar -czvf linux_arm_v5_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_arm64_client.tar.gz npc conf/npc.conf +tar -czvf linux_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_mips64_client.tar.gz npc conf/npc.conf +tar -czvf linux_mips64_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_mips64le_client.tar.gz npc conf/npc.conf +tar -czvf linux_mips64le_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_mipsle_client.tar.gz npc conf/npc.conf +tar -czvf linux_mipsle_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf linux_mips_client.tar.gz npc conf/npc.conf +tar -czvf linux_mips_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf win_386_client.tar.gz npc.exe conf/npc.conf +tar -czvf win_386_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf win_amd64_client.tar.gz npc.exe conf/npc.conf +tar -czvf win_amd64_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go -tar -czvf macos_client.tar.gz npc conf/npc.conf +tar -czvf macos_client.tar.gz npc conf/npc.conf conf/multi_account.conf CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go