CVS: rdesktop seamless.c,1.1.2.15,1.1.2.16
Pierre Ossman <[email protected]> Mon, 20 Mar 2006 02:32:00 -0800
| Newsgroups | gmane.network.rdesktop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/rdesktop/rdesktop
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29290
Modified Files:
Tag: seamlessrdp-branch
seamless.c
Log Message:
Add serial numbers to protocol.
Index: seamless.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/Attic/seamless.c,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.16
diff -C2 -d -r1.1.2.15 -r1.1.2.16
*** seamless.c 17 Mar 2006 12:39:09 -0000 1.1.2.15
--- seamless.c 20 Mar 2006 10:31:58 -0000 1.1.2.16
***************
*** 21,24 ****
--- 21,25 ----
#include "rdesktop.h"
#include <stdarg.h>
+ #include <assert.h>
/* #define WITH_DEBUG_SEAMLESS */
***************
*** 32,35 ****
--- 33,37 ----
extern BOOL g_seamless_rdp;
static VCHANNEL *seamless_channel;
+ static unsigned int seamless_serial;
static char *
***************
*** 82,97 ****
{
unsigned long parent;
! if (!tok4)
return False;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! parent = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
--- 84,99 ----
{
unsigned long parent;
! if (!tok5)
return False;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! parent = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok5, &endptr, 0);
if (*endptr)
return False;
***************
*** 101,112 ****
else if (!strcmp("DESTROY", tok1))
{
! if (!tok3)
return False;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
--- 103,114 ----
else if (!strcmp("DESTROY", tok1))
{
! if (!tok4)
return False;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
***************
*** 123,148 ****
int x, y, width, height;
! if (!tok7)
return False;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! x = strtol(tok3, &endptr, 0);
if (*endptr)
return False;
! y = strtol(tok4, &endptr, 0);
if (*endptr)
return False;
! width = strtol(tok5, &endptr, 0);
if (*endptr)
return False;
! height = strtol(tok6, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok7, &endptr, 0);
if (*endptr)
return False;
--- 125,150 ----
int x, y, width, height;
! if (!tok8)
return False;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! x = strtol(tok4, &endptr, 0);
if (*endptr)
return False;
! y = strtol(tok5, &endptr, 0);
if (*endptr)
return False;
! width = strtol(tok6, &endptr, 0);
if (*endptr)
return False;
! height = strtol(tok7, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok8, &endptr, 0);
if (*endptr)
return False;
***************
*** 154,166 ****
unsigned long behind;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! behind = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
--- 156,168 ----
unsigned long behind;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! behind = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok5, &endptr, 0);
if (*endptr)
return False;
***************
*** 170,185 ****
else if (!strcmp("TITLE", tok1))
{
! if (!tok4)
return False;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
! ui_seamless_settitle(id, tok3, flags);
}
else if (!strcmp("STATE", tok1))
--- 172,187 ----
else if (!strcmp("TITLE", tok1))
{
! if (!tok5)
return False;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok5, &endptr, 0);
if (*endptr)
return False;
! ui_seamless_settitle(id, tok4, flags);
}
else if (!strcmp("STATE", tok1))
***************
*** 187,202 ****
unsigned int state;
! if (!tok4)
return False;
! id = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
! state = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
--- 189,204 ----
unsigned int state;
! if (!tok5)
return False;
! id = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
! state = strtoul(tok4, &endptr, 0);
if (*endptr)
return False;
! flags = strtoul(tok5, &endptr, 0);
if (*endptr)
return False;
***************
*** 210,217 ****
else if (!strcmp("SYNCBEGIN", tok1))
{
! if (!tok2)
return False;
! flags = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
--- 212,219 ----
else if (!strcmp("SYNCBEGIN", tok1))
{
! if (!tok3)
return False;
! flags = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
***************
*** 221,228 ****
else if (!strcmp("SYNCEND", tok1))
{
! if (!tok2)
return False;
! flags = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
--- 223,230 ----
else if (!strcmp("SYNCEND", tok1))
{
! if (!tok3)
return False;
! flags = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
***************
*** 232,239 ****
else if (!strcmp("HELLO", tok1))
{
! if (!tok2)
return False;
! flags = strtoul(tok2, &endptr, 0);
if (*endptr)
return False;
--- 234,241 ----
else if (!strcmp("HELLO", tok1))
{
! if (!tok3)
return False;
! flags = strtoul(tok3, &endptr, 0);
if (*endptr)
return False;
***************
*** 287,290 ****
--- 289,294 ----
return False;
+ seamless_serial = 0;
+
seamless_channel =
channel_register("seamrdp", CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_ENCRYPT_RDP,
***************
*** 295,312 ****
static void
! seamless_send(const char *format, ...)
{
STREAM s;
size_t len;
va_list argp;
! char buf[1024];
va_start(argp, format);
! len = vsnprintf(buf, sizeof(buf), format, argp);
va_end(argp);
s = channel_init(seamless_channel, len);
out_uint8p(s, buf, len) s_mark_end(s);
DEBUG_SEAMLESS(("SeamlessRDP sending:%s", buf));
--- 299,327 ----
static void
! seamless_send(const char *command, const char *format, ...)
{
STREAM s;
size_t len;
va_list argp;
! char buf[1025];
!
! len = snprintf(buf, sizeof(buf) - 1, "%s,%u,", command, seamless_serial);
!
! assert(len < (sizeof(buf) - 1));
va_start(argp, format);
! len += vsnprintf(buf + len, sizeof(buf) - len - 1, format, argp);
va_end(argp);
+ assert(len < (sizeof(buf) - 1));
+
+ buf[len] = '\n';
+ buf[len + 1] = '\0';
+
s = channel_init(seamless_channel, len);
out_uint8p(s, buf, len) s_mark_end(s);
+ seamless_serial++;
+
DEBUG_SEAMLESS(("SeamlessRDP sending:%s", buf));
***************
*** 326,330 ****
return;
! seamless_send("SYNC\n");
}
--- 341,345 ----
return;
! seamless_send("SYNC", "");
}
***************
*** 336,340 ****
return;
! seamless_send("STATE,0x%08lx,0x%x,0x%lx\n", id, state, flags);
}
--- 351,355 ----
return;
! seamless_send("STATE", "0x%08lx,0x%x,0x%lx", id, state, flags);
}
***************
*** 343,347 ****
seamless_send_position(unsigned long id, int x, int y, int width, int height, unsigned long flags)
{
! seamless_send("POSITION,0x%08lx,%d,%d,%d,%d,0x%lx\n", id, x, y, width, height, flags);
}
--- 358,362 ----
seamless_send_position(unsigned long id, int x, int y, int width, int height, unsigned long flags)
{
! seamless_send("POSITION", "0x%08lx,%d,%d,%d,%d,0x%lx", id, x, y, width, height, flags);
}
***************
*** 363,367 ****
}
-
void
seamless_send_zchange(unsigned long id, unsigned long below, unsigned long flags)
--- 378,381 ----
***************
*** 370,374 ****
return;
! seamless_send("ZCHANGE,0x%08lx,0x%08lx,0x%lx\n", id, below, flags);
}
--- 384,388 ----
return;
! seamless_send("ZCHANGE", "0x%08lx,0x%08lx,0x%lx", id, below, flags);
}
***************
*** 380,383 ****
return;
! seamless_send("FOCUS,0x%08lx,0x%lx\n", id, flags);
}
--- 394,397 ----
return;
! seamless_send("FOCUS", "0x%08lx,0x%lx", id, flags);
}
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642