Skip to content

Commit eb01353

Browse files
committed
update
1 parent a312289 commit eb01353

File tree

6 files changed

+53
-44
lines changed

6 files changed

+53
-44
lines changed

gateway-go.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
gatewayuuid: 62ded68f-5bf6-4d97-9c2e-ced2d5fd215f
22
logconfig:
3-
enablestdout: true
4-
logfilepath: ""
5-
loginwithtokenmap:
6-
ee756a19-812e-4eb8-b4cd-425845858716: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJSdW5JZCI6ImVlNzU2YTE5LTgxMmUtNGViOC1iNGNkLTQyNTg0NTg1ODcxNiIsIkhvc3QiOiJndW9uZWkubmF0LWNsb3VkLmNvbSIsIlRjcFBvcnQiOjM0MzIwLCJLY3BQb3J0IjozNDMyMCwiVGxzUG9ydCI6MzQzMjEsIkdycGNQb3J0IjozNDMyMiwiVURQQXBpUG9ydCI6MzQzMjEsIktDUEFwaVBvcnQiOjM0MzIyLCJQZXJtaXNzaW9uIjpbImdhdGV3YXkiXSwiVHh0cyI6e30sImV4cCI6MjAxNzMxNjYxODY5LCJuYmYiOjE3MzE2MzMwNjl9.BWb42t00vs2IJCDAD5P-ZQiKkrqNtAJyd1767W3x20E
3+
enablestdout: true
4+
logfilepath: ""
5+
loginwithtokenmap: {}

netservice/handle/handle.go

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,10 @@ func HandleStream(stream net.Conn, tokenStr string) {
2121
log.Printf(err.Error())
2222
return
2323
}
24-
defer func() {
25-
if stream != nil {
26-
err = stream.Close()
27-
return
28-
}
29-
if err != nil {
30-
log.Println(err.Error())
31-
}
32-
}()
3324
rawMsg, err := msg.ReadMsg(stream)
3425
if err != nil {
3526
log.Printf(err.Error() + "从stream读取数据错误")
27+
stream.Close()
3628
return
3729
}
3830
//log.Printf("begin Swc")
@@ -145,6 +137,8 @@ func HandleStream(stream net.Conn, tokenStr string) {
145137
if err != nil {
146138
log.Println(err.Error())
147139
}
140+
//TODO 防止未关闭的连接,取决于请求方是否关闭
141+
//stream.Close()
148142
}
149143

150144
case *models.ReqNewP2PCtrlAsServer:
@@ -153,6 +147,9 @@ func HandleStream(stream net.Conn, tokenStr string) {
153147
go func() {
154148
session, listener, err := gateway.MakeP2PSessionAsServer(stream, m, tokenModel)
155149
if err != nil {
150+
if listener != nil {
151+
listener.Close()
152+
}
156153
log.Println("gateway.MakeP2PSessionAsServer:", err)
157154
return
158155
}
@@ -169,6 +166,9 @@ func HandleStream(stream net.Conn, tokenStr string) {
169166
go func() {
170167
session, listener, err := gateway.MakeP2PSessionAsClient(stream, m, tokenModel)
171168
if err != nil {
169+
if listener != nil {
170+
listener.Close()
171+
}
172172
log.Println("gateway.MakeP2PSessionAsClient:", err)
173173
return
174174
}
@@ -203,33 +203,36 @@ func HandleStream(stream net.Conn, tokenStr string) {
203203
log.Println(err.Error())
204204
}
205205
}
206+
//TODO 是否关闭
206207
stream.Close()
207208
}
208209
//由于用户在服务器账户删掉了这个网关,所有网关删掉服务器登录以供新用户绑定
209210
case *models.DeleteGatewayJwt:
210-
//{
211-
// log.Println("删除配置:", tokenModel.RunId)
212-
// GatewayManager.DelServer(tokenModel.RunId)
213-
// delete(ConfigMode.LoginWithTokenMap, tokenModel.RunId)
214-
// err = WriteConfigFile(ConfigMode, ConfigFilePath)
215-
// if err != nil {
216-
// log.Println(err)
217-
// err = msg.WriteMsg(stream, &models.Error{
218-
// Code: 1,
219-
// Message: err.Error(),
220-
// })
221-
// if err != nil {
222-
// log.Println(err.Error())
223-
// }
224-
// return
225-
// }
226-
// err = msg.WriteMsg(stream, &models.OK{})
227-
// if err != nil {
228-
// log.Println(err.Error())
229-
// }
230-
//}
211+
{
212+
// log.Println("删除配置:", tokenModel.RunId)
213+
// GatewayManager.DelServer(tokenModel.RunId)
214+
// delete(ConfigMode.LoginWithTokenMap, tokenModel.RunId)
215+
// err = WriteConfigFile(ConfigMode, ConfigFilePath)
216+
// if err != nil {
217+
// log.Println(err)
218+
// err = msg.WriteMsg(stream, &models.Error{
219+
// Code: 1,
220+
// Message: err.Error(),
221+
// })
222+
// if err != nil {
223+
// log.Println(err.Error())
224+
// }
225+
// return
226+
// }
227+
// err = msg.WriteMsg(stream, &models.OK{})
228+
// if err != nil {
229+
// log.Println(err.Error())
230+
// }
231+
stream.Close()
232+
}
231233
default:
232234
log.Printf("type err")
235+
stream.Close()
233236
}
234237
}
235238

