Mercurial > hg > Members > riono > TreeVNC_ja_comment
diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 412:372532ae5f4d
Add ErrorAnnounce
author | innparusu |
---|---|
date | Thu, 19 Nov 2015 16:53:50 +0900 |
parents | cdab1354e227 |
children | 3af5f4af2d63 |
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Thu Nov 19 15:42:08 2015 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Thu Nov 19 16:53:50 2015 +0900 @@ -305,7 +305,7 @@ context.setFbHeight(rect.height); repaintController.updateRemoteDesktopName(context); reader.reset(); - // All children multicastqueue should be discarded hear. + // All children multicastqueue should be discarded here. // rfb.clearChildrenTransmission(); rfb.readSendData(length + 20, reader, null, rect); // size of UpdateRectangleMessage with initData. short id = (short) rect.x; @@ -335,6 +335,20 @@ sendCheckDelayReply(rect.time, port, address); } else if (rect.getEncodingType() == EncodingType.SOUND) { // SOUNDを受信した時の処理を + } else if (rect.getEncodingType() == EncodingType.ERROR_ANNOUNCE) { + short id = (short) rect.x; + int length = reader.readInt32(); + byte[] errorMessage = new byte[length]; + reader.read(errorMessage); + String errorMessageStr = new String(errorMessage, "UTF-8"); + if (id == rfb.getId()) { + rfb.getViewer().getConnectionPresenter().showConnectionErrorDialog(errorMessageStr); + rfb.getViewer().getConnectionPresenter().clearMessage(); + } + if (!rfb.hasParent()) { + reader.reset(); + rfb.readSendData(length + 20, reader, null, rect); + } } else throw new CommonException("Unprocessed encoding: " + rect.toString()); }