lib/rex/proto/rfb/client.rb in rex-2.0.8 vs lib/rex/proto/rfb/client.rb in rex-2.0.9
- old
+ new
@@ -22,11 +22,11 @@
def initialize(sock, opts = {})
@sock = sock
@opts = opts
@banner = nil
- @majver = MajorVersion
+ @majver = MajorVersions
@minver = -1
@auth_types = []
end
def read_error_message
@@ -48,21 +48,26 @@
# RFB Protocol Version 3.7 (2003-08)
# RFB Protocol Version 3.8 (2007-06)
if @banner =~ /RFB ([0-9]{3})\.([0-9]{3})/
maj = $1.to_i
- if maj != MajorVersion
+ unless MajorVersions.include?(maj)
@error = "Invalid major version number: #{maj}"
return false
end
else
@error = "Invalid RFB banner: #{@banner}"
return false
end
@minver = $2.to_i
- our_ver = "RFB %03d.%03d\n" % [MajorVersion, @minver]
+ # Forces version 3 to be used. This adds support for version 4 servers.
+ # It may be necessary to hardcode minver as well.
+ # TODO: Add support for Version 4.
+ # Version 4 adds additional information to the packet regarding supported
+ # authentication types.
+ our_ver = "RFB %03d.%03d\n" % [3, @minver]
@sock.put(our_ver)
true
end