From 8a2f84271d6d9a7124a0efdb3b8f8eb9dee52f0a Mon Sep 17 00:00:00 2001 From: jb2170 Date: Sat, 22 Apr 2023 02:42:17 +0100 Subject: [PATCH 1/9] socketserver: Add missing ForkingUnixStreamServer and ForkingUnixDatagramServer servers --- Doc/library/socketserver.rst | 4 ++++ Lib/socketserver.py | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index ceb962e860042d..0e7b23edfd1123 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -140,6 +140,10 @@ server is the address family. ForkingUDPServer ThreadingTCPServer ThreadingUDPServer + ForkingUnixStreamServer + ForkingUnixDatagramServer + ThreadingUnixStreamServer + ThreadingUnixDatagramServer These classes are pre-defined using the mix-in classes. diff --git a/Lib/socketserver.py b/Lib/socketserver.py index 842d526b011911..5634755eff6719 100644 --- a/Lib/socketserver.py +++ b/Lib/socketserver.py @@ -141,6 +141,8 @@ class will essentially render the service "deaf" while one request is __all__.extend(["UnixStreamServer","UnixDatagramServer", "ThreadingUnixStreamServer", "ThreadingUnixDatagramServer"]) + if hasattr(os, "fork"): + __all__.extend(["ForkingUnixStreamServer","ForkingUnixDatagramServer"]) # poll/select have the advantage of not requiring any extra file descriptor, # contrarily to epoll/kqueue (also, they require a single syscall). @@ -727,6 +729,11 @@ class ThreadingUnixStreamServer(ThreadingMixIn, UnixStreamServer): pass class ThreadingUnixDatagramServer(ThreadingMixIn, UnixDatagramServer): pass + if hasattr(os, "fork"): + class ForkingUnixStreamServer(ForkingMixIn, UnixStreamServer): pass + + class ForkingUnixDatagramServer(ForkingMixIn, UnixDatagramServer): pass + class BaseRequestHandler: """Base class for request handler classes. From 364eb77e1ca762f2e95073574751414c6413c165 Mon Sep 17 00:00:00 2001 From: jb2170 Date: Sat, 22 Apr 2023 02:43:40 +0100 Subject: [PATCH 2/9] Add self to Misc/ACKS --- Misc/ACKS | 1 + 1 file changed, 1 insertion(+) diff --git a/Misc/ACKS b/Misc/ACKS index d0ff4e8aeb5c90..633e9d90a36f16 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -160,6 +160,7 @@ Brice Berna Olivier Bernard Vivien Bernet-Rollande Maxwell Bernstein +Jay Berry Eric Beser Steven Bethard Stephen Bevan From 849feb24f1f77eb870130f8d273c0b910a56a507 Mon Sep 17 00:00:00 2001 From: jb2170 Date: Sat, 22 Apr 2023 02:43:56 +0100 Subject: [PATCH 3/9] Add NEWS entry with blurb --- .../next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst diff --git a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst new file mode 100644 index 00000000000000..30bc2a72871553 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst @@ -0,0 +1,2 @@ +socketserver: Add missing ForkingUnixStreamServer and +ForkingUnixDatagramServer servers From d634059f14ce9eab6cf4a125333f7e6382337f24 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 23 Apr 2023 12:44:29 -0700 Subject: [PATCH 4/9] style nit: add a missing space. admittedly other existing lines don't always do this. this module is very old code. Co-authored-by: Nikita Sobolev --- Lib/socketserver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/socketserver.py b/Lib/socketserver.py index 5634755eff6719..cd028ef1c63b85 100644 --- a/Lib/socketserver.py +++ b/Lib/socketserver.py @@ -142,7 +142,7 @@ class will essentially render the service "deaf" while one request is "ThreadingUnixStreamServer", "ThreadingUnixDatagramServer"]) if hasattr(os, "fork"): - __all__.extend(["ForkingUnixStreamServer","ForkingUnixDatagramServer"]) + __all__.extend(["ForkingUnixStreamServer", "ForkingUnixDatagramServer"]) # poll/select have the advantage of not requiring any extra file descriptor, # contrarily to epoll/kqueue (also, they require a single syscall). From a9a91ed28e3185bcd75ccb12cf285bda1b2d1953 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 23 Apr 2023 12:46:20 -0700 Subject: [PATCH 5/9] ReSTify the NEWS entry. --- .../Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst index 30bc2a72871553..678481fe1a5550 100644 --- a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst +++ b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst @@ -1,2 +1,2 @@ -socketserver: Add missing ForkingUnixStreamServer and -ForkingUnixDatagramServer servers +:mod:`socketserver` Gains missing ``ForkingUnixStreamServer`` and +``ForkingUnixDatagramServer`` classes. From e32b5675bb284103fc80563f9c053fd9c5829386 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 23 Apr 2023 12:48:17 -0700 Subject: [PATCH 6/9] remove an unnecessary word in NEWS --- .../next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst index 678481fe1a5550..004dd6543e950b 100644 --- a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst +++ b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst @@ -1,2 +1,2 @@ -:mod:`socketserver` Gains missing ``ForkingUnixStreamServer`` and +:mod:`socketserver` Gains ``ForkingUnixStreamServer`` and ``ForkingUnixDatagramServer`` classes. From 58073d48b2add2c1bd973764271524b10255b442 Mon Sep 17 00:00:00 2001 From: Oleg Iarygin Date: Mon, 24 Apr 2023 07:44:26 +0400 Subject: [PATCH 7/9] Add authorship --- .../Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst index 004dd6543e950b..bd5317744ff140 100644 --- a/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst +++ b/Misc/NEWS.d/next/Library/2023-04-22-02-41-06.gh-issue-103673.oE7S_k.rst @@ -1,2 +1,2 @@ -:mod:`socketserver` Gains ``ForkingUnixStreamServer`` and -``ForkingUnixDatagramServer`` classes. +:mod:`socketserver` gains ``ForkingUnixStreamServer`` and +``ForkingUnixDatagramServer`` classes. Patch by Jay Berry. From 5f61e059f7e6d0c6e748c060dedad7eeb0bb04b8 Mon Sep 17 00:00:00 2001 From: jb2170 Date: Mon, 24 Apr 2023 20:32:47 +0100 Subject: [PATCH 8/9] Update Lib/test/test_socketserver.py to use ForkingUnix{Stream,Datagram}Server from socketserver --- Lib/test/test_socketserver.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index 2fa5069423327a..eb4cfb43d3688f 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -47,15 +47,6 @@ def receive(sock, n, timeout=test.support.SHORT_TIMEOUT): else: raise RuntimeError("timed out on %r" % (sock,)) -if HAVE_UNIX_SOCKETS and HAVE_FORKING: - class ForkingUnixStreamServer(socketserver.ForkingMixIn, - socketserver.UnixStreamServer): - pass - - class ForkingUnixDatagramServer(socketserver.ForkingMixIn, - socketserver.UnixDatagramServer): - pass - @contextlib.contextmanager def simple_subprocess(testcase): @@ -211,7 +202,7 @@ def test_ThreadingUnixStreamServer(self): @requires_forking def test_ForkingUnixStreamServer(self): with simple_subprocess(self): - self.run_server(ForkingUnixStreamServer, + self.run_server(socketserver.ForkingUnixStreamServer, socketserver.StreamRequestHandler, self.stream_examine) @@ -247,7 +238,7 @@ def test_ThreadingUnixDatagramServer(self): @requires_unix_sockets @requires_forking def test_ForkingUnixDatagramServer(self): - self.run_server(ForkingUnixDatagramServer, + self.run_server(socketserver.ForkingUnixDatagramServer, socketserver.DatagramRequestHandler, self.dgram_examine) From ee13a90590ecd276311217f2ce87c654a3666024 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Mon, 24 Apr 2023 14:59:15 -0700 Subject: [PATCH 9/9] Add a versionadded 3.12 tag. --- Doc/library/socketserver.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst index 0e7b23edfd1123..d65e9fe81acf8b 100644 --- a/Doc/library/socketserver.rst +++ b/Doc/library/socketserver.rst @@ -147,6 +147,9 @@ server is the address family. These classes are pre-defined using the mix-in classes. +.. versionadded:: 3.12 + The ``ForkingUnixStreamServer`` and ``ForkingUnixDatagramServer`` classes + were added. To implement a service, you must derive a class from :class:`BaseRequestHandler` and redefine its :meth:`~BaseRequestHandler.handle` method. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy