summaryrefslogtreecommitdiffstats
path: root/libxrdp/xrdp_caps.c
diff options
context:
space:
mode:
authorspeidy <speidy@gmail.com>2014-03-13 00:21:29 +0200
committerspeidy <speidy@gmail.com>2014-03-13 00:21:29 +0200
commit8372cce84d7b507484a8cd3ececaf2935c6580f2 (patch)
tree3aab97012d47d7f6ee9b92bb7894210050527a08 /libxrdp/xrdp_caps.c
parent744cdf9da1ae7cd4da4f8d01ae0f1cb448b9b071 (diff)
downloadxrdp-proprietary-8372cce84d7b507484a8cd3ececaf2935c6580f2.tar.gz
xrdp-proprietary-8372cce84d7b507484a8cd3ececaf2935c6580f2.zip
o libxrdp: fastpath output, added cursor and palette now updates
o xrdp.ini: changed default behavior: always new cursors, always use fastpath input and output.
Diffstat (limited to 'libxrdp/xrdp_caps.c')
-rw-r--r--libxrdp/xrdp_caps.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/libxrdp/xrdp_caps.c b/libxrdp/xrdp_caps.c
index d9e39c71..d82023c8 100644
--- a/libxrdp/xrdp_caps.c
+++ b/libxrdp/xrdp_caps.c
@@ -23,6 +23,46 @@
/*****************************************************************************/
static int APP_CC
+xrdp_caps_send_monitorlayout(struct xrdp_rdp *self)
+{
+ struct stream *s;
+ int i;
+
+ make_stream(s);
+ init_stream(s, 8192);
+
+ if (xrdp_rdp_init_data(self, s) != 0)
+ {
+ free_stream(s);
+ return 1;
+ }
+
+ out_uint32_le(s, self->client_info.monitorCount); /* MonitorCount */
+
+ /* TODO: validate for allowed monitors in terminal server (maybe by config?) */
+ for (i = 0; i < self->client_info.monitorCount; i++)
+ {
+ out_uint32_le(s, self->client_info.minfo[i].left);
+ out_uint32_le(s, self->client_info.minfo[i].top);
+ out_uint32_le(s, self->client_info.minfo[i].right);
+ out_uint32_le(s, self->client_info.minfo[i].bottom);
+ out_uint32_le(s, self->client_info.minfo[i].is_primary);
+ }
+
+ s_mark_end(s);
+
+ if (xrdp_rdp_send_data(self, s, 0x37) != 0)
+ {
+ free_stream(s);
+ return 1;
+ }
+
+ free_stream(s);
+ return 0;
+}
+
+/*****************************************************************************/
+static int APP_CC
xrdp_caps_process_general(struct xrdp_rdp *self, struct stream *s,
int len)
{
@@ -867,43 +907,3 @@ xrdp_caps_send_demand_active(struct xrdp_rdp *self)
free_stream(s);
return 0;
}
-
-/*****************************************************************************/
-int APP_CC
-xrdp_caps_send_monitorlayout(struct xrdp_rdp *self)
-{
- struct stream *s;
- int i;
-
- make_stream(s);
- init_stream(s, 8192);
-
- if (xrdp_rdp_init_data(self, s) != 0)
- {
- free_stream(s);
- return 1;
- }
-
- out_uint32_le(s, self->client_info.monitorCount); /* MonitorCount */
-
- /* TODO: validate for allowed monitors in terminal server (maybe by config?) */
- for (i = 0; i < self->client_info.monitorCount; i++)
- {
- out_uint32_le(s, self->client_info.minfo[i].left);
- out_uint32_le(s, self->client_info.minfo[i].top);
- out_uint32_le(s, self->client_info.minfo[i].right);
- out_uint32_le(s, self->client_info.minfo[i].bottom);
- out_uint32_le(s, self->client_info.minfo[i].is_primary);
- }
-
- s_mark_end(s);
-
- if (xrdp_rdp_send_data(self, s, 0x37) != 0)
- {
- free_stream(s);
- return 1;
- }
-
- free_stream(s);
- return 0;
-}