mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-04-09 20:01:23 +00:00
set the same options on all Tubs
This commit is contained in:
parent
aea0abf54a
commit
b9edccbeaa
@ -359,11 +359,12 @@ class Client(node.Node, pollmixin.PollMixin):
|
||||
# (and everybody else who wants to use storage servers)
|
||||
ps = self.get_config("client", "peers.preferred", "").split(",")
|
||||
preferred_peers = tuple([p.strip() for p in ps if p != ""])
|
||||
sb = storage_client.StorageFarmBroker(permute_peers=True, preferred_peers=preferred_peers)
|
||||
sb = storage_client.StorageFarmBroker(permute_peers=True,
|
||||
preferred_peers=preferred_peers,
|
||||
tub_options=self.tub_options)
|
||||
self.storage_broker = sb
|
||||
sb.setServiceParent(self)
|
||||
|
||||
|
||||
connection_threshold = min(self.encoding_params["k"],
|
||||
self.encoding_params["happy"] + 1)
|
||||
helper = storage_client.ConnectedEnough(sb, connection_threshold)
|
||||
|
@ -201,18 +201,22 @@ class Node(service.MultiService):
|
||||
def create_tub(self):
|
||||
certfile = os.path.join(self.basedir, "private", self.CERTFILE)
|
||||
self.tub = Tub(certFile=certfile)
|
||||
self.tub.setOption("logLocalFailures", True)
|
||||
self.tub.setOption("logRemoteFailures", True)
|
||||
self.tub.setOption("expose-remote-exception-types", False)
|
||||
self.tub_options = {
|
||||
"logLocalFailures": True,
|
||||
"logRemoteFailures": True,
|
||||
"expose-remote-exception-types": False,
|
||||
}
|
||||
|
||||
# see #521 for a discussion of how to pick these timeout values.
|
||||
keepalive_timeout_s = self.get_config("node", "timeout.keepalive", "")
|
||||
if keepalive_timeout_s:
|
||||
self.tub.setOption("keepaliveTimeout", int(keepalive_timeout_s))
|
||||
self.tub_options["keepaliveTimeout"] = int(keepalive_timeout_s)
|
||||
disconnect_timeout_s = self.get_config("node", "timeout.disconnect", "")
|
||||
if disconnect_timeout_s:
|
||||
# N.B.: this is in seconds, so use "1800" to get 30min
|
||||
self.tub.setOption("disconnectTimeout", int(disconnect_timeout_s))
|
||||
self.tub_options["disconnectTimeout"] = int(disconnect_timeout_s)
|
||||
for (name, value) in self.tub_options.items():
|
||||
self.tub.setOption(name, value)
|
||||
|
||||
self.nodeid = b32decode(self.tub.tubID.upper()) # binary format
|
||||
self.write_config("my_nodeid", b32encode(self.nodeid).lower() + "\n")
|
||||
|
@ -102,11 +102,12 @@ class StorageFarmBroker(service.MultiService):
|
||||
I'm also responsible for subscribing to the IntroducerClient to find out
|
||||
about new servers as they are announced by the Introducer.
|
||||
"""
|
||||
def __init__(self, permute_peers, preferred_peers=()):
|
||||
def __init__(self, permute_peers, preferred_peers=(), tub_options={}):
|
||||
service.MultiService.__init__(self)
|
||||
assert permute_peers # False not implemented yet
|
||||
self.permute_peers = permute_peers
|
||||
self.preferred_peers = preferred_peers
|
||||
self._tub_options = tub_options
|
||||
|
||||
self.tubs = {} # self.tubs maps serverid -> Tub
|
||||
# self.servers maps serverid -> IServer, and keeps track of all the
|
||||
@ -141,9 +142,9 @@ class StorageFarmBroker(service.MultiService):
|
||||
def _ensure_tub_created(self, serverid):
|
||||
if serverid in self.tubs:
|
||||
return
|
||||
self.tubs[serverid] = Tub()
|
||||
|
||||
# XXX set options?
|
||||
self.tubs[serverid] = t = Tub()
|
||||
for (name, value) in self._tub_options.items():
|
||||
t.setOption(name, value)
|
||||
self.tubs[serverid].setServiceParent(self)
|
||||
|
||||
def _got_connection(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user