mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
29 lines
743 B
Go
29 lines
743 B
Go
package snowflake_proxy
|
|
|
|
import (
|
|
"gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/event"
|
|
)
|
|
|
|
type EventCollector interface {
|
|
TrackInBoundTraffic(value int64)
|
|
TrackOutBoundTraffic(value int64)
|
|
TrackNewConnection()
|
|
}
|
|
|
|
type EventMetrics struct {
|
|
collector EventCollector
|
|
}
|
|
|
|
func NewEventMetrics(collector EventCollector) *EventMetrics {
|
|
return &EventMetrics{collector: collector}
|
|
}
|
|
|
|
func (em *EventMetrics) OnNewSnowflakeEvent(e event.SnowflakeEvent) {
|
|
switch e.(type) {
|
|
case event.EventOnProxyConnectionOver:
|
|
e := e.(event.EventOnProxyConnectionOver)
|
|
em.collector.TrackInBoundTraffic(e.InboundTraffic)
|
|
em.collector.TrackOutBoundTraffic(e.OutboundTraffic)
|
|
em.collector.TrackNewConnection()
|
|
}
|
|
}
|