MCPcopy Create free account
hub / github.com/TigerVNC/tigervnc / processVersionMsg

Method processVersionMsg

java/com/tigervnc/rfb/CConnection.java:157–208  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

155 }
156
157 private void processVersionMsg()
158 {
159 ByteBuffer verStr = ByteBuffer.allocate(12);
160 int majorVersion;
161 int minorVersion;
162
163 vlog.debug("Reading protocol version");
164
165 if (!is.checkNoWait(12))
166 return;
167
168 is.readBytes(verStr, 12);
169
170 if ((new String(verStr.array())).matches("RFB \\d{3}\\.\\d{3}\\n")) {
171 majorVersion =
172 Integer.parseInt((new String(verStr.array())).substring(4,7));
173 minorVersion =
174 Integer.parseInt((new String(verStr.array())).substring(8,11));
175 } else {
176 state_ = stateEnum.RFBSTATE_INVALID;
177 throw new Exception("reading version failed: not an RFB server?");
178 }
179
180 server.setVersion(majorVersion, minorVersion);
181
182 vlog.info("Server supports RFB protocol version "
183 +server.majorVersion+"."+ server.minorVersion);
184
185 // The only official RFB protocol versions are currently 3.3, 3.7 and 3.8
186 if (server.beforeVersion(3,3)) {
187 String msg = ("Server gave unsupported RFB protocol version "+
188 server.majorVersion+"."+server.minorVersion);
189 vlog.error(msg);
190 state_ = stateEnum.RFBSTATE_INVALID;
191 throw new Exception(msg);
192 } else if (server.beforeVersion(3,7)) {
193 server.setVersion(3,3);
194 } else if (server.afterVersion(3,8)) {
195 server.setVersion(3,8);
196 }
197
198 verStr.clear();
199 verStr.put(String.format("RFB %03d.%03d\n",
200 server.majorVersion, server.minorVersion).getBytes()).flip();
201 os.writeBytes(verStr.array(), 0, 12);
202 os.flush();
203
204 state_ = stateEnum.RFBSTATE_SECURITY_TYPES;
205
206 vlog.info("Using RFB protocol version "+
207 server.majorVersion+"."+server.minorVersion);
208 }
209
210 private void processSecurityTypesMsg()
211 {

Callers 1

processMsgMethod · 0.95

Calls 13

debugMethod · 0.80
checkNoWaitMethod · 0.80
infoMethod · 0.80
errorMethod · 0.80
getBytesMethod · 0.80
clearMethod · 0.65
readBytesMethod · 0.45
setVersionMethod · 0.45
beforeVersionMethod · 0.45
afterVersionMethod · 0.45
putMethod · 0.45
writeBytesMethod · 0.45

Tested by

no test coverage detected