(c *connIO, logger slog.Logger, h *heartbeats)
| 725 | } |
| 726 | |
| 727 | func newMapper(c *connIO, logger slog.Logger, h *heartbeats) *mapper { |
| 728 | logger = logger.With( |
| 729 | slog.F("peer_id", c.UniqueID()), |
| 730 | ) |
| 731 | m := &mapper{ |
| 732 | ctx: c.peerCtx, // mapper has same lifetime as the underlying connection it serves |
| 733 | logger: logger, |
| 734 | c: c, |
| 735 | update: make(chan struct{}), |
| 736 | mappings: make(chan []mapping), |
| 737 | heartbeats: h, |
| 738 | sent: make(map[uuid.UUID]mapping), |
| 739 | } |
| 740 | go m.run() |
| 741 | return m |
| 742 | } |
| 743 | |
| 744 | func (m *mapper) run() { |
| 745 | for { |