forked from cwtch.im/cwtch
Adding RemotePeer Param to Ack Events
This commit is contained in:
parent
51d2c49c71
commit
29c5214552
|
@ -44,6 +44,7 @@ const (
|
||||||
// Peer acknowledges a previously sent message
|
// Peer acknowledges a previously sent message
|
||||||
// attributes
|
// attributes
|
||||||
// EventID: The original event id that the peer is responding too.
|
// EventID: The original event id that the peer is responding too.
|
||||||
|
// RemotePeer: The peer associated with the acknowledgement
|
||||||
PeerAcknowledgement = Type("PeerAcknowledgement")
|
PeerAcknowledgement = Type("PeerAcknowledgement")
|
||||||
|
|
||||||
// attributes:
|
// attributes:
|
||||||
|
|
|
@ -135,7 +135,7 @@ func (e *engine) eventHandler() {
|
||||||
func (e *engine) createPeerTemplate() *PeerApp {
|
func (e *engine) createPeerTemplate() *PeerApp {
|
||||||
peerAppTemplate := new(PeerApp)
|
peerAppTemplate := new(PeerApp)
|
||||||
peerAppTemplate.MessageHandler = e.handlePeerMessage
|
peerAppTemplate.MessageHandler = e.handlePeerMessage
|
||||||
peerAppTemplate.OnAcknowledgement = e.ignoreOnShutdown(e.peerAck)
|
peerAppTemplate.OnAcknowledgement = e.ignoreOnShutdown2(e.peerAck)
|
||||||
peerAppTemplate.OnAuth = e.ignoreOnShutdown(e.peerAuthed)
|
peerAppTemplate.OnAuth = e.ignoreOnShutdown(e.peerAuthed)
|
||||||
peerAppTemplate.OnConnecting = e.ignoreOnShutdown(e.peerConnecting)
|
peerAppTemplate.OnConnecting = e.ignoreOnShutdown(e.peerConnecting)
|
||||||
peerAppTemplate.OnClose = e.ignoreOnShutdown(e.peerDisconnected)
|
peerAppTemplate.OnClose = e.ignoreOnShutdown(e.peerDisconnected)
|
||||||
|
@ -170,7 +170,19 @@ func (e *engine) peerWithOnion(onion string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *engine) ignoreOnShutdown(f func(string)) func(string) {
|
func (e *engine) ignoreOnShutdown(f func(string)) func(string) {
|
||||||
return func (x string) {if !e.shuttingDown{f(x)} }
|
return func(x string) {
|
||||||
|
if !e.shuttingDown {
|
||||||
|
f(x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *engine) ignoreOnShutdown2(f func(string, string)) func(string, string) {
|
||||||
|
return func(x, y string) {
|
||||||
|
if !e.shuttingDown {
|
||||||
|
f(x, y)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *engine) peerAuthed(onion string) {
|
func (e *engine) peerAuthed(onion string) {
|
||||||
|
@ -187,9 +199,10 @@ func (e *engine) peerConnecting(onion string) {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *engine) peerAck(eventID string) {
|
func (e *engine) peerAck(onion string, eventID string) {
|
||||||
e.eventManager.Publish(event.NewEvent(event.PeerAcknowledgement, map[event.Field]string{
|
e.eventManager.Publish(event.NewEvent(event.PeerAcknowledgement, map[event.Field]string{
|
||||||
event.EventID: eventID,
|
event.EventID: eventID,
|
||||||
|
event.RemotePeer: onion,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ type PeerApp struct {
|
||||||
applications.AuthApp
|
applications.AuthApp
|
||||||
connection *tapir.Connection
|
connection *tapir.Connection
|
||||||
MessageHandler func(string, []byte)
|
MessageHandler func(string, []byte)
|
||||||
OnAcknowledgement func(string)
|
OnAcknowledgement func(string, string)
|
||||||
OnAuth func(string)
|
OnAuth func(string)
|
||||||
OnClose func(string)
|
OnClose func(string)
|
||||||
OnConnecting func(string)
|
OnConnecting func(string)
|
||||||
|
@ -64,7 +64,7 @@ func (pa PeerApp) listen() {
|
||||||
err := json.Unmarshal(message, &peerMessage)
|
err := json.Unmarshal(message, &peerMessage)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if peerMessage.Context == event.ContextAck {
|
if peerMessage.Context == event.ContextAck {
|
||||||
pa.OnAcknowledgement(peerMessage.ID)
|
pa.OnAcknowledgement(pa.connection.Hostname, peerMessage.ID)
|
||||||
} else {
|
} else {
|
||||||
pa.MessageHandler(pa.connection.Hostname, peerMessage.Data)
|
pa.MessageHandler(pa.connection.Hostname, peerMessage.Data)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue