Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-httpcore2 for 
openSUSE:Factory checked in at 2026-07-06 12:27:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-httpcore2 (Old)
 and      /work/SRC/openSUSE:Factory/.python-httpcore2.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-httpcore2"

Mon Jul  6 12:27:17 2026 rev:2 rq:1362976 version:2.5.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-httpcore2/python-httpcore2.changes        
2026-06-16 18:42:22.582206268 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-httpcore2.new.1982/python-httpcore2.changes  
    2026-07-06 12:27:33.189440892 +0200
@@ -1,0 +2,6 @@
+Wed Jul  1 11:37:02 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.5.0:
+  * Propagate the timeout through the SOCKS5 handshake.
+
+-------------------------------------------------------------------

Old:
----
  httpcore2-2.4.0.tar.gz

New:
----
  httpcore2-2.5.0.tar.gz

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

Other differences:
------------------
++++++ python-httpcore2.spec ++++++
--- /var/tmp/diff_new_pack.Zmd9BL/_old  2026-07-06 12:27:34.557488340 +0200
+++ /var/tmp/diff_new_pack.Zmd9BL/_new  2026-07-06 12:27:34.561488479 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-httpcore2
-Version:        2.4.0
+Version:        2.5.0
 Release:        0
 Summary:        A minimal low-level HTTP client
 License:        BSD-3-Clause

++++++ httpcore2-2.4.0.tar.gz -> httpcore2-2.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpcore2-2.4.0/CHANGELOG.md 
new/httpcore2-2.5.0/CHANGELOG.md
--- old/httpcore2-2.4.0/CHANGELOG.md    2020-02-02 01:00:00.000000000 +0100
+++ new/httpcore2-2.5.0/CHANGELOG.md    2020-02-02 01:00:00.000000000 +0100
@@ -4,6 +4,12 @@
 
 The format is based on [Keep a 
Changelog](https://keepachangelog.com/en/1.0.0/).
 
+## 2.5.0 (June 25th, 2026)
+
+### Fixed
+
+* Propagate the timeout through the SOCKS5 handshake. 
([#1009](https://github.com/pydantic/httpx2/pull/1009))
+
 ## 2.4.0 (June 11th, 2026)
 
 ### Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpcore2-2.4.0/PKG-INFO new/httpcore2-2.5.0/PKG-INFO
--- old/httpcore2-2.4.0/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
+++ new/httpcore2-2.5.0/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: httpcore2
-Version: 2.4.0
+Version: 2.5.0
 Summary: A minimal low-level HTTP client.
 Project-URL: Changelog, 
https://github.com/pydantic/httpx2/blob/main/src/httpcore2/CHANGELOG.md
 Project-URL: Homepage, https://github.com/pydantic/httpx2
@@ -151,6 +151,12 @@
 
 The format is based on [Keep a 
Changelog](https://keepachangelog.com/en/1.0.0/).
 
+## 2.5.0 (June 25th, 2026)
+
+### Fixed
+
+* Propagate the timeout through the SOCKS5 handshake. 
([#1009](https://github.com/pydantic/httpx2/pull/1009))
+
 ## 2.4.0 (June 11th, 2026)
 
 ### Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpcore2-2.4.0/httpcore2/_async/socks_proxy.py 
new/httpcore2-2.5.0/httpcore2/_async/socks_proxy.py
--- old/httpcore2-2.4.0/httpcore2/_async/socks_proxy.py 2020-02-02 
01:00:00.000000000 +0100
+++ new/httpcore2-2.5.0/httpcore2/_async/socks_proxy.py 2020-02-02 
01:00:00.000000000 +0100
@@ -45,7 +45,11 @@
     host: bytes,
     port: int,
     auth: tuple[bytes, bytes] | None = None,
+    timeouts: dict[str, float | None] | None = None,
 ) -> None:
+    timeouts = timeouts or {}
+    write_timeout = timeouts.get("write", None)
+    read_timeout = timeouts.get("read", None)
     conn = socksio.socks5.SOCKS5Connection()
 
     # Auth method request
@@ -56,10 +60,10 @@
     )
     conn.send(socksio.socks5.SOCKS5AuthMethodsRequest([auth_method]))
     outgoing_bytes = conn.data_to_send()
-    await stream.write(outgoing_bytes)
+    await stream.write(outgoing_bytes, timeout=write_timeout)
 
     # Auth method response
-    incoming_bytes = await stream.read(max_bytes=4096)
+    incoming_bytes = await stream.read(max_bytes=4096, timeout=read_timeout)
     response = conn.receive_data(incoming_bytes)
     assert isinstance(response, socksio.socks5.SOCKS5AuthReply)
     if response.method != auth_method:
@@ -73,10 +77,10 @@
         username, password = auth
         conn.send(socksio.socks5.SOCKS5UsernamePasswordRequest(username, 
password))
         outgoing_bytes = conn.data_to_send()
-        await stream.write(outgoing_bytes)
+        await stream.write(outgoing_bytes, timeout=write_timeout)
 
         # Username/password response
-        incoming_bytes = await stream.read(max_bytes=4096)
+        incoming_bytes = await stream.read(max_bytes=4096, 
timeout=read_timeout)
         response = conn.receive_data(incoming_bytes)
         assert isinstance(response, socksio.socks5.SOCKS5UsernamePasswordReply)
         if not response.success:
@@ -85,10 +89,10 @@
     # Connect request
     
conn.send(socksio.socks5.SOCKS5CommandRequest.from_address(socksio.socks5.SOCKS5Command.CONNECT,
 (host, port)))
     outgoing_bytes = conn.data_to_send()
-    await stream.write(outgoing_bytes)
+    await stream.write(outgoing_bytes, timeout=write_timeout)
 
     # Connect response
-    incoming_bytes = await stream.read(max_bytes=4096)
+    incoming_bytes = await stream.read(max_bytes=4096, timeout=read_timeout)
     response = conn.receive_data(incoming_bytes)
     assert isinstance(response, socksio.socks5.SOCKS5Reply)
     if response.reply_code != socksio.socks5.SOCKS5ReplyCode.SUCCEEDED:
@@ -229,6 +233,7 @@
                         "host": self._remote_origin.host.decode("ascii"),
                         "port": self._remote_origin.port,
                         "auth": self._proxy_auth,
+                        "timeouts": timeouts,
                     }
                     async with Trace("setup_socks5_connection", logger, 
request, kwargs) as trace:
                         await _init_socks5_connection(**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/httpcore2-2.4.0/httpcore2/_sync/socks_proxy.py 
new/httpcore2-2.5.0/httpcore2/_sync/socks_proxy.py
--- old/httpcore2-2.4.0/httpcore2/_sync/socks_proxy.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/httpcore2-2.5.0/httpcore2/_sync/socks_proxy.py  2020-02-02 
01:00:00.000000000 +0100
@@ -45,7 +45,11 @@
     host: bytes,
     port: int,
     auth: tuple[bytes, bytes] | None = None,
+    timeouts: dict[str, float | None] | None = None,
 ) -> None:
+    timeouts = timeouts or {}
+    write_timeout = timeouts.get("write", None)
+    read_timeout = timeouts.get("read", None)
     conn = socksio.socks5.SOCKS5Connection()
 
     # Auth method request
@@ -56,10 +60,10 @@
     )
     conn.send(socksio.socks5.SOCKS5AuthMethodsRequest([auth_method]))
     outgoing_bytes = conn.data_to_send()
-    stream.write(outgoing_bytes)
+    stream.write(outgoing_bytes, timeout=write_timeout)
 
     # Auth method response
-    incoming_bytes = stream.read(max_bytes=4096)
+    incoming_bytes = stream.read(max_bytes=4096, timeout=read_timeout)
     response = conn.receive_data(incoming_bytes)
     assert isinstance(response, socksio.socks5.SOCKS5AuthReply)
     if response.method != auth_method:
@@ -73,10 +77,10 @@
         username, password = auth
         conn.send(socksio.socks5.SOCKS5UsernamePasswordRequest(username, 
password))
         outgoing_bytes = conn.data_to_send()
-        stream.write(outgoing_bytes)
+        stream.write(outgoing_bytes, timeout=write_timeout)
 
         # Username/password response
-        incoming_bytes = stream.read(max_bytes=4096)
+        incoming_bytes = stream.read(max_bytes=4096, timeout=read_timeout)
         response = conn.receive_data(incoming_bytes)
         assert isinstance(response, socksio.socks5.SOCKS5UsernamePasswordReply)
         if not response.success:
@@ -85,10 +89,10 @@
     # Connect request
     
conn.send(socksio.socks5.SOCKS5CommandRequest.from_address(socksio.socks5.SOCKS5Command.CONNECT,
 (host, port)))
     outgoing_bytes = conn.data_to_send()
-    stream.write(outgoing_bytes)
+    stream.write(outgoing_bytes, timeout=write_timeout)
 
     # Connect response
-    incoming_bytes = stream.read(max_bytes=4096)
+    incoming_bytes = stream.read(max_bytes=4096, timeout=read_timeout)
     response = conn.receive_data(incoming_bytes)
     assert isinstance(response, socksio.socks5.SOCKS5Reply)
     if response.reply_code != socksio.socks5.SOCKS5ReplyCode.SUCCEEDED:
@@ -229,6 +233,7 @@
                         "host": self._remote_origin.host.decode("ascii"),
                         "port": self._remote_origin.port,
                         "auth": self._proxy_auth,
+                        "timeouts": timeouts,
                     }
                     with Trace("setup_socks5_connection", logger, request, 
kwargs) as trace:
                         _init_socks5_connection(**kwargs)

Reply via email to