diff options
author | Isis Lovecruft <isis@torproject.org> | 2013-01-25 00:56:12 +0000 |
---|---|---|
committer | Isis Lovecruft <isis@torproject.org> | 2013-01-25 00:56:12 +0000 |
commit | 0911ec5330e460f79daca557bb03114276def026 (patch) | |
tree | fc50a845cfa46cb0433d76458cfdb8a455832261 /leap/util | |
parent | da15176bfb75122ce22922a670fe23afd2895178 (diff) |
Clean up directory structure to be better aligned with other leap python
project, add __init__.py to modules directories, and add query callback
function to couchdb in alias_resolver.py for check_recipient feature.
Diffstat (limited to 'leap/util')
-rw-r--r-- | leap/util/net.py | 126 | ||||
-rw-r--r-- | leap/util/version.py | 69 |
2 files changed, 0 insertions, 195 deletions
diff --git a/leap/util/net.py b/leap/util/net.py deleted file mode 100644 index a4104d0..0000000 --- a/leap/util/net.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -''' -net.py -------- -Utilities for networking. - -@authors: Isis Agora Lovecruft, <isis@leap.se> 0x2cdb8b35 -@license: see included LICENSE file -@copyright: 2013 Isis Agora Lovecruft -''' - -import ipaddr -import sys -import socket - -from random import randint - -from leap.mx.utils import log - - -PLATFORMS = {'LINUX': sys.platform.startswith("linux"), - 'OPENBSD': sys.platform.startswith("openbsd"), - 'FREEBSD': sys.platform.startswith("freebsd"), - 'NETBSD': sys.platform.startswith("netbsd"), - 'DARWIN': sys.platform.startswith("darwin"), - 'SOLARIS': sys.platform.startswith("sunos"), - 'WINDOWS': sys.platform.startswith("win32")} - - -class UnsupportedPlatform(Exception): - """Support for this platform is not currently available.""" - -class IfaceError(Exception): - """Could not find default network interface.""" - -class PermissionsError(SystemExit): - """This test requires admin or root privileges to run. Exiting...""" - - -def checkIPaddress(addr): - """ - Check that a given string is a valid IPv4 or IPv6 address. - - @param addr: Any string defining an IP address, i.e. '1.2.3.4' or '::1'. - @returns: True if :param:`addr` defines a valid IPAddress, else False. - """ - import ipaddr - - try: - check = ipaddr.IPAddress(addr) - except ValueError, ve: - log.warn(ve.message) - return False - else: - return True - -def getClientPlatform(platform_name=None): - for name, test in PLATFORMS.items(): - if not platform_name or platform_name.upper() == name: - if test: - return name, test - -def getPosixIfaces(): - from twisted.internet.test import _posixifaces - log.msg("Attempting to discover network interfaces...") - ifaces = _posixifaces._interfaces() - return ifaces - -def getWindowsIfaces(): - from twisted.internet.test import _win32ifaces - log.msg("Attempting to discover network interfaces...") - ifaces = _win32ifaces._interfaces() - return ifaces - -def getIfaces(platform_name=None): - client, test = getClientPlatform(platform_name) - if client: - if client == ('LINUX' or 'DARWIN') or client[-3:] == 'BSD': - return getPosixIfaces() - elif client == 'WINDOWS': - return getWindowsIfaces() - ## XXX fixme figure out how to get iface for Solaris - else: - raise UnsupportedPlatform - else: - raise UnsupportedPlatform - -def getRandomUnusedPort(addr=None): - free = False - while not free: - port = randint(1024, 65535) - s = socket.socket() - try: - s.bind((addr, port)) - free = True - except: - pass - s.close() - return port - -def getNonLoopbackIfaces(platform_name=None): - try: - ifaces = getIfaces(platform_name) - except UnsupportedPlatform, up: - log.err(up) - - if not ifaces: - log.msg("Unable to discover network interfaces...") - return None - else: - found = [{i[0]: i[2]} for i in ifaces if i[0] != 'lo'] - log.debug("Found non-loopback interfaces: %s" % found) - for iface in ifaces: - try: - interface = checkInterfaces(found) - except IfaceError, ie: - log.err(ie) - return None - else: - return interfaces - - -def getLocalAddress(): - default_iface = getDefaultIface() - return default_iface.ipaddr diff --git a/leap/util/version.py b/leap/util/version.py deleted file mode 100644 index ecf8a22..0000000 --- a/leap/util/version.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -''' -version.py ----------- -Version information for leap_mx. - -@authors: Isis Agora Lovecruft, <isis@leap.se> 0x2cdb8b35 -@licence: see included LICENSE file -@copyright: 2013 Isis Agora Lovecruft -''' - -import os - -from twisted.python import versions - -name = 'leap_mx' -version = versions.Version(name, 0, 0, 1, None) -authors = [('Isis Agora Lovecruft', '<isis@leap.se>', '0x2cdb8b35'),] -git_url = 'https://github.com/isislovecruft/leap_mx/' -website = 'https://leap.se' - -def getVersion(): - version.authors = authors - version.git_url = git_url - version.website = website - return version - -def getRepoDir(): - here = os.getcwd() - base = here.rsplit(name, 1)[0] - repo = os.path.join(base, name) - return repo - -def __make_text__(extra_text=None): - splitter = "-" * len(version.__str__()) - header = ["\n%s\n" % version.__str__(), "%s\n" % splitter] - footer = ["Website: \t%s\n" % website, "Github: \t%s\n" % git_url, "\n"] - contacts = ["\t%s, %s %s\n" % (a[0], a[1], a[2]) for a in authors] - contacts.insert(0, "Authors: ") - - with_contacts = header + contacts - - if extra_text is not None: - if isinstance(extra_text, iter): - with_contacts.extend((e for e in extra_text)) - elif isinstance(extra_text, str): - with_contacts.append(extra_text) - else: - print "Couldn't add extra text..." - - text = with_contacts + footer - return text - -def __update_version__(): - repo = getRepoDir() - version_file = os.path.join(repo, 'VERSION') - version_text = __make_text__() - - with open(version_file, 'w+') as fh: - fh.writelines((line for line in version_text)) - fh.flush() - fh.truncate() - - -if __name__ == "__main__": - print "Generating new VERSION file..." - __update_version__() - print "Done." |