vncdotool icon indicating copy to clipboard operation
vncdotool copied to clipboard

vnclog crashes log if upstream server require password

Open yonixw opened this issue 2 years ago • 0 comments

Please include the following information:

vncdotool version

  • vncdo 1.1.0 installed with:
  • Python 3.10.6

VNC server and version TightVNC - 2.8.81 (windows) (link)

But also on these old ones:

  • x11vnc: 0.9.16 lastmod: 2019-01-05 (linux/docker) (link)
  • Xvnc TigerVNC 1.7.0 - built Dec 5 2017 09:25:01 (linux/docker)

Steps to reproduce

  • vnclog -v -v -v -v -s 127.0.0.1::5900 --listen 6000 --forever record-vnc
  • Try to connect to the port of vnclog (6000) when the upstream vnc server (5900) is password protected
    • vncdo --server 127.0.0.1::6000 type 1

GIF: ezgif com-gif-maker

Expected result

vnclog to save recorded actions to file.

Which erroneous result did you get instead

INFO:vncdotool.loggingproxy:new connection from 127.0.0.1
INFO:twisted:Starting factory <vncdotool.loggingproxy.VNCLoggingClientFactory object at 0x00000149507C0250>
DEBUG:vncdotool.loggingproxy:Client selected <AuthTypes.VNC_AUTHENTICATION: 2>
DEBUG:vncdotool.loggingproxy:Client shares: 93
DEBUG:vncdotool.loggingproxy:Unhandled response '<MsgC2S.UNKNOWN: ce>'
Unhandled Error
Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\twisted\python\log.py", line 96, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\log.py", line 80, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\context.py", line 117, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\context.py", line 82, in callWithContext
    return func(*args, **kw)
--- <exception caught here> ---
  File "C:\Python310\lib\site-packages\twisted\internet\selectreactor.py", line 148, in _doReadOrWrite
    why = getattr(selectable, method)()
  File "C:\Python310\lib\site-packages\twisted\internet\tcp.py", line 248, in doRead
    return self._dataReceived(data)
  File "C:\Python310\lib\site-packages\twisted\internet\tcp.py", line 253, in _dataReceived
    rval = self.protocol.dataReceived(data)
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 282, in dataReceived
    RFBServer.dataReceived(self, data)
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 92, in dataReceived
    self._handler[0]()
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 169, in _handle_protocol
    raise ProtocolError(ptype)
vncdotool.loggingproxy.ProtocolError: 206

CRITICAL:twisted:Unhandled Error
Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\twisted\python\log.py", line 96, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\log.py", line 80, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\context.py", line 117, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "C:\Python310\lib\site-packages\twisted\python\context.py", line 82, in callWithContext
    return func(*args, **kw)
--- <exception caught here> ---
  File "C:\Python310\lib\site-packages\twisted\internet\selectreactor.py", line 148, in _doReadOrWrite
    why = getattr(selectable, method)()
  File "C:\Python310\lib\site-packages\twisted\internet\tcp.py", line 248, in doRead
    return self._dataReceived(data)
  File "C:\Python310\lib\site-packages\twisted\internet\tcp.py", line 253, in _dataReceived
    rval = self.protocol.dataReceived(data)
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 282, in dataReceived
    RFBServer.dataReceived(self, data)
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 92, in dataReceived
    self._handler[0]()
  File "C:\Python310\lib\site-packages\vncdotool\loggingproxy.py", line 169, in _handle_protocol
    raise ProtocolError(ptype)
vncdotool.loggingproxy.ProtocolError: 206

Additional information

  • Disabling password seem to solve the issue.

  • In vncdotool.loggingproxy.ProtocolError: 206, the 206 code is different based on the server I used, and seemed random in general...

  • Took me a while to figure out it was to due with the password. And that is why I tried so many versions, because I thought the protocol error comes from a specific version of my vnc server that is the issue.

yonixw avatar Oct 03 '23 16:10 yonixw