netservice/services/connect/service/check.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"crypto/tls"
99
)
1010

11-
// check
11+
// CheckTcpUdpTls 检查端口状态,如果端口可连接则状态为0,如果不可连接则状态为其他
1212
func CheckTcpUdpTls(connType, addr string) (int, string) {
1313
var c net.Conn = nil
1414
var err error

netservice/services/connect/service/mDns.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,14 @@ func FindAllmDNS(stream net.Conn, service *models.NewService) error {
5959
log.Println(err.Error())
6060
return err
6161
}
62-
log.Println("mdns rstByte:", string(rstByte))
62+
//log.Println("mdns rstByte:", string(rstByte))
6363
err = msg.WriteMsg(stream, &models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
6464
if err != nil {
6565
log.Println("写消息错误:")
6666
log.Println(err.Error())
6767
}
68-
content, _ := json.Marshal(&models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
69-
log.Println("content:", string(content))
68+
//content, _ := json.Marshal(&models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
69+
//log.Println("content:", string(content))
70+
//stream.Close()
7071
return err
7172
}

netservice/services/connect/service/serviceHdl.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@ func ServiceHdl(stream net.Conn, service *models.NewService) error {
1616
return err
1717
case "mDNSFind":
1818
err := FindAllmDNS(stream, service)
19+
//stream.Close()
1920
return err
2021
case "scanPort":
2122
err := ScanPort(stream, service)
23+
//stream.Close()
2224
return err
2325
case "ListenMulticastUDP":
2426
err := ListenMulticastUDP(stream, service)
2527
return err
2628
default:
27-
29+
stream.Close()
2830
}
2931
return nil
3032
}

services/serverSession.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ type ServerSession struct {
1515
token string
1616
tokenModel *models.TokenClaims
1717
//内部存储
18-
session *yamux.Session
19-
heartbeat *time.Ticker
20-
quit chan struct{}
21-
loginLock sync.Mutex
22-
loopStreamLock sync.Mutex
18+
session *yamux.Session
19+
heartbeat *time.Ticker
20+
quit chan struct{}
21+
22+
checkSessionStatusLock sync.Mutex
23+
loginLock sync.Mutex
24+
loopStreamLock sync.Mutex
2325
}
2426

2527
func (ss *ServerSession) stop() {
@@ -78,6 +80,8 @@ func (ss *ServerSession) loopStream() {
7880
}
7981

8082
func (ss *ServerSession) checkSessionStatus() {
83+
ss.checkSessionStatusLock.Lock()
84+
defer ss.checkSessionStatusLock.Unlock()
8185
if ss.session == nil || (ss.session != nil && ss.session.IsClosed()) {
8286
log.Println("开始(重新)连接:", ss.tokenModel.RunId, "@", ss.tokenModel.Host)
8387
err := ss.loginServer()

0 commit comments

Comments
 (0)