Ejemplo n.º 1
0
    def __init__(self, *args, **kwargs):
        # Save off proxy specific options
        self.target_host    = kwargs.pop('target_host')
        self.target_port    = kwargs.pop('target_port')
        self.wrap_cmd       = kwargs.pop('wrap_cmd')
        self.wrap_mode      = kwargs.pop('wrap_mode')
        # Last 3 timestamps command was run
        self.wrap_times    = [0, 0, 0]

        if self.wrap_cmd:
            rebinder_path = ['./', os.path.dirname(sys.argv[0])]
            self.rebinder = None

            for rdir in rebinder_path:
                rpath = os.path.join(rdir, "rebind.so")
                if os.path.exists(rpath):
                    self.rebinder = rpath
                    break

            if not self.rebinder:
                raise Exception("rebind.so not found, perhaps you need to run make")

            self.target_host = "127.0.0.1"  # Loopback
            # Find a free high port
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.bind(('', 0))
            self.target_port = sock.getsockname()[1]
            sock.close()

            os.environ.update({
                "LD_PRELOAD": self.rebinder,
                "REBIND_OLD_PORT": str(kwargs['listen_port']),
                "REBIND_NEW_PORT": str(self.target_port)})

        WebSocketServer.__init__(self, *args, **kwargs)
Ejemplo n.º 2
0
    def __init__(self, *args, **kwargs):
        self.errors = 0
        self.delay = kwargs.pop('delay')

        print "Prepopulating random array"
        self.rand_array = []
        for i in range(0, self.max_packet_size):
            self.rand_array.append(random.randint(0, 9))

        WebSocketServer.__init__(self, *args, **kwargs)
Ejemplo n.º 3
0
    def __init__(self, *args, **kwargs):
        self.errors = 0
        self.delay = kwargs.pop('delay')

        print "Prepopulating random array"
        self.rand_array = []
        for i in range(0, self.max_packet_size):
            self.rand_array.append(random.randint(0, 9))

        WebSocketServer.__init__(self, *args, **kwargs)
Ejemplo n.º 4
0
 def __init__(self, addr, robots):
   self.data = None
   self.requests = set()
   self.lock = threading.RLock()
   WebSocketServer.__init__(self, addr, self.GuiliRequestHandlerClass)
   self.robots = robots
   # load configurations
   try:
     with open(os.path.join(os.path.dirname(__file__), 'configurations.json')) as f:
       self.configurations = json.load(f)
   except IOError:
     self.configurations = {}
Ejemplo n.º 5
0
    def __init__(self, *args, **kwargs):
        # Save off proxy specific options
        self.target_host = kwargs.pop('target_host')
        self.target_port = kwargs.pop('target_port')
        self.wrap_cmd = kwargs.pop('wrap_cmd')
        self.wrap_mode = kwargs.pop('wrap_mode')
        # Last 3 timestamps command was run
        self.wrap_times = [0, 0, 0]

        if self.wrap_cmd:
            rebinder_path = ['./', os.path.dirname(sys.argv[0])]
            self.rebinder = None

            for rdir in rebinder_path:
                rpath = os.path.join(rdir, "rebind.so")
                if os.path.exists(rpath):
                    self.rebinder = rpath
                    break

            if not self.rebinder:
                raise Exception(
                    "rebind.so not found, perhaps you need to run make")

            self.target_host = "127.0.0.1"  # Loopback
            # Find a free high port
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.bind(('', 0))
            self.target_port = sock.getsockname()[1]
            sock.close()

            os.environ.update({
                "LD_PRELOAD": self.rebinder,
                "REBIND_OLD_PORT": str(kwargs['listen_port']),
                "REBIND_NEW_PORT": str(self.target_port)
            })

        WebSocketServer.__init__(self, *args, **kwargs)
Ejemplo n.º 6
0
 def test_server(self):
     server = WebSocketServer()
     # test run
     with patch("asyncio.async") as mock, patch(
         "asyncio.base_events.BaseEventLoop.run_until_complete"
     ) as mock1, patch("asyncio.base_events.BaseEventLoop.run_forever") as mock2:
         run(MagicMock, MagicMock, "localhost", 999, "localhost", 6379, 0, "ws-channel")
         mock.assert_called_once()
         mock1.assert_called_once()
         mock2.assert_called_once()
     # test receiver
     client = Client(MockSocket(True))
     server.receiver(client, "msg")
     self.assertEqual(client.name, "unknown")
     server.receiver(client, '{"message": "msg", "tags": ["tag1", "tag2"]}')
     server.receiver(client, "msg")
     self.assertEqual(client.name, "tag1, tag2")
Ejemplo n.º 7
0
Archivo: run.py Proyecto: hackEns/Disty
        while True:
            wlist = []

            if cqueue or c_pend: wlist.append(self.request)
            ins, outs, excepts = select.select(rlist, wlist, [], 1)
            if excepts: raise Exception("Socket exception")

            if self.request in outs:
                # Send queued target data to the client
                c_pend = self.send_frames(cqueue)
                cqueue = []

            if self.request in ins:
                # Receive client data, decode it, and send it back
                frames, closed = self.recv_frames()
                print("Received: " + frames[0].decode('utf-8'))
                sendUDP("localhost", 4242, frames[0].decode('utf-8'))

                if closed:
                    self.send_close()


if __name__ == '__main__':
    opts = {"listen_port": 80, "web": "."}

    try:
        server = WebSocketServer(WebSocketEcho, **opts)
        server.start_server()
    except:
        pass
Ejemplo n.º 8
0
#!/usr/bin/env python

import asyncore
from websocket import WebSocketServer


class BroadcastHandler(object):
    """
    The BroadcastHandler repeats incoming strings to every connected
    WebSocket.
    """
    def __init__(self, conn):
        self.conn = conn

    def dispatch(self, data):
        for session in self.conn.server.sessions:
            session.send(data)


if __name__ == "__main__":
    print "Starting WebSocket broadcast server - ws://localhost:8181/broadcast"
    WebSocketServer(port=8181, handlers={"/broadcast": BroadcastHandler})
    asyncore.loop()
Ejemplo n.º 9
0
#!/usr/bin/python

'''
Display UTF-8 encoding for 0-255.'''

import sys, os, socket, ssl, time, traceback
from select import select

sys.path.insert(0,os.path.dirname(__file__) + "/../websockify")
from websocket import WebSocketServer

if __name__ == '__main__':
    print "val: hybi_base64 | hybi_binary"
    for c in range(0, 256):
        hybi_base64 = WebSocketServer.encode_hybi(chr(c), opcode=1,
                base64=True)
        hybi_binary = WebSocketServer.encode_hybi(chr(c), opcode=2,
                base64=False)
        print "%d: %s | %s" % (c, repr(hybi_base64), repr(hybi_binary))

Ejemplo n.º 10
0
# -*- coding: utf-8 -*-
from websocket import WebSocketServer

server = WebSocketServer.WebsocketServer()
server.start()
Ejemplo n.º 11
0
#!/usr/bin/python
'''
Display UTF-8 encoding for 0-255.'''

import sys, os, socket, ssl, time, traceback
from select import select

sys.path.insert(0, os.path.dirname(__file__) + "/../")
from websocket import WebSocketServer

if __name__ == '__main__':
    print "val: hixie | hybi_base64 | hybi_binary"
    for c in range(0, 256):
        hixie = WebSocketServer.encode_hixie(chr(c))
        hybi_base64 = WebSocketServer.encode_hybi(chr(c),
                                                  opcode=1,
                                                  base64=True)
        hybi_binary = WebSocketServer.encode_hybi(chr(c),
                                                  opcode=2,
                                                  base64=False)
        print "%d: %s | %s | %s" % (c, repr(hixie), repr(hybi_base64),
                                    repr(hybi_binary))
Ejemplo n.º 12
0
        while True:
            wlist = []

            if cqueue or c_pend: wlist.append(self.request)
            ins, outs, excepts = select.select(rlist, wlist, [], 1)
            if excepts: raise Exception("Socket exception")

            if self.request in outs:
                # Send queued target data to the client
                c_pend = self.send_frames(cqueue)
                cqueue = []

            if self.request in ins:
                # Receive client data, decode it, and send it back
                frames, closed = self.recv_frames()
                print("Received: "+frames[0].decode('utf-8'))
                sendUDP("localhost", 4242, frames[0].decode('utf-8'))

                if closed:
                    self.send_close()

if __name__ == '__main__':
    opts = {"listen_port": 80, "web": "."}

    try:
        server = WebSocketServer(WebSocketEcho, **opts)
        server.start_server()
    except:
        pass