I wonder if we can't rejigger this to be a top-level function which is then handed to `ThreadHandler` as a partially applied function, e.g. `functools.partial(forwarder, sockets, host, port)`? Again, inner functions are a tactic used elsewhere in Fabric but as I look forward to version 2 (wherein this sort of network code would ideally get reused, not rewritten) I'm hoping to get rid of this kind of closure abuse if possible.