summaryrefslogtreecommitdiffstats
path: root/xorg
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2012-05-13 13:56:15 -0700
committerJay Sorg <jay.sorg@gmail.com>2012-05-13 13:56:15 -0700
commite0fc7297f5bd0c4297e6b6b8ca2d7cd80251b1c9 (patch)
treec59520c6fa41aede3b3e9940518474cade61dc56 /xorg
parent67bd319adf4fafabcb1ea9124b8d64209d3ebcf7 (diff)
downloadxrdp-proprietary-e0fc7297f5bd0c4297e6b6b8ca2d7cd80251b1c9.tar.gz
xrdp-proprietary-e0fc7297f5bd0c4297e6b6b8ca2d7cd80251b1c9.zip
pass the client_info(caps) on to module and xserver
Diffstat (limited to 'xorg')
-rw-r--r--xorg/X11R7.6/rdp/rdp.h3
-rw-r--r--xorg/X11R7.6/rdp/rdpup.c22
2 files changed, 24 insertions, 1 deletions
diff --git a/xorg/X11R7.6/rdp/rdp.h b/xorg/X11R7.6/rdp/rdp.h
index 9548f76b..98c0c067 100644
--- a/xorg/X11R7.6/rdp/rdp.h
+++ b/xorg/X11R7.6/rdp/rdp.h
@@ -70,6 +70,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "exevents.h"
#include "xserver-properties.h"
#include "xkbsrv.h"
+#include "../../../common/xrdp_client_info.h"
//#include "colormapst.h"
@@ -133,6 +134,8 @@ struct _rdpScreenInfoRec
int rdp_bpp;
int rdp_Bpp;
int rdp_Bpp_mask;
+
+ struct xrdp_client_info client_info;
};
typedef struct _rdpScreenInfoRec rdpScreenInfoRec;
typedef rdpScreenInfoRec* rdpScreenInfoPtr;
diff --git a/xorg/X11R7.6/rdp/rdpup.c b/xorg/X11R7.6/rdp/rdpup.c
index c0845a2e..338e0751 100644
--- a/xorg/X11R7.6/rdp/rdpup.c
+++ b/xorg/X11R7.6/rdp/rdpup.c
@@ -413,6 +413,7 @@ rdpup_process_msg(struct stream* s)
int param2;
int param3;
int param4;
+ int bytes;
in_uint16_le(s, msg_type);
if (msg_type == 103)
@@ -494,9 +495,28 @@ param4 %d\n", msg, param1, param2, param3, param4));
break;
}
}
+ else if (msg_type == 104)
+ {
+ in_uint32_le(s, bytes);
+ if (bytes > sizeof(g_rdpScreen.client_info))
+ {
+ bytes = sizeof(g_rdpScreen.client_info);
+ }
+ memcpy(&(g_rdpScreen.client_info), s->p - 4, bytes);
+ g_rdpScreen.client_info.size = bytes;
+ ErrorF("rdpup_process_msg: got client info bytes %d\n", bytes);
+ ErrorF(" jpeg support %d\n",
+ g_rdpScreen.client_info.jpeg);
+ ErrorF(" offscreen support %d\n",
+ g_rdpScreen.client_info.offscreen_support_level);
+ ErrorF(" offscreen size %d\n",
+ g_rdpScreen.client_info.offscreen_cache_size);
+ ErrorF(" offscreen entries %d\n",
+ g_rdpScreen.client_info.offscreen_cache_entries);
+ }
else
{
- rdpLog("unknown message type in rdpup_process_msg\n");
+ rdpLog("unknown message type in rdpup_process_msg %d\n", msg_type);
}
return 0;
}