mirror of https://github.com/scrapy/scrapy.git
refactor: AcceptableProtocolsContextFactory
- rename H2WrappedContextFactory to AcceptableProtocolsContextFactory - AcceptableProtocolsContextFactory accepts an argument acceptable_protocols which can be used to override the context factory priority list of protocols during ALPN or NPN
This commit is contained in:
parent
e8342996f6
commit
19f2b4b53d
|
|
@ -3,8 +3,8 @@ from time import time
|
|||
from typing import Optional, Tuple
|
||||
from urllib.parse import urldefrag
|
||||
|
||||
from twisted.internet.defer import Deferred
|
||||
from twisted.internet.base import ReactorBase
|
||||
from twisted.internet.defer import Deferred
|
||||
from twisted.internet.error import TimeoutError
|
||||
from twisted.web.client import URI
|
||||
|
||||
|
|
|
|||
|
|
@ -97,14 +97,15 @@ class H2ConnectionPool:
|
|||
|
||||
|
||||
@implementer(IPolicyForHTTPS)
|
||||
class H2WrappedContextFactory:
|
||||
def __init__(self, context_factory) -> None:
|
||||
class AcceptableProtocolsContextFactory:
|
||||
def __init__(self, context_factory, acceptable_protocols: List[bytes]) -> None:
|
||||
verifyObject(IPolicyForHTTPS, context_factory)
|
||||
self._wrapped_context_factory = context_factory
|
||||
self._acceptable_protocols = acceptable_protocols
|
||||
|
||||
def creatorForNetloc(self, hostname, port) -> ClientTLSOptions:
|
||||
options = self._wrapped_context_factory.creatorForNetloc(hostname, port)
|
||||
_setAcceptableProtocols(options._ctx, [b'h2'])
|
||||
_setAcceptableProtocols(options._ctx, self._acceptable_protocols)
|
||||
return options
|
||||
|
||||
|
||||
|
|
@ -116,7 +117,7 @@ class H2Agent:
|
|||
) -> None:
|
||||
self._reactor = reactor
|
||||
self._pool = pool
|
||||
self._context_factory = H2WrappedContextFactory(context_factory)
|
||||
self._context_factory = AcceptableProtocolsContextFactory(context_factory, acceptable_protocols=[b'h2'])
|
||||
self._endpoint_factory = _StandardEndpointFactory(
|
||||
self._reactor, self._context_factory,
|
||||
connect_timeout, bind_address
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class Stream:
|
|||
request: Request,
|
||||
protocol: "H2ClientProtocol",
|
||||
download_maxsize: int = 0,
|
||||
download_warnsize: int = 0
|
||||
download_warnsize: int = 0,
|
||||
) -> None:
|
||||
"""
|
||||
Arguments:
|
||||
|
|
|
|||
Loading…
Reference in New Issue