示例#1
0
 def get_socket(self, sessid):
     """Returns a socket if the session exists (i.e. was handshaken) or None.
     """
     socket = self.sockets.get(sessid)
     if (not socket) and self.is_handshaken(sessid):
         socket = Socket(sessid, self, self.config)
         self.sockets[sessid] = socket
     if socket:
         socket = self.load_socket(socket)
     return socket
示例#2
0
文件: socks.py 项目: alfem/gecoscc-ui
    def get_socket(self, sessid=''):
        """Return an existing or new client Socket."""
        socket = self.sockets.get(sessid)

        if socket is None:
            socket = Socket(self, self.config)
            self.sockets[socket.sessid] = socket
        else:
            socket.incr_hits()

        return socket
示例#3
0
    def get_socket(self, sessid=''):
        """Return an existing or new client Socket."""

        socket = self.sockets.get(sessid)

        if sessid and not socket:
            return None  # you ask for a session that doesn't exist!
        if socket is None:
            socket = Socket(self, self.config)
            self.sockets[socket.sessid] = socket
        else:
            socket.incr_hits()

        return socket
示例#4
0
def webhook(webhook_id, remaining=''):
    """Webhook callback requests this or when viewing a webhook"""

    has_data = len(request.args) or request.method != 'GET' or remaining
    post = formatted_json(request.form) if request.form else scalar_or_list(
        request.data)
    get = formatted_json(request.args)
    headers = formatted_json({k: v for k, v in request.headers.iteritems()})
    files = formatted_json({
        file_key: file.filename
        for file_key, file in request.files.iteritems()
    })

    # Play sound effect if url is like http://webhookr.com/aBr3/loud or /loud/something/else/
    sound_effect = app.config['VALID_SOUNDS'][0]
    for sound in app.config['VALID_SOUNDS']:
        sound_prefix = '{}/'.format(sound)
        if remaining == sound or remaining.startswith(sound_prefix):
            sound_effect = sound

    data = {
        "method": request.method,
        "ip": request.remote_addr,
        "host": request.headers.get('Host'),
        "length": request.headers.get('Content-Length'),
        "type": request.headers.get('Content-Type'),
        "post": post,
        "get": get,
        "files": files,
        "headers": headers,
        "path": remaining,
        "hasData": has_data,
        "soundEffect": sound_effect,
    }

    if has_data:
        # Little hack to communicate to server outside of a websocket
        request.environ['socketio'] = Socket(server=app.server)
        wns = WebhookNamespace(request.environ, '/webhooks', request)

        wns.emit_to_channel(webhook_id, 'new_request', data)
        return "Message Logged"

    context = {
        'webhook_id': webhook_id,
        "full_path": url_for('webhook', webhook_id=webhook_id, _external=True)
    }

    return render_template('webhooks/webhook.html', **context)
示例#5
0
    def get_socket(self, sessid=''):
        """Return an existing or new client Socket."""

        socket = self.sockets.get(sessid)

        # commenting this two lines fix https://github.com/abourget/gevent-socketio/issues/132
        #if sessid and not socket:
        #    return None  # you ask for a session that doesn't exist!
        if socket is None:
            socket = Socket(self, self.config)
            self.sockets[socket.sessid] = socket
        else:
            socket.incr_hits()

        return socket
示例#6
0
 def setUp(self):
     self.server = MockSocketIOServer()
     self.virtsocket = Socket(self.server, {})
示例#7
0
 def setUp(self):
     self.server = MockSocketIOServer()
     sessid = '12345678'
     self.virtsocket = Socket(sessid, self.server.manager, {})