From 2c7063967461be258b5a5f83d786a1f3b3523b9c Mon Sep 17 00:00:00 2001 From: speyrefitte Date: Tue, 5 Nov 2013 18:27:11 +0100 Subject: [PATCH] add comment --- rdpy/display/qt.py | 4 +- rdpy/protocol/rdp/gcc.py | 2 +- rdpy/protocol/rdp/rdp.py | 2 +- rdpy/protocol/rfb/rfb.py | 81 ++++++++++++++++++++++------------------ rdpy/rdpclient.py | 2 + rdpy/rdpserver.py | 11 +++--- rdpy/vncclient.py | 4 ++ 7 files changed, 61 insertions(+), 45 deletions(-) diff --git a/rdpy/display/qt.py b/rdpy/display/qt.py index 437c770..fe0e1b9 100644 --- a/rdpy/display/qt.py +++ b/rdpy/display/qt.py @@ -53,10 +53,10 @@ class RfbAdaptor(RfbObserver, QAdaptor): implement RfbAdaptor interface @param width: width of new image @param height: height of new image - @param x: xpositionof new image + @param x: x position of new image @param y: y position of new image @param pixelFormat: pixefFormat structure in rfb.message.PixelFormat - @param encoding: encoding typpe rfb.message.Encoding + @param encoding: encoding type rfb.message.Encoding @param data: image data in accordance with pixelformat and encoding ''' imageFormat = None diff --git a/rdpy/protocol/rdp/gcc.py b/rdpy/protocol/rdp/gcc.py index a294c2f..095e4c9 100644 --- a/rdpy/protocol/rdp/gcc.py +++ b/rdpy/protocol/rdp/gcc.py @@ -353,7 +353,7 @@ def readServerSecurityData(s): read server security and fill it in settings read all channels accepted by server by server @param s: Stream - @return: list of chaeel id selected by server + @return: list of channel id selected by server ''' channelsId = [] channelId = UInt16Le() diff --git a/rdpy/protocol/rdp/rdp.py b/rdpy/protocol/rdp/rdp.py index 0f8432c..d8c4b96 100644 --- a/rdpy/protocol/rdp/rdp.py +++ b/rdpy/protocol/rdp/rdp.py @@ -5,7 +5,7 @@ from twisted.internet import protocol import tpkt, tpdu, mcs class Factory(protocol.Factory): ''' - Factory of RFB protocol + Factory of RDP protocol ''' def __init__(self): self._protocol = tpkt.TPKT(tpdu.TPDU(mcs.MCS())) diff --git a/rdpy/protocol/rfb/rfb.py b/rdpy/protocol/rfb/rfb.py index a77f49c..7da3a5e 100644 --- a/rdpy/protocol/rfb/rfb.py +++ b/rdpy/protocol/rfb/rfb.py @@ -68,6 +68,9 @@ class Rfb(RawLayer): def expectedBody(self, data): ''' read header and wait header value to call next state + @param data: Stream that length are to header length (1|2|4 bytes) + set next state to callBack body when length read from header + are received ''' bodyLen = None if data.len == 1: @@ -84,28 +87,34 @@ class Rfb(RawLayer): def connect(self): ''' - call when transport layer connection - is made + call when transport layer connection is made + in Client mode -> wait protocol version + in Server mode -> send protocol version ''' if self._mode == ProtocolMode.CLIENT: - self.expect(12, self.readProtocolVersion) + self.expect(12, self.recvProtocolVersion) else: self.send(self._version) - def readProtocolVersionFormat(self, data): + def readProtocolVersion(self, data): ''' - read protocol version + read protocol version and set + self._version var member + @param data: Stream may contain protocol version string (ProtocolVersion) ''' data.readType(self._version) if not self._version in [ProtocolVersion.RFB003003, ProtocolVersion.RFB003007, ProtocolVersion.RFB003008]: self._version = ProtocolVersion.UNKNOWN - def readProtocolVersion(self, data): + def recvProtocolVersion(self, data): ''' read handshake packet protocol version nego + if protocol receive from client is unknow + try best version of protocol version (ProtocolVersion.RFB003008) + @param data: Stream ''' - self.readProtocolVersionFormat(data) + self.readProtocolVersion(data) if self._version == ProtocolVersion.UNKNOWN: print "Unknown protocol version %s send 003.008"%data.getvalue() #protocol version is unknow try best version we can handle @@ -115,11 +124,11 @@ class Rfb(RawLayer): #next state read security if self._version == ProtocolVersion.RFB003003: - self.expect(4, self.readSecurityServer) + self.expect(4, self.recvSecurityServer) else: - self.expectWithHeader(1, self.readSecurityList) + self.expectWithHeader(1, self.recvSecurityList) - def readSecurityServer(self, data): + def recvSecurityServer(self, data): ''' security handshake for 33 rfb version server imposed security level @@ -128,7 +137,7 @@ class Rfb(RawLayer): self._version = data.read_beuint32() - def readSecurityList(self, data): + def recvSecurityList(self, data): ''' read all security list ''' @@ -144,9 +153,9 @@ class Rfb(RawLayer): break #send back security level choosen self.send(self._securityLevel) - self.expect(4, self.readSecurityResult) + self.expect(4, self.recvSecurityResult) - def readSecurityResult(self, data): + def recvSecurityResult(self, data): ''' Read security result packet ''' @@ -155,22 +164,22 @@ class Rfb(RawLayer): if result == UInt32Be(1): print "Authentification failed" if self._version == ProtocolVersion.RFB003008: - self.expectWithHeader(4, self.readSecurityFailed) + self.expectWithHeader(4, self.recvSecurityFailed) else: print "Authentification OK" self.sendClientInit() - def readSecurityFailed(self, data): + def recvSecurityFailed(self, data): print "Security failed cause to %s"%data.getvalue() - def readServerInit(self, data): + def recvServerInit(self, data): ''' read server init packet ''' data.readType(self._serverInit) - self.expectWithHeader(4, self.readServerName) + self.expectWithHeader(4, self.recvServerName) - def readServerName(self, data): + def recvServerName(self, data): ''' read server name from server init packet ''' @@ -183,18 +192,18 @@ class Rfb(RawLayer): self.sendSetEncoding() #request entire zone self.sendFramebufferUpdateRequest(False, 0, 0, self._serverInit.width.value, self._serverInit.height.value) - self.expect(1, self.readServerOrder) + self.expect(1, self.recvServerOrder) - def readServerOrder(self, data): + def recvServerOrder(self, data): ''' read order receive from server ''' packet_type = UInt8() data.readType(packet_type) if packet_type == UInt8(0): - self.expect(3, self.readFrameBufferUpdateHeader) + self.expect(3, self.recvFrameBufferUpdateHeader) - def readFrameBufferUpdateHeader(self, data): + def recvFrameBufferUpdateHeader(self, data): ''' read frame buffer update packet header ''' @@ -202,17 +211,17 @@ class Rfb(RawLayer): nbRect = UInt16Be() self._nbRect = data.readType((UInt8(), nbRect)) self._nbRect = nbRect.value - self.expect(12, self.readRectHeader) + self.expect(12, self.recvRectHeader) - def readRectHeader(self, data): + def recvRectHeader(self, data): ''' read rectangle header ''' data.readType(self._currentRect) if self._currentRect.encoding == Encoding.RAW: - self.expect(self._currentRect.width.value * self._currentRect.height.value * (self._pixelFormat.BitsPerPixel.value / 8), self.readRectBody) + self.expect(self._currentRect.width.value * self._currentRect.height.value * (self._pixelFormat.BitsPerPixel.value / 8), self.recvRectBody) - def readRectBody(self, data): + def recvRectBody(self, data): ''' read body of rect ''' @@ -223,16 +232,16 @@ class Rfb(RawLayer): if self._nbRect == 0: #job is finish send a request self.sendFramebufferUpdateRequest(True, 0, 0, self._serverInit.width.value, self._serverInit.height.value) - self.expect(1, self.readServerOrder) + self.expect(1, self.recvServerOrder) else: - self.expect(12, self.readRectHeader) + self.expect(12, self.recvRectHeader) def sendClientInit(self): ''' write client init packet ''' self.send(self._sharedFlag) - self.expect(20, self.readServerInit) + self.expect(20, self.recvServerInit) def sendPixelFormat(self, pixelFormat): ''' @@ -297,12 +306,12 @@ class RfbObserver(object): def notifyFramebufferUpdate(self, width, height, x, y, pixelFormat, encoding, data): ''' recv framebuffer update - width : width of image - height : height of image - x : x position - y : y position - pixelFormat : pixel format struct from rfb.types - encoding : encoding struct from rfb.types - data : in respect of dataFormat and pixelFormat + @param width : width of image + @param height : height of image + @param x : x position + @param y : y position + @param pixelFormat : pixel format struct from rfb.types + @param encoding : encoding struct from rfb.types + @param data : in respect of dataFormat and pixelFormat ''' pass \ No newline at end of file diff --git a/rdpy/rdpclient.py b/rdpy/rdpclient.py index 3800a1a..f7bcb85 100644 --- a/rdpy/rdpclient.py +++ b/rdpy/rdpclient.py @@ -5,6 +5,8 @@ Created on 4 sept. 2013 ''' from rdpy.protocol.rdp import rdp + + if __name__ == '__main__': from twisted.internet import reactor #reactor.connectTCP("127.0.0.1", 5901, factory.RfbFactory(protocol)) diff --git a/rdpy/rdpserver.py b/rdpy/rdpserver.py index 5e89d23..ad61525 100644 --- a/rdpy/rdpserver.py +++ b/rdpy/rdpserver.py @@ -2,12 +2,13 @@ @author: sylvain ''' -from rdpy.protocol.rfb import factory -from rdpy.protocol.rdp import tpkt, tpdu, mcs +import sys, os +# Change path so we find rdpy +sys.path.insert(1, os.path.join(sys.path[0], '..')) + +from rdpy.protocol.rdp import rdp if __name__ == '__main__': from twisted.internet import reactor - #reactor.connectTCP("127.0.0.1", 5901, factory.RfbFactory(protocol)) - #reactor.connectTCP("192.168.1.90", 3389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU(mcs.MCS())))) - reactor.listenTCP(33389, factory.RfbFactory(tpkt.TPKT(tpdu.TPDU(mcs.MCS())))) + reactor.listenTCP(33389, rdp.Factory()) reactor.run() \ No newline at end of file diff --git a/rdpy/vncclient.py b/rdpy/vncclient.py index ba0b1ac..34ec0f7 100644 --- a/rdpy/vncclient.py +++ b/rdpy/vncclient.py @@ -3,6 +3,10 @@ ''' import sys +import os +# Change path so we find rdpy +sys.path.insert(1, os.path.join(sys.path[0], '..')) + from PyQt4 import QtGui from rdpy.display.qt import RfbAdaptor, QRemoteDesktop from rdpy.protocol.rfb import rfb