# HG changeset patch # User e085711 # Date 1309917404 -32400 # Node ID b16072ddc911c25f0627a1dec813a04255fe6fc8 # Parent ff1d1f236c8aa6642a43fc7137413d69fd38ed89 modify MyRfbProto.java acceptThread.java diff -r ff1d1f236c8a -r b16072ddc911 src/myVncProxy/MyRfbProto.java --- a/src/myVncProxy/MyRfbProto.java Fri Jun 24 02:25:04 2011 +0900 +++ b/src/myVncProxy/MyRfbProto.java Wed Jul 06 10:56:44 2011 +0900 @@ -192,6 +192,30 @@ void sendRfbVersion(OutputStream os) throws IOException{ os.write(versionMsg_3_998.getBytes()); } + void readVersionMsg(InputStream is) throws IOException { + + byte[] b = new byte[12]; + + is.read(b); + + if ((b[0] != 'R') || (b[1] != 'F') || (b[2] != 'B') || (b[3] != ' ') + || (b[4] < '0') || (b[4] > '9') || (b[5] < '0') || (b[5] > '9') + || (b[6] < '0') || (b[6] > '9') || (b[7] != '.') + || (b[8] < '0') || (b[8] > '9') || (b[9] < '0') || (b[9] > '9') + || (b[10] < '0') || (b[10] > '9') || (b[11] != '\n')) { + throw new IOException("Host " + host + " port " + port + + " is not an RFB server"); + } + + serverMajor = (b[4] - '0') * 100 + (b[5] - '0') * 10 + (b[6] - '0'); + serverMinor = (b[8] - '0') * 100 + (b[9] - '0') * 10 + (b[10] - '0'); + + if (serverMajor < 3) { + throw new IOException( + "RFB server does not support protocol version 3"); + } + + } void sendSecurityType(OutputStream os) throws IOException { // number-of-security-types os.write(1); diff -r ff1d1f236c8a -r b16072ddc911 src/myVncProxy/VncProxyService.java --- a/src/myVncProxy/VncProxyService.java Fri Jun 24 02:25:04 2011 +0900 +++ b/src/myVncProxy/VncProxyService.java Wed Jul 06 10:56:44 2011 +0900 @@ -117,10 +117,10 @@ try { // connectAndAuthenticate(); doProtocolInitialisation(); - +/* htmlFile = new CreateHtmlFile(rfb, host, username); htmlFile.createHtml(); - +*/ vc = new ProxyVncCanvas(this, 0, 0); vc.updateFramebufferSize(); diff -r ff1d1f236c8a -r b16072ddc911 src/myVncProxy/acceptThread.java --- a/src/myVncProxy/acceptThread.java Fri Jun 24 02:25:04 2011 +0900 +++ b/src/myVncProxy/acceptThread.java Wed Jul 06 10:56:44 2011 +0900 @@ -19,6 +19,7 @@ OutputStream os = newCli.getOutputStream(); InputStream is = newCli.getInputStream(); rfb.sendRfbVersion(os); + rfb.readVersionMsg(is); rfb.sendSecurityType(os); rfb.readClientInit(is); rfb.sendInitData(os);