From 7df14c250a7cc36f89a8d348cd0af833a85d58dc Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 4 Feb 2005 16:12:30 +0000 Subject: [PATCH] Understand server name _correctly_ this time (we hope :-P), initial "parsing" of VNC server messages. --- rdpsrv.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/rdpsrv.c b/rdpsrv.c index 9b198ef..b8bc56a 100644 --- a/rdpsrv.c +++ b/rdpsrv.c @@ -138,10 +138,10 @@ int vnc_init() printf("Server is %u x %u\n", ntohs(si.width), ntohs(si.height)); - if (read(vnc_sock, buf, ntohs(si.name_len)) != ntohs(si.name_len)) + if (read(vnc_sock, buf, ntohl(si.name_len)) != ntohl(si.name_len)) error("short read on server name\n"); - printf("Server name is '%*s'\n", ntohs(si.name_len), buf); + printf("Server name is '%*s' (%u bytes)\n", ntohl(si.name_len), buf, ntohl(si.name_len)); // we can only accept raw encoding buf[0] = 2; // message type @@ -215,7 +215,17 @@ int serve_client() // activity on VNC socket? if (FD_ISSET(vnc_sock, &readfs)) { - printf("Activity on VNC socket!\n"); + char buf[256]; + read(vnc_sock, buf, 1); + switch (buf[0]) { + case 0: + // frame buffer update! + printf("Frame buffer update\n"); + break; + default: + printf("Unknown server message %x\n", buf[0]); + exit(1); + } } } } -- 2.39.5