finish rle module build

This commit is contained in:
citronneur
2014-06-29 18:57:40 +02:00
parent 540f8e0ab9
commit 9af4280a68
16 changed files with 73 additions and 27 deletions

2
.gitignore vendored
View File

@@ -2,7 +2,7 @@
.project
.pydevproject
README.md~
lib/obj/*
lib/build/*
*.so
*.os
.sconsign.dblite

View File

@@ -6,16 +6,39 @@ Remote Desktop Protocol in Twisted Python
* python2.7
* python-twisted
* python-openssl
## Requirements for examples
* python-qt4
* python-qt4reactor
## Requirements libs
* python-sip-dev
* scons
```
$ git clone https://github.com/citronneur/rdpy.git rdpy
$ scons -C rdpy/lib install
```
## Binaries
RDP Client
```
$ rdpy/bin/rdpy-rdpclient XXX.XXX.XXX.XXX 3389
```
VNC Client
```
$ rdpy/bin/rdpy-vncclient XXX.XXX.XXX.XXX 5901
```
RDP Proxy
```
$ rdpy/bin/rdpy-vncclient XXX.XXX.XXX.XXX 5901
```
##Must be implemented before first release
* CreedSSP
* Packet redirection
* License
* Most common orders
* FastPath messages
* Des VNC (using pyDes)
this project is still in progress.

5
rdpy/examples/rdpclient.py → bin/rdpy-rdpclient Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!/usr/bin/python
#
# Copyright (c) 2014 Sylvain Peyrefitte
#
@@ -25,10 +26,10 @@ import sys
import os
# Change path so we find rdpy
sys.path.insert(1, os.path.join(sys.path[0], '../..'))
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from PyQt4 import QtGui
from rdpy.display.qt4 import RDPClientQt
from rdpy.ui.qt4 import RDPClientQt
from rdpy.protocol.rdp import rdp
class RDPClientQtFactory(rdp.ClientFactory):

3
rdpy/examples/rdpserver.py → bin/rdpy-rdpproxy Normal file → Executable file
View File

@@ -1,10 +1,11 @@
#!/usr/bin/python
'''
@author: sylvain
'''
import sys, os
# Change path so we find rdpy
sys.path.insert(1, os.path.join(sys.path[0], '../..'))
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from rdpy.protocol.rdp import rdp

25
rdpy/tests/dotest.py → bin/rdpy-test Normal file → Executable file
View File

@@ -1,9 +1,26 @@
'''
@author: sylvain
'''
#!/usr/bin/python
#
# Copyright (c) 2014 Sylvain Peyrefitte
#
# This file is part of rdpy.
#
# rdpy is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import sys, os
# Change path so we find rdpy
sys.path.insert(1, os.path.join(sys.path[0], '../..'))
sys.path.insert(1, os.path.join(sys.path[0], '..'))
import unittest, rdpy.tests.network.type, rdpy.tests.network.const, rdpy.tests.network.layer
def headerTest(name):

5
rdpy/examples/vncclient.py → bin/rdpy-vncclient Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!/usr/bin/python
#
# Copyright (c) 2014 Sylvain Peyrefitte
#
@@ -25,10 +26,10 @@ import sys
import os
# Change path so we find rdpy
sys.path.insert(1, os.path.join(sys.path[0], '../..'))
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from PyQt4 import QtGui
from rdpy.display.qt4 import RFBClientQt
from rdpy.ui.qt4 import RFBClientQt
from rdpy.protocol.rfb import rfb
class RFBClientQtFactory(rfb.ClientFactory):

View File

@@ -5,28 +5,32 @@ script_dir = os.path.dirname(os.path.realpath(Dir("#/Sconstruct").abspath))
build_dir = os.path.join(script_dir, "build")
src_dir = os.path.join(script_dir, "src")
sip_dir = os.path.join(script_dir, "sip")
#generate install dir
install_dir = os.path.join(script_dir, "..", "rdpy", "fast")
def build_sip(target, source, env):
# Get the SIP configuration information.
config = sipconfig.Configuration()
# Run SIP to generate the code.
os.system(" ".join([config.sip_bin, "-c", "src", str(source[0])]))
os.system(" ".join([config.sip_bin, "-c", os.path.dirname(str(target[0])), str(source[0])]))
def build_module(name, install_dir, env):
targetName = os.path.join(build_dir, name, "%s.so"%name)
sources = [Glob(os.path.join(src_dir, name,'*.c')), os.path.join(build_dir, name, "sip%scmodule.c"%name)]
env.Sip(os.path.join(build_dir, name, "sip%scmodule.c"%name), os.path.join(sip_dir, "%s.sip"%name))
#sources.append(sip)
lib = env.SharedLibrary(target = targetName, source = sources, SHLIBPREFIX='')
env.Install(install_dir, lib)
env.Alias("install", install_dir)
#building library
env = Environment()
env.Append(BUILDERS = {'Sip' : Builder(action = build_sip)})
env.Append(CPPPATH = ["/usr/include/python2.7"]);
env.VariantDir('build', 'src', duplicate=0)
build_module("rle", os.path.join(script_dir, "..", "rdpy", "ui"), env)
targetName = os.path.join(build_dir, "rle.so")
sources = [Glob(os.path.join(build_dir, '*.c')), os.path.join(build_dir, "siprlecmodule.c")]
sip = env.Sip([os.path.join(src_dir, "sipAPIrle.h"), os.path.join(src_dir, "siprlecmodule.c")], [os.path.join(sip_dir, "rle.sip")])
lib = env.SharedLibrary(target = targetName, source = sources, SHLIBPREFIX='')
env.Requires(lib, sip)

View File

@@ -1,7 +1,7 @@
%Module(name=rle, language="C")
%UnitCode
#include "rle.h"
#include "../../src/rle/rle.h"
%End
int rle_decode_uint8(void* output, int width, int height, char* input, int size);

View File

View File

@@ -69,7 +69,6 @@ class ServerFactory(protocol.Factory):
'''
def __init__(self, privateKeyFileName, certificateFileName):
'''
ctor
@param privateKeyFileName: file contain server private key
@param certficiateFileName: file that contain publi key
'''

View File

@@ -26,7 +26,7 @@ QRemoteDesktop is a widget use for render in rdpy
from PyQt4 import QtGui, QtCore
from rdpy.protocol.rfb.rfb import RFBClientObserver
from rdpy.protocol.rdp.rdp import RDPClientObserver
import rdpy.fast.rle as rle
import rle
class QAdaptor(object):