bpo-40635: Fix getfqdn() docstring and docs (GH-27971)
Co-authored-by: Ćukasz Langa <lukasz@langa.pl>
(cherry picked from commit fdcb675eed47b1f6054fae381af4388b16a6fff4)
Co-authored-by: andrei kulakov <andrei.avk@gmail.com>
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index e1db1b5..1b6dc4d 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -808,8 +808,9 @@
it is interpreted as the local host. To find the fully qualified name, the
hostname returned by :func:`gethostbyaddr` is checked, followed by aliases for the
host, if available. The first name which includes a period is selected. In
- case no fully qualified domain name is available, the hostname as returned by
- :func:`gethostname` is returned.
+ case no fully qualified domain name is available and *name* was provided,
+ it is returned unchanged. If *name* was empty or equal to ``'0.0.0.0'``,
+ the hostname from :func:`gethostname` is returned.
.. function:: gethostbyname(hostname)
diff --git a/Lib/socket.py b/Lib/socket.py
index fc11eb7..63ba0ac 100755
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -782,8 +782,9 @@ def getfqdn(name=''):
An empty argument is interpreted as meaning the local host.
First the hostname returned by gethostbyaddr() is checked, then
- possibly existing aliases. In case no FQDN is available, hostname
- from gethostname() is returned.
+ possibly existing aliases. In case no FQDN is available and `name`
+ was given, it is returned unchanged. If `name` was empty or '0.0.0.0',
+ hostname from gethostname() is returned.
"""
name = name.strip()
if not name or name == '0.0.0.0':