summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_mm.c
diff options
context:
space:
mode:
Diffstat (limited to 'xrdp/xrdp_mm.c')
-rw-r--r--xrdp/xrdp_mm.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index bb6bc5d8..ea719417 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -2153,7 +2153,6 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self)
int cx;
int cy;
int use_frame_acks;
- int ex;
if (self == 0)
{
@@ -2258,21 +2257,6 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self)
enc_done->enc->flags,
enc_done->enc->frame_id);
}
- else
- {
-#if 1
- ex = self->wm->client_info->max_unacknowledged_frame_count;
- if (self->encoder->frame_id_client + ex > self->encoder->frame_id_server)
- {
- if (self->encoder->frame_id_server > self->encoder->frame_id_server_sent)
- {
- LLOGLN(10, ("xrdp_mm_check_wait_objs: 1 -- %d", self->encoder->frame_id_server));
- self->encoder->frame_id_server_sent = self->encoder->frame_id_server;
- self->mod->mod_frame_ack(self->mod, 0, self->encoder->frame_id_server);
- }
- }
-#endif
- }
g_free(enc_done->enc->drects);
g_free(enc_done->enc->crects);
g_free(enc_done->enc);
@@ -2296,14 +2280,16 @@ xrdp_mm_frame_ack(struct xrdp_mm *self, int frame_id)
{
int ex;
- LLOGLN(10, ("xrdp_mm_frame_ack:"));
+ LLOGLN(10, ("xrdp_mm_frame_ack: incoming %d, client %d, server %d", frame_id,
+ self->encoder->frame_id_client, self->encoder->frame_id_server));
self->encoder->frame_id_client = frame_id;
if (self->wm->client_info->use_frame_acks == 0)
{
return 1;
}
ex = self->wm->client_info->max_unacknowledged_frame_count;
- if (self->encoder->frame_id_client + ex > self->encoder->frame_id_server)
+ /* make sure we won't have too many in-flight frames */
+ if (self->encoder->frame_id_client + ex >= self->encoder->frame_id_server)
{
if (self->encoder->frame_id_server > self->encoder->frame_id_server_sent)
{