Skip to content

Commit

Permalink
More instrumentation. (#24)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelquigley committed Jun 4, 2020
1 parent e9db5ed commit 3ee8119
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 5 deletions.
25 changes: 24 additions & 1 deletion protocol/westworld2/instrument.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
package westworld2

import "github.com/sirupsen/logrus"
import (
"github.com/sirupsen/logrus"
"net"
)

type instrument interface {
accepted(peer *net.UDPAddr)
wireMessageTx(wm *wireMessage)
wireMessageRx(wm *wireMessage)
unknownPeer(peer *net.UDPAddr)
readError(peer *net.UDPAddr, err error)
connectError(peer *net.UDPAddr, err error)
}

type loggerInstrument struct{}

func (self *loggerInstrument) accepted(peer *net.UDPAddr) {
logrus.Infof("accepted, peer [%s]", peer)
}

func (self *loggerInstrument) wireMessageRx(wm *wireMessage) {
logrus.Infof("<- [{%c},#%d,@%d] <-", self.symbol(wm.mt), wm.seq, wm.ack)
}
Expand All @@ -17,6 +28,18 @@ func (self *loggerInstrument) wireMessageTx(wm *wireMessage) {
logrus.Infof("-> [{%c},#%d,@%d] ->", self.symbol(wm.mt), wm.seq, wm.ack)
}

func (self *loggerInstrument) unknownPeer(peer *net.UDPAddr) {
logrus.Errorf("unknown peer [%s]", peer)
}

func (self *loggerInstrument) readError(peer *net.UDPAddr, err error) {
logrus.Errorf("read error, peer [%s] (%v)", peer, err)
}

func (self *loggerInstrument) connectError(peer *net.UDPAddr, err error) {
logrus.Errorf("connect failed, peer [%s] (%v)", peer, err)
}

func (self *loggerInstrument) symbol(mt messageType) rune {
switch mt {
case HELLO:
Expand Down
18 changes: 14 additions & 4 deletions protocol/westworld2/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,18 @@ func (self *listener) run() {
} else {
if wm.mt == HELLO {
go self.hello(wm, peer)

} else {
wm.buffer.unref()
logrus.Errorf("unknown peer [%s]", peer)
if self.ins != nil {
self.ins.unknownPeer(peer)
}
}
}
} else {
logrus.Errorf("read error, peer [%s] (%v)", peer, err)
if self.ins != nil {
self.ins.readError(peer, err)
}
}
}
}
Expand All @@ -89,12 +94,17 @@ func (self *listener) hello(hello *wireMessage, peer *net.UDPAddr) {
self.lock.Unlock()

if err := conn.hello(hello); err != nil {
logrus.Errorf("connect establishment failed, peer [%s] (%v)", peer, err)
if self.ins != nil {
self.ins.connectError(peer, err)
}
return
}

self.acceptQueue <- conn
logrus.Infof("accepted connection, peer [%s]", peer)

if self.ins != nil {
self.ins.accepted(peer)
}
}

func addrComparator(i, j interface{}) int {
Expand Down

0 comments on commit 3ee8119

Please sign in to comment.