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
// 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);
+ }
}
}
}