diff options
Diffstat (limited to 'xrdp/xrdp_mm.c')
| -rw-r--r-- | xrdp/xrdp_mm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index df9bddcd..b0a6ca5a 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -2175,6 +2175,7 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self) int cx; int cy; int use_frame_acks; + int ex; if (self == 0) { @@ -2279,6 +2280,19 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self) enc_done->enc->flags, enc_done->enc->frame_id); } + else + { + 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); + } + } + } g_free(enc_done->enc->drects); g_free(enc_done->enc->crects); g_free(enc_done->enc); |
