Hack to throttle data overrun (sender->rcvr) during large xc operations

Signed-off-by: Russ Magee <rmagee@gmail.com>
This commit is contained in:
Russ Magee 2020-01-30 21:14:35 -08:00
parent 977380e61f
commit 862c0c3d7f
1 changed files with 5 additions and 1 deletions

View File

@ -1319,7 +1319,11 @@ func (hc *Conn) WritePacket(b []byte, ctrlStatOp byte) (n int, err error) {
hc.wm.Write(b[0:payloadLen]) hc.wm.Write(b[0:payloadLen])
hmacOut = hc.wm.Sum(nil)[0:HMAC_CHK_SZ] hmacOut = hc.wm.Sum(nil)[0:HMAC_CHK_SZ]
log.Printf(" (%04x> HMAC(o):%s\r\n", payloadLen, hex.EncodeToString(hmacOut)) //log.Printf(" (%08x> HMAC(o):%s\r\n", payloadLen, hex.EncodeToString(hmacOut))
// HACK: Bug #22: (xc) Need flow control so sender can't overwhelm rcvr with data.
if payloadLen > 8192 {
time.Sleep(time.Duration(10 * time.Millisecond)) // Let rcvr set this on setup?
}
var wb bytes.Buffer var wb bytes.Buffer
// The StreamWriter acts like a pipe, forwarding whatever is // The StreamWriter acts like a pipe, forwarding whatever is