mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
We must ensure we don't get flooded with ping replies if the outbound channel is slow. Currently we do this by keeping the ping reply in a separate temporary buffer and only writing it if the encoutput buffer is completely empty. This is overly pessimistic, as it is reasonable to add a ping reply to the encoutput buffer even if it has previous data in it, as long as that previous data doesn't include a ping reply. To track this better, put the ping reply directly into the encoutput buffer, and then record the size of encoutput at this time in pong_remain. As we write encoutput to the underlying channel, we can decrement the pong_remain counter. Once it hits zero, we can accept further ping replies for transmission. Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||
|---|---|---|
| .. | ||
| channel-buffer.c | ||
| channel-command.c | ||
| channel-file.c | ||
| channel-socket.c | ||
| channel-tls.c | ||
| channel-util.c | ||
| channel-watch.c | ||
| channel-websock.c | ||
| channel.c | ||
| dns-resolver.c | ||
| Makefile.objs | ||
| task.c | ||
| trace-events | ||