##// END OF EJS Templates
Merge my main trunk work. Lots of testing and documentation work....
Merge my main trunk work. Lots of testing and documentation work. See the individual log messages for details, this is a branch that added a lot of tests, as well as improving the testing system quite a bit so it is more robust and identifies many more tests. Various API cleanups, bug fixes and improvements went in as well.

File last commit:

r1234:52b55407
r1878:56332962 merge
Show More
fcutil.py
69 lines | 2.1 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""Foolscap related utilities."""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
import os
from foolscap import Tub, UnauthenticatedTub
def check_furl_file_security(furl_file, secure):
"""Remove the old furl_file if changing security modes."""
if os.path.isfile(furl_file):
f = open(furl_file, 'r')
oldfurl = f.read().strip()
f.close()
if (oldfurl.startswith('pb://') and not secure) or (oldfurl.startswith('pbu://') and secure):
os.remove(furl_file)
def is_secure(furl):
if is_valid(furl):
if furl.startswith("pb://"):
return True
elif furl.startswith("pbu://"):
return False
else:
raise ValueError("invalid furl: %s" % furl)
def is_valid(furl):
if isinstance(furl, str):
if furl.startswith("pb://") or furl.startswith("pbu://"):
return True
else:
return False
def find_furl(furl_or_file):
if isinstance(furl_or_file, str):
if is_valid(furl_or_file):
return furl_or_file
if os.path.isfile(furl_or_file):
furl = open(furl_or_file, 'r').read().strip()
if is_valid(furl):
return furl
raise ValueError("not a furl or a file containing a furl: %s" % furl_or_file)
# We do this so if a user doesn't have OpenSSL installed, it will try to use
# an UnauthenticatedTub. But, they will still run into problems if they
# try to use encrypted furls.
try:
import OpenSSL
except:
Tub = UnauthenticatedTub
have_crypto = False
else:
have_crypto = True