Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_request_buffer (self):
hc = {}
scheme, netloc, script, param, queystring, fragment = urlparse (self.request.uri)
addr, port = self.request.get_address ()
if (scheme == "ws" and port == 80) or (scheme == "wss" and port == 443):
host = addr [0]
else:
host = "%s:%d" % (addr, port)
hc ['Host'] = host
hc ['Origin'] = "%s://%s" % (type (self.asyncon) is asynconnect.AsynConnect and "https" or "http", hc ['Host'])
hc ['Sec-WebSocket-Key'] = b64encode(os.urandom(16))
hc ['Connection'] = "keep-alive, Upgrade"
hc ['Upgrade'] = 'websocket'
hc ['Cache-Control'] = 'no-cache'
auth_header = http_auth.authorizer.make_http_auth_header (self.request, self.asyncon.is_proxy ())
if auth_header:
hc ["Authorization"] = auth_header
uri = self.asyncon.is_proxy () and self.request.uri.replace ("wss://", "https://").replace ("ws://", "http://") or self.request.path
req = ("GET %s HTTP/1.1\r\n%s\r\n\r\n" % (
uri,
"\r\n".join (["%s: %s" % x for x in list(hc.items ())])
)).encode ("utf8")
return [req]
from . import asynconnect
from rs4 import webtest
import threading
import time
class SynConnect (asynconnect.AsynConnect):
ssl = False
proxy = False
def __init__ (self, address, lock = None, logger = None):
self.address = address
self.lock = lock
self.logger = logger
self._cv = threading.Condition ()
self.auth = None
self.set_event_time ()
self.initialize_connection ()
self.endpoint = "{}://{}".format (self.ssl and 'https' or 'http', self.address [0])
port = self.address [1]
if not ((self.ssl and port == 443) or (not self.ssl and port == 80)):
self.endpoint += ":{}".format (port)
global _workers, _que, _allow_redirects, _force_h1
if logger is None:
logger = logger_f.screen_logger ()
_logger = logger
if qrandom:
_que = queue.RandomQueue ()
else:
_que = queue.Queue ()
_allow_redirects = allow_redirects
_force_h1 = request_handler.RequestHandler.FORCE_HTTP_11 = force_http1
if not use_pool:
asynconnect.AsynConnect.keep_connect = use_pool
asynconnect.AsynSSLConnect.keep_connect = use_pool
if not _force_h1:
asynconnect.AsynConnect.fifo_class = await_fifo
asynconnect.AsynSSLConnect.fifo_class = await_fifo
http2.MAX_HTTP2_CONCURRENT_STREAMS = http2_constreams
_workers = workers
_concurrent = workers
if not force_http1:
_concurrent = workers * http2_constreams
elif http2_constreams:
pass
#_logger ("parameter http2_constreams is ignored", "warn")
if callback:
def create_asyncon (self, server, scheme):
if scheme in ("https", "wss"):
__conn_class = asynconnect.AsynSSLConnect
__dft_Port = 443
elif scheme == "tunnel":
__conn_class = asynconnect.AsynConnect
__dft_Port = 443
elif scheme == "proxy":
__conn_class = asynconnect.AsynConnect
__dft_Port = 5000
elif scheme == "proxys":
__conn_class = asynconnect.AsynSSLProxyConnect
__dft_Port = 5000
else:
__conn_class = asynconnect.AsynConnect
__dft_Port = 80
if self.use_syn_connection:
if scheme == "https":
__conn_class = synconnect.SynSSLConnect
elif scheme == "http":
__conn_class = synconnect.SynConnect