summaryrefslogtreecommitdiffstats
path: root/libxrdp/xrdp_rdp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libxrdp/xrdp_rdp.c')
-rw-r--r--libxrdp/xrdp_rdp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libxrdp/xrdp_rdp.c b/libxrdp/xrdp_rdp.c
index 34842533..72562022 100644
--- a/libxrdp/xrdp_rdp.c
+++ b/libxrdp/xrdp_rdp.c
@@ -1107,6 +1107,24 @@ xrdp_rdp_send_disconnect_reason(struct xrdp_rdp *self, int reason)
#endif
/*****************************************************************************/
+static int APP_CC
+xrdp_rdp_process_frame_ack(struct xrdp_rdp *self, struct stream *s)
+{
+ int frame_id;
+
+ //g_writeln("xrdp_rdp_process_frame_ack:");
+ in_uint32_le(s, frame_id);
+ //g_writeln(" frame_id %d", frame_id);
+ if (self->session->callback != 0)
+ {
+ /* call to xrdp_wm.c : callback */
+ self->session->callback(self->session->id, 0x5557, frame_id, 0,
+ 0, 0);
+ }
+ return 0;
+}
+
+/*****************************************************************************/
/* RDP_PDU_DATA */
int APP_CC
xrdp_rdp_process_data(struct xrdp_rdp *self, struct stream *s)
@@ -1155,6 +1173,9 @@ xrdp_rdp_process_data(struct xrdp_rdp *self, struct stream *s)
case RDP_DATA_PDU_FONT2: /* 39(0x27) */
xrdp_rdp_process_data_font(self, s);
break;
+ case 56: /* PDUTYPE2_FRAME_ACKNOWLEDGE 0x38 */
+ xrdp_rdp_process_frame_ack(self, s);
+ break;
default:
g_writeln("unknown in xrdp_rdp_process_data %d", data_type);
break;