Understand server name _correctly_ this time (we hope :-P), initial "parsing" of...
authorSteinar H. Gunderson <sesse@samfundet.no>
Fri, 4 Feb 2005 16:12:30 +0000 (16:12 +0000)
committerSteinar H. Gunderson <sesse@samfundet.no>
Fri, 4 Feb 2005 16:12:30 +0000 (16:12 +0000)
rdpsrv.c

index 9b198ef..b8bc56a 100644 (file)
--- 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);
+                       }
                }
        }
 }