|
@ -39,6 +39,7 @@ import aiorpcx |
|
|
from aiorpcx import RPCSession, Notification, NetAddress |
|
|
from aiorpcx import RPCSession, Notification, NetAddress |
|
|
from aiorpcx.curio import timeout_after, TaskTimeout |
|
|
from aiorpcx.curio import timeout_after, TaskTimeout |
|
|
from aiorpcx.jsonrpc import JSONRPC |
|
|
from aiorpcx.jsonrpc import JSONRPC |
|
|
|
|
|
from aiorpcx.rawsocket import RSClient |
|
|
import certifi |
|
|
import certifi |
|
|
|
|
|
|
|
|
from .util import ignore_exceptions, log_exceptions, bfh, SilentTaskGroup |
|
|
from .util import ignore_exceptions, log_exceptions, bfh, SilentTaskGroup |
|
@ -172,7 +173,7 @@ class ErrorGettingSSLCertFromServer(Exception): pass |
|
|
class ConnectError(Exception): pass |
|
|
class ConnectError(Exception): pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class _Connector(aiorpcx.Connector): |
|
|
class _RSClient(RSClient): |
|
|
async def create_connection(self): |
|
|
async def create_connection(self): |
|
|
try: |
|
|
try: |
|
|
return await super().create_connection() |
|
|
return await super().create_connection() |
|
@ -392,7 +393,7 @@ class Interface(Logger): |
|
|
async def get_certificate(self): |
|
|
async def get_certificate(self): |
|
|
sslc = ssl.SSLContext() |
|
|
sslc = ssl.SSLContext() |
|
|
try: |
|
|
try: |
|
|
async with _Connector(RPCSession, |
|
|
async with _RSClient(session_factory=RPCSession, |
|
|
host=self.host, port=self.port, |
|
|
host=self.host, port=self.port, |
|
|
ssl=sslc, proxy=self.proxy) as session: |
|
|
ssl=sslc, proxy=self.proxy) as session: |
|
|
return session.transport._ssl_protocol._sslpipe._sslobj.getpeercert(True) |
|
|
return session.transport._ssl_protocol._sslpipe._sslobj.getpeercert(True) |
|
@ -430,7 +431,7 @@ class Interface(Logger): |
|
|
return self.network.default_server == self.server |
|
|
return self.network.default_server == self.server |
|
|
|
|
|
|
|
|
async def open_session(self, sslc, exit_early=False): |
|
|
async def open_session(self, sslc, exit_early=False): |
|
|
async with _Connector(NotificationSession, |
|
|
async with _RSClient(session_factory=NotificationSession, |
|
|
host=self.host, port=self.port, |
|
|
host=self.host, port=self.port, |
|
|
ssl=sslc, proxy=self.proxy) as session: |
|
|
ssl=sslc, proxy=self.proxy) as session: |
|
|
self.session = session # type: NotificationSession |
|
|
self.session = session # type: NotificationSession |
|
|