OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
raven
/
transport
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/16/2024 08:51:42 PM
rwxr-xr-x
📄
__init__.py
784 bytes
10/29/2017 05:41:19 PM
rw-r--r--
📁
__pycache__
-
02/16/2024 08:51:42 PM
rwxr-xr-x
📄
base.py
1.19 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
eventlet.py
1.5 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
exceptions.py
517 bytes
10/29/2017 05:41:19 PM
rw-r--r--
📄
gevent.py
1.62 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
http.py
1.78 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
registry.py
2.54 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
requests.py
1 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
threaded.py
5.11 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
threaded_requests.py
1.07 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
tornado.py
1.79 KB
10/29/2017 05:41:19 PM
rw-r--r--
📄
twisted.py
2.27 KB
10/29/2017 05:41:19 PM
rw-r--r--
Editing: gevent.py
Close
""" raven.transport.gevent ~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. """ from __future__ import absolute_import from raven.transport.base import AsyncTransport from raven.transport.http import HTTPTransport try: import gevent # gevent 1.0bN renamed coros to lock try: from gevent.lock import Semaphore except ImportError: from gevent.coros import Semaphore # NOQA has_gevent = True except ImportError: has_gevent = None class GeventedHTTPTransport(AsyncTransport, HTTPTransport): scheme = ['gevent+http', 'gevent+https'] def __init__(self, maximum_outstanding_requests=100, *args, **kwargs): if not has_gevent: raise ImportError('GeventedHTTPTransport requires gevent.') self._lock = Semaphore(maximum_outstanding_requests) super(GeventedHTTPTransport, self).__init__(*args, **kwargs) def async_send(self, url, data, headers, success_cb, failure_cb): """ Spawn an async request to a remote webserver. """ # this can be optimized by making a custom self.send that does not # read the response since we don't use it. self._lock.acquire() return gevent.spawn( super(GeventedHTTPTransport, self).send, url, data, headers ).link(lambda x: self._done(x, success_cb, failure_cb)) def _done(self, greenlet, success_cb, failure_cb, *args): self._lock.release() if greenlet.successful(): success_cb() else: failure_cb(greenlet.exception)