diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2012-04-14 18:19:43 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2012-04-14 18:19:43 -0700 |
commit | ff6e8a12329016cb426640670047eb679403c62c (patch) | |
tree | bd443d70c415a4249419e686949e7ab232ca7dac /xup/xup.c | |
parent | 6333cdd86564f103d1e500e9c2857663d8c68f81 (diff) | |
download | xrdp-proprietary-ff6e8a12329016cb426640670047eb679403c62c.tar.gz xrdp-proprietary-ff6e8a12329016cb426640670047eb679403c62c.zip |
xorg: added start of X11rdp / xup caps
Diffstat (limited to 'xup/xup.c')
-rw-r--r-- | xup/xup.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -223,6 +223,24 @@ lib_mod_connect(struct mod* mod) } if (error == 0) { + /* send version message */ + init_stream(s, 8192); + s_push_layer(s, iso_hdr, 4); + out_uint16_le(s, 103); + out_uint32_le(s, 301); + out_uint32_le(s, 0); + out_uint32_le(s, 0); + out_uint32_le(s, 0); + out_uint32_le(s, 1); + s_mark_end(s); + len = (int)(s->end - s->data); + s_pop_layer(s, iso_hdr); + out_uint32_le(s, len); + lib_send(mod, s->data, len); + } + if (error == 0) + { + /* send screen size message */ init_stream(s, 8192); s_push_layer(s, iso_hdr, 4); out_uint16_le(s, 103); @@ -239,6 +257,7 @@ lib_mod_connect(struct mod* mod) } if (error == 0) { + /* send invalidate message */ init_stream(s, 8192); s_push_layer(s, iso_hdr, 4); out_uint16_le(s, 103); @@ -367,6 +386,7 @@ lib_mod_signal(struct mod* mod) int y1; int x2; int y2; + char* phold; char* bmpdata; char cur_data[32 * (32 * 3)]; char cur_mask[32 * (32 / 8)]; @@ -476,6 +496,32 @@ lib_mod_signal(struct mod* mod) } } } + else if (type == 2) /* caps */ + { + g_writeln("lib_mod_signal: type 2 len %d\n", len); + init_stream(s, len); + rv = lib_recv(mod, s->data, len); + if (rv == 0) + { + for (index = 0; index < num_orders; index++) + { + phold = s->p; + in_uint16_le(s, type); + in_uint16_le(s, len); + switch (type) + { + default: + g_writeln("lib_mod_signal: unknown cap type %d len %d", type, len); + break; + } + s->p = phold + len; + } + } + } + else + { + g_writeln("unknown type %d", type); + } } free_stream(s); LIB_DEBUG(mod, "out lib_mod_signal"); |