Use event logger for proxy starting message and NAT info

This commit is contained in:
itchyonion 2022-11-07 15:20:20 -08:00
parent 2f55581098
commit 768b80dbdf
No known key found for this signature in database
GPG key ID: 4B87B720348500EA
3 changed files with 21 additions and 2 deletions

View file

@ -58,6 +58,14 @@ func (e EventOnSnowflakeConnectionFailed) String() string {
return fmt.Sprintf("trying a new proxy: %s", scrubbed) return fmt.Sprintf("trying a new proxy: %s", scrubbed)
} }
type EventOnProxyStarting struct {
SnowflakeEvent
}
func (e EventOnProxyStarting) String() string {
return "Proxy starting"
}
type EventOnProxyConnectionOver struct { type EventOnProxyConnectionOver struct {
SnowflakeEvent SnowflakeEvent
InboundTraffic int InboundTraffic int
@ -68,6 +76,15 @@ func (e EventOnProxyConnectionOver) String() string {
return fmt.Sprintf("Proxy connection closed (↑ %d, ↓ %d)", e.InboundTraffic, e.OutboundTraffic) return fmt.Sprintf("Proxy connection closed (↑ %d, ↓ %d)", e.InboundTraffic, e.OutboundTraffic)
} }
type EventOnCurrentNATTypeDetermined struct {
SnowflakeEvent
CurNATType string
}
func (e EventOnCurrentNATTypeDetermined) String() string {
return fmt.Sprintf("NAT type: %v", e.CurNATType)
}
type SnowflakeEventReceiver interface { type SnowflakeEventReceiver interface {
// OnNewSnowflakeEvent notify receiver about a new event // OnNewSnowflakeEvent notify receiver about a new event
// This method MUST not block // This method MUST not block

View file

@ -33,6 +33,8 @@ func (p *logEventLogger) OnNewSnowflakeEvent(e event.SnowflakeEvent) {
p.inboundSum += e.InboundTraffic p.inboundSum += e.InboundTraffic
p.outboundSum += e.OutboundTraffic p.outboundSum += e.OutboundTraffic
p.connectionCount += 1 p.connectionCount += 1
default:
p.logger.Println(e.String())
} }
} }

View file

@ -566,7 +566,7 @@ func (sf *SnowflakeProxy) runSession(sid string) {
func (sf *SnowflakeProxy) Start() error { func (sf *SnowflakeProxy) Start() error {
var err error var err error
log.Println("starting") sf.EventDispatcher.OnNewSnowflakeEvent(event.EventOnProxyStarting{})
sf.shutdown = make(chan struct{}) sf.shutdown = make(chan struct{})
// blank configurations revert to default // blank configurations revert to default
@ -621,7 +621,7 @@ func (sf *SnowflakeProxy) Start() error {
currentNATTypeLoaded := getCurrentNATType() currentNATTypeLoaded := getCurrentNATType()
log.Printf("NAT type: %s", currentNATTypeLoaded) sf.EventDispatcher.OnNewSnowflakeEvent(&event.EventOnCurrentNATTypeDetermined{CurNATType: currentNATTypeLoaded})
NatRetestTask := task.Periodic{ NatRetestTask := task.Periodic{
Interval: sf.NATTypeMeasurementInterval, Interval: sf.NATTypeMeasurementInterval,