38 lines
876 B
Go
38 lines
876 B
Go
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
//go:build plus
|
|
|
|
package nodes
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeNode/internal/stats"
|
|
"sync/atomic"
|
|
)
|
|
|
|
type HTTP3ConnNotifier struct {
|
|
conn *HTTP3Conn
|
|
}
|
|
|
|
func NewHTTP3ConnNotifier(conn *HTTP3Conn) *HTTP3ConnNotifier {
|
|
return &HTTP3ConnNotifier{
|
|
conn: conn,
|
|
}
|
|
}
|
|
|
|
func (this *HTTP3ConnNotifier) ReadBytes(bytes int) {
|
|
|
|
}
|
|
|
|
func (this *HTTP3ConnNotifier) WriteBytes(bytes int) {
|
|
if this.conn != nil && this.conn.ServerId() > 0 {
|
|
stats.SharedBandwidthStatManager.AddBandwidth(this.conn.UserId(), this.conn.UserPlanId(), this.conn.ServerId(), int64(bytes), int64(bytes))
|
|
|
|
if this.conn.BaseClientConn != nil {
|
|
atomic.AddInt64(&this.conn.BaseClientConn.totalSentBytes, int64(bytes))
|
|
}
|
|
}
|
|
}
|
|
|
|
func (this *HTTP3ConnNotifier) Close() {
|
|
this.conn.NotifyClose()
|
|
}
|