mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 15:00:26 +08:00
优化代码
This commit is contained in:
@@ -4,6 +4,7 @@ package conns
|
||||
|
||||
import (
|
||||
"net"
|
||||
"sort"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
@@ -126,5 +127,12 @@ func (this *Map) AllConns() []*ConnInfo {
|
||||
result = append(result, connInfo)
|
||||
}
|
||||
}
|
||||
|
||||
// 按时间排序
|
||||
sort.Slice(result, func(i, j int) bool {
|
||||
// 创建时间越大,Age越小
|
||||
return result[i].CreatedAt > result[j].CreatedAt
|
||||
})
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ func (this *ClientConn) Read(b []byte) (n int, err error) {
|
||||
}
|
||||
|
||||
// TLS
|
||||
// TODO L1 -> L2 时,不计算synflood
|
||||
if this.isTLS {
|
||||
if !this.hasDeadline {
|
||||
_ = this.rawConn.SetReadDeadline(time.Now().Add(time.Duration(nodeconfigs.DefaultTLSHandshakeTimeout) * time.Second)) // TODO 握手超时时间可以设置
|
||||
@@ -115,9 +116,10 @@ func (this *ClientConn) Read(b []byte) (n int, err error) {
|
||||
|
||||
func (this *ClientConn) Write(b []byte) (n int, err error) {
|
||||
// 设置超时时间
|
||||
var timeoutSeconds = len(b) / 512
|
||||
if timeoutSeconds < 5 {
|
||||
timeoutSeconds = 5
|
||||
// TODO L2 -> L1 写入时不限制时间
|
||||
var timeoutSeconds = len(b) / 4096
|
||||
if timeoutSeconds < 3 {
|
||||
timeoutSeconds = 3
|
||||
}
|
||||
_ = this.rawConn.SetWriteDeadline(time.Now().Add(time.Duration(timeoutSeconds) * time.Second)) // TODO 时间可以设置
|
||||
|
||||
@@ -134,6 +136,8 @@ func (this *ClientConn) Write(b []byte) (n int, err error) {
|
||||
|
||||
// 如果是写入超时,则立即关闭连接
|
||||
if err != nil && os.IsTimeout(err) {
|
||||
//logs.Println(this.RemoteAddr(), timeoutSeconds, "seconds", n, "bytes")
|
||||
|
||||
// TODO 考虑对多次慢连接的IP做出惩罚
|
||||
conn, ok := this.rawConn.(LingerConn)
|
||||
if ok {
|
||||
|
||||
Reference in New Issue
Block a user