Add a one-packet "stash" to QueuePacketConn.
commit938463ce0756a6054575e0d7666da1643de8c417
authorDavid Fifield <david@bamsoftware.com>
Thu, 30 Apr 2020 05:06:27 +0000 (29 23:06 -0600)
committerDavid Fifield <david@bamsoftware.com>
Thu, 30 Apr 2020 05:06:27 +0000 (29 23:06 -0600)
tree0b528ce4547ca7cf475c3bd0633b67bb776d6aaf
parent8526369e6556f14d7b0cb10eb97276d94584a94d
Add a one-packet "stash" to QueuePacketConn.

I want a way to "unread" a packet from an send queue, in the case where
I'm packing packets into a fixed space and don't know when I'm done
until I've read one too many packets. There's no way to insert the extra
packet at the head of the cannel representing the send queue, so that it
will be the next thing received from OutgoingQueue. Instead, add an
separate one-element queue called the stash. The caller can stash an
excess packet, then prioritize checking it in the next round by calling
Unstash before OutgoingQueue.
turbotunnel/queuepacketconn.go
turbotunnel/remotemap.go