Skip to content

Commit

Permalink
introduce a simple batcher, simplify mapresponsing
Browse files Browse the repository at this point in the history
Signed-off-by: Kristoffer Dalby <[email protected]>
  • Loading branch information
kradalby committed Mar 1, 2024
1 parent 48993bb commit 93e1934
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions hscontrol/poll.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,12 +201,12 @@ func (m *mapSession) serve() {

// true means changed, false means removed
var changed map[types.NodeID]bool
var messages []string
var derp bool

// Set full to true to immediatly send a full mapresponse
full := true
prev := time.Now()
lastMessage := ""

// Loop through updates and continuously send them to the
// client.
Expand Down Expand Up @@ -234,13 +234,13 @@ func (m *mapSession) serve() {
m.tracef("Sending DERPUpdate MapResponse")
data, err = m.mapper.DERPMapResponse(m.req, m.node, m.h.DERPMap)
} else {
m.tracef(fmt.Sprintf("Sending Changed MapResponse: %v", messages))
data, err = m.mapper.PeerChangedResponse(m.req, m.node, changed, m.h.ACLPolicy, messages...)
m.tracef(fmt.Sprintf("Sending Changed MapResponse: %v", lastMessage))
data, err = m.mapper.PeerChangedResponse(m.req, m.node, changed, m.h.ACLPolicy, lastMessage)
}

// reset
changed = nil
messages = nil
lastMessage = ""
full = false
derp = false
prev = time.Now()
Expand Down Expand Up @@ -297,16 +297,19 @@ func (m *mapSession) serve() {
if changed == nil {
changed = make(map[types.NodeID]bool)
}

for _, nodeID := range update.ChangeNodes {
changed[nodeID] = true
}
messages = append(messages, update.Message)

lastMessage = update.Message
case types.StatePeerChangedPatch:
// TODO(kradalby):
case types.StatePeerRemoved:
if changed == nil {
changed = make(map[types.NodeID]bool)
}

for _, nodeID := range update.Removed {
changed[nodeID] = false
}
Expand All @@ -315,7 +318,8 @@ func (m *mapSession) serve() {
if changed == nil {
changed = make(map[types.NodeID]bool)
}
messages = append(messages, update.Message)

lastMessage = update.Message
case types.StateDERPUpdated:
derp = true
}
Expand Down

0 comments on commit 93e1934

Please sign in to comment.