Philipp Hörist pushed to branch master at gajim / python-nbxmpp

Commits:

1 changed file:

Changes:

  • nbxmpp/http.py
    ... ... @@ -50,7 +50,7 @@ HTTP_METHODS_T = Literal[
    50 50
     CHUNK_SIZE = 32768
    
    51 51
     DEFAULT_USER_AGENT = f'nbxmpp/{nbxmpp.__version__}'
    
    52 52
     SIGNAL_ACTIONS = GObject.SignalFlags.RUN_LAST | GObject.SignalFlags.ACTION
    
    53
    -MIN_SOUP_3_4 = Soup.check_version(3, 4, 0)
    
    53
    +
    
    54 54
     
    
    55 55
     class HTTPLogAdapter(logging.LoggerAdapter):
    
    56 56
         def process(self, msg: str, kwargs: Any) -> tuple[str, Any]:
    
    ... ... @@ -59,10 +59,10 @@ class HTTPLogAdapter(logging.LoggerAdapter):
    59 59
     
    
    60 60
     class HTTPSession:
    
    61 61
         def __init__(self, user_agent: str = DEFAULT_USER_AGENT) -> None:
    
    62
    -
    
    63 62
             self._session = Soup.Session()
    
    64 63
             self._session.set_user_agent(user_agent)
    
    65 64
             self._session.add_feature_by_type(Soup.ContentSniffer)
    
    65
    +        self._session.remove_feature_by_type(Soup.ContentDecoder)
    
    66 66
     
    
    67 67
         def get_soup_session(self) -> Soup.Session:
    
    68 68
             return self._session
    
    ... ... @@ -280,9 +280,6 @@ class HTTPRequest(GObject.GObject):
    280 280
             self._message.connect('finished', self._on_finished)
    
    281 281
             self._message.connect('got-headers', self._on_got_headers)
    
    282 282
     
    
    283
    -        if MIN_SOUP_3_4:
    
    284
    -            self._message.connect('got-body-data', self._on_got_body_data)
    
    285
    -
    
    286 283
             soup_session = self._session.get_soup_session()
    
    287 284
             soup_session.send_async(self._message,
    
    288 285
                                     GLib.PRIORITY_DEFAULT,
    
    ... ... @@ -367,9 +364,8 @@ class HTTPRequest(GObject.GObject):
    367 364
                 self._finish_read()
    
    368 365
                 return
    
    369 366
     
    
    370
    -        if not MIN_SOUP_3_4:
    
    371
    -            self._received_size += len(bytes_)
    
    372
    -            self._check_content_overflow()
    
    367
    +        self._received_size += len(bytes_)
    
    368
    +        self._check_content_overflow()
    
    373 369
     
    
    374 370
             if self._output_stream is None:
    
    375 371
                 self._response_body_data += bytes_
    
    ... ... @@ -387,9 +383,7 @@ class HTTPRequest(GObject.GObject):
    387 383
                     return
    
    388 384
     
    
    389 385
             self._read_async()
    
    390
    -
    
    391
    -        if not MIN_SOUP_3_4:
    
    392
    -            self._emit_progress()
    
    386
    +        self._emit_progress()
    
    393 387
     
    
    394 388
         def _finish_read(self, error: Optional[HTTPRequestError] = None) -> None:
    
    395 389
             self._log.info('Finished reading')
    
    ... ... @@ -435,18 +429,6 @@ class HTTPRequest(GObject.GObject):
    435 429
             self._log.info('Body received')
    
    436 430
             self._body_received = True
    
    437 431
     
    
    438
    -    def _on_got_body_data(self,
    
    439
    -                          _message: Soup.Message,
    
    440
    -                          chunk_size: int
    
    441
    -                          ) -> None:
    
    442
    -
    
    443
    -        self._received_size += chunk_size
    
    444
    -        self._check_content_overflow()
    
    445
    -
    
    446
    -        status = self._message.get_status()
    
    447
    -        if status in (Soup.Status.OK, Soup.Status.CREATED):
    
    448
    -            self._emit_progress()
    
    449
    -
    
    450 432
         def _emit_progress(self) -> None:
    
    451 433
             if not self._emit_response_progress:
    
    452 434
                 return
    
    ... ... @@ -459,8 +441,7 @@ class HTTPRequest(GObject.GObject):
    459 441
     
    
    460 442
         def _check_content_overflow(self) -> None:
    
    461 443
             if self._received_size > self._response_content_length:
    
    462
    -            self._set_error(HTTPRequestError.CONTENT_OVERFLOW)
    
    463
    -            self.cancel()
    
    444
    +            self._finish_read(HTTPRequestError.CONTENT_OVERFLOW)
    
    464 445
     
    
    465 446
         def _on_restarted(self, _message: Soup.Message) -> None:
    
    466 447
             self._log.info('Restarted')