control/noise: make Conn.readNLocked less surprising.

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson 2021-10-25 17:37:10 -07:00 committed by Dave Anderson
parent a34350ffda
commit 5b94f67956

View File

@ -87,7 +87,7 @@ func (c *Conn) Peer() key.MachinePublic {
}
// readNLocked reads into c.rx.buf until buf contains at least total
// bytes. Returns a slice of the available bytes in rxBuf, or an
// bytes. Returns a slice of the total bytes in rxBuf, or an
// error if fewer than total bytes are available.
func (c *Conn) readNLocked(total int) ([]byte, error) {
if total > maxMessageSize {
@ -95,7 +95,7 @@ func (c *Conn) readNLocked(total int) ([]byte, error) {
}
for {
if total <= c.rx.n {
return c.rx.buf[:c.rx.n], nil
return c.rx.buf[:total], nil
}
n, err := c.conn.Read(c.rx.buf[c.rx.n:])
@ -202,7 +202,6 @@ func (c *Conn) decryptOneLocked() error {
if err != nil {
return err
}
bs = bs[:messageLen]
c.rx.next = len(bs)