URI: 
       tnetwork: make MAX_INCOMING_MSG_SIZE configurable from config - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 5a7c3dc4d0bcd0ab3f60108ab99bbf783ba9855c
   DIR parent 52bd0eb1a656bdd0eb32340350fb4bf82af5c690
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Fri, 25 Sep 2020 11:15:04 +0200
       
       network: make MAX_INCOMING_MSG_SIZE configurable from config
       
       requested in https://github.com/spesmilo/electrum/issues/4315#issuecomment-698730778
       
       Diffstat:
         M electrum/interface.py               |      11 +++++++----
       
       1 file changed, 7 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -126,13 +126,13 @@ def assert_list_or_tuple(val: Any) -> None:
        
        class NotificationSession(RPCSession):
        
       -    def __init__(self, *args, **kwargs):
       +    def __init__(self, *args, interface: 'Interface', **kwargs):
                super(NotificationSession, self).__init__(*args, **kwargs)
                self.subscriptions = defaultdict(list)
                self.cache = {}
                self.default_timeout = NetworkTimeout.Generic.NORMAL
                self._msg_counter = itertools.count(start=1)
       -        self.interface = None  # type: Optional[Interface]
       +        self.interface = interface  # type: Interface
                self.cost_hard_limit = 0  # disable aiorpcx resource limits
        
            async def handle_request(self, request):
       t@@ -209,7 +209,9 @@ class NotificationSession(RPCSession):
        
            def default_framer(self):
                # overridden so that max_size can be customized
       -        return NewlineFramer(max_size=MAX_INCOMING_MSG_SIZE)
       +        max_size = int(self.interface.network.config.get('network_max_incoming_msg_size',
       +                                                         MAX_INCOMING_MSG_SIZE))
       +        return NewlineFramer(max_size=max_size)
        
        
        class NetworkException(Exception): pass
       t@@ -605,7 +607,8 @@ class Interface(Logger):
                return self.network.default_server == self.server
        
            async def open_session(self, sslc, exit_early=False):
       -        async with _RSClient(session_factory=NotificationSession,
       +        session_factory = lambda *args, iface=self, **kwargs: NotificationSession(*args, **kwargs, interface=iface)
       +        async with _RSClient(session_factory=session_factory,
                                     host=self.host, port=self.port,
                                     ssl=sslc, proxy=self.proxy) as session:
                    self.session = session  # type: NotificationSession