onion_transport.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:txmix 作者: applied-mixnetworks 项目源码 文件源码
def do_build_transport(self):
        if len(self.tor_control_unix_socket) == 0:
            assert len(self.onion_tcp_interface_ip) != 0
            tor_controller_endpoint_desc = "tcp:%s:%s" % (self.tor_control_tcp_host, self.tor_control_tcp_port)
        else:
            tor_controller_endpoint_desc = "unix:%s" % self.tor_control_unix_socket
        tor_controller_endpoint = endpoints.clientFromString(self.reactor, tor_controller_endpoint_desc)
        tor = yield txtorcon.connect(self.reactor, control_endpoint=tor_controller_endpoint)
        onion_tcp_port = 0
        if len(self.onion_unix_socket) == 0:
            onion_tcp_port = yield txtorcon.util.available_tcp_port(self.reactor)
            hs = txtorcon.EphemeralHiddenService(["%s %s:%s" % (self.onion_service_port, self.onion_tcp_interface_ip, onion_tcp_port)])
        else:
            hs = txtorcon.EphemeralHiddenService(["%s unix:%s" % (self.onion_service_port, self.onion_unix_socket)])
        yield hs.add_to_tor(tor.protocol)
        transport = OnionTransport(self.reactor,
                                   tor,
                                   onion_host=hs.hostname.encode('utf-8'),
                                   onion_port=self.onion_service_port,
                                   onion_key=hs.private_key.encode('utf-8'),
                                   onion_tcp_interface_ip=self.onion_tcp_interface_ip,
                                   onion_tcp_port=onion_tcp_port)
        yield hs.remove_from_tor(tor.protocol)
        defer.returnValue(transport)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号