Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-anyio for openSUSE:Factory 
checked in at 2021-10-27 22:21:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-anyio (Old)
 and      /work/SRC/openSUSE:Factory/.python-anyio.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-anyio"

Wed Oct 27 22:21:01 2021 rev:6 rq:927591 version:3.3.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-anyio/python-anyio.changes        
2021-10-18 22:01:55.314081841 +0200
+++ /work/SRC/openSUSE:Factory/.python-anyio.new.1890/python-anyio.changes      
2021-10-27 22:21:12.727198859 +0200
@@ -1,0 +2,8 @@
+Tue Oct 26 20:18:21 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 3.3.4:
+  * Fixed ``BrokenResourceError`` instead of ``EndOfStream`` being raised in
+   ``TLSStream`` when the peer abruptly closes the connection while
+   ``TLSStream`` is receiving data with ``standard_compatible=False`` set
+
+-------------------------------------------------------------------

Old:
----
  anyio-3.3.3.tar.gz

New:
----
  anyio-3.3.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-anyio.spec ++++++
--- /var/tmp/diff_new_pack.7TkgdZ/_old  2021-10-27 22:21:13.323199164 +0200
+++ /var/tmp/diff_new_pack.7TkgdZ/_new  2021-10-27 22:21:13.331199168 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-anyio
-Version:        3.3.3
+Version:        3.3.4
 Release:        0
 Summary:        High level compatibility layer for asynchronous event loop 
implementations
 License:        MIT

++++++ anyio-3.3.3.tar.gz -> anyio-3.3.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/anyio-3.3.3/PKG-INFO new/anyio-3.3.4/PKG-INFO
--- old/anyio-3.3.3/PKG-INFO    2021-10-10 21:09:09.796313800 +0200
+++ new/anyio-3.3.4/PKG-INFO    2021-10-16 12:45:40.520680400 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: anyio
-Version: 3.3.3
+Version: 3.3.4
 Summary: High level compatibility layer for multiple asynchronous event loop 
implementations
 Home-page: UNKNOWN
 Author: Alex Gr??nholm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/anyio-3.3.3/docs/versionhistory.rst 
new/anyio-3.3.4/docs/versionhistory.rst
--- old/anyio-3.3.3/docs/versionhistory.rst     2021-10-10 21:09:00.000000000 
+0200
+++ new/anyio-3.3.4/docs/versionhistory.rst     2021-10-16 12:45:31.000000000 
+0200
@@ -3,6 +3,12 @@
 
 This library adheres to `Semantic Versioning 2.0 <http://semver.org/>`_.
 
+**3.3.4**
+
+- Fixed ``BrokenResourceError`` instead of ``EndOfStream`` being raised in 
``TLSStream`` when the
+  peer abruptly closes the connection while ``TLSStream`` is receiving data 
with
+  ``standard_compatible=False`` set
+
 **3.3.3**
 
 - Fixed UNIX socket listener not setting accepted sockets to non-blocking mode 
on asyncio
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/anyio-3.3.3/src/anyio/streams/tls.py 
new/anyio-3.3.4/src/anyio/streams/tls.py
--- old/anyio-3.3.3/src/anyio/streams/tls.py    2021-10-10 21:09:00.000000000 
+0200
+++ new/anyio-3.3.4/src/anyio/streams/tls.py    2021-10-16 12:45:31.000000000 
+0200
@@ -117,7 +117,16 @@
                     self._read_bio.write(data)
             except ssl.SSLWantWriteError:
                 await self.transport_stream.send(self._write_bio.read())
-            except (ssl.SSLEOFError, ssl.SSLSyscallError) as exc:
+            except ssl.SSLEOFError as exc:
+                self._read_bio.write_eof()
+                self._write_bio.write_eof()
+                if self.standard_compatible:
+                    raise BrokenResourceError from exc
+                else:
+                    raise EndOfStream from None
+            except ssl.SSLSyscallError as exc:
+                self._read_bio.write_eof()
+                self._write_bio.write_eof()
                 raise BrokenResourceError from exc
             else:
                 # Flush any pending writes first
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/anyio-3.3.3/src/anyio.egg-info/PKG-INFO 
new/anyio-3.3.4/src/anyio.egg-info/PKG-INFO
--- old/anyio-3.3.3/src/anyio.egg-info/PKG-INFO 2021-10-10 21:09:09.000000000 
+0200
+++ new/anyio-3.3.4/src/anyio.egg-info/PKG-INFO 2021-10-16 12:45:40.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: anyio
-Version: 3.3.3
+Version: 3.3.4
 Summary: High level compatibility layer for multiple asynchronous event loop 
implementations
 Home-page: UNKNOWN
 Author: Alex Gr??nholm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/anyio-3.3.3/tests/streams/test_tls.py 
new/anyio-3.3.4/tests/streams/test_tls.py
--- old/anyio-3.3.3/tests/streams/test_tls.py   2021-10-10 21:09:00.000000000 
+0200
+++ new/anyio-3.3.4/tests/streams/test_tls.py   2021-10-16 12:45:31.000000000 
+0200
@@ -199,6 +199,42 @@
         else:
             assert server_exc is None
 
+    async def test_ragged_eof_on_receive(self, server_context: ssl.SSLContext,
+                                         client_context: ssl.SSLContext) -> 
None:
+        server_exc = None
+
+        def serve_sync() -> None:
+            nonlocal server_exc
+            conn, addr = server_sock.accept()
+            try:
+                conn.settimeout(1)
+                conn.sendall(b'hello')
+            except BaseException as exc:
+                server_exc = exc
+            finally:
+                conn.close()
+
+        server_sock = server_context.wrap_socket(socket.socket(), 
server_side=True,
+                                                 suppress_ragged_eofs=True)
+        server_sock.settimeout(1)
+        server_sock.bind(('127.0.0.1', 0))
+        server_sock.listen()
+        server_thread = Thread(target=serve_sync, daemon=True)
+        server_thread.start()
+        try:
+            async with await connect_tcp(*server_sock.getsockname()) as stream:
+                wrapper = await TLSStream.wrap(stream, hostname='localhost',
+                                               ssl_context=client_context,
+                                               standard_compatible=False)
+                assert await wrapper.receive() == b'hello'
+                with pytest.raises(EndOfStream):
+                    await wrapper.receive()
+        finally:
+            server_thread.join()
+            server_sock.close()
+
+        assert server_exc is None
+
     async def test_receive_send_after_eof(self, server_context: ssl.SSLContext,
                                           client_context: ssl.SSLContext) -> 
None:
         def serve_sync() -> None:

Reply via email to