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: twisted.py
Close
""" raven.transport.twisted ~~~~~~~~~~~~~~~~~~~~~~~~ :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.utils.compat import BytesIO from raven.transport.base import AsyncTransport from raven.transport.http import HTTPTransport try: from twisted.web.client import ( Agent, FileBodyProducer, HTTPConnectionPool, ResponseNeverReceived, readBody, ) from twisted.web.http_headers import Headers has_twisted = True except ImportError: has_twisted = False class TwistedHTTPTransport(AsyncTransport, HTTPTransport): scheme = ['twisted+http', 'twisted+https'] def __init__(self, *args, **kwargs): if not has_twisted: raise ImportError('TwistedHTTPTransport requires twisted.web.') super(TwistedHTTPTransport, self).__init__(*args, **kwargs) # Import reactor as late as possible. from twisted.internet import reactor # Use a persistent connection pool. self._agent = Agent(reactor, pool=HTTPConnectionPool(reactor)) def async_send(self, url, data, headers, success_cb, failure_cb): d = self._agent.request( b"POST", url, bodyProducer=FileBodyProducer(BytesIO(data)), headers=Headers(dict((k, [v]) for k, v in headers.items())) ) def on_failure(failure): ex = failure.check(ResponseNeverReceived) if ex: # ResponseNeverReceived wraps the actual error(s). failure_cb([f.value for f in failure.value.reasons]) else: failure_cb(failure.value) def on_success(response): """ Success only means that the request succeeded, *not* that the actual submission was successful. """ if response.code == 200: success_cb() else: def on_error_body(body): failure_cb(Exception(response.code, response.phrase, body)) return readBody(response).addCallback( on_error_body, ) d.addCallback( on_success, ).addErrback( on_failure, )