diff options
Diffstat (limited to 'lib/socket_wrapper/socket.py')
-rw-r--r-- | lib/socket_wrapper/socket.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/socket_wrapper/socket.py b/lib/socket_wrapper/socket.py new file mode 100644 index 0000000000..bba96653af --- /dev/null +++ b/lib/socket_wrapper/socket.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# +# Wrapper for socket wrapper (based on python socket wrapper) +# Copyright (C) Amitay Isaacs 2011 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +import _socket +from _socket import * + +from samba.socket_wrapper import socket + + +def getfqdn(name=''): + """Get fully qualified domain name from 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. + """ + name = name.strip() + if not name or name == '0.0.0.0': + name = gethostname() + try: + hostname, aliases, ipaddrs = gethostbyaddr(name) + except error: + pass + else: + aliases.insert(0, hostname) + for name in aliases: + if '.' in name: + break + else: + name = hostname + return name + + +_GLOBAL_DEFAULT_TIMEOUT = object() |