summaryrefslogtreecommitdiffstats
path: root/Lib/socketserver.py
diff options
context:
space:
mode:
authorjb2170 <email@jb2170.com>2023-04-24 22:35:52 (GMT)
committerGitHub <noreply@github.com>2023-04-24 22:35:52 (GMT)
commitd94b3a6f45a068b2d2e5a75127f3c69a652645da (patch)
treecb9b2f49d1a86aaefb3a91e352690209dc6159b5 /Lib/socketserver.py
parent209a0a76552c19088e74b0f27827b9214b6c2cf8 (diff)
downloadcpython-d94b3a6f45a068b2d2e5a75127f3c69a652645da.zip
cpython-d94b3a6f45a068b2d2e5a75127f3c69a652645da.tar.gz
cpython-d94b3a6f45a068b2d2e5a75127f3c69a652645da.tar.bz2
gh-103673: Add missing ForkingUnixStreamServer and ForkingUnixDatagramServer socketservers (#103674)
sockserver gains ForkingUnixStreamServer and ForkingUnixDatagramServer classes for consistency with all of the others. Ironically these existed but were buried in our test suite. Addresses #103673 <!-- gh-issue-number: gh-103673 --> * Issue: gh-103673 <!-- /gh-issue-number --> --------- Co-authored-by: Gregory P. Smith <greg@krypto.org> Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Diffstat (limited to 'Lib/socketserver.py')
-rw-r--r--Lib/socketserver.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/Lib/socketserver.py b/Lib/socketserver.py
index 842d526..cd028ef 100644
--- a/Lib/socketserver.py
+++ b/Lib/socketserver.py
@@ -141,6 +141,8 @@ if hasattr(socket, "AF_UNIX"):
__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 @@ if hasattr(socket, 'AF_UNIX'):
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.