def __init__(self, reader, name, msg): self.reader = reader self.name = name self.msg = msg destAddress = self.reader.book[self.name]['tracker'] dest, outport, v6 = decodeAddress(destAddress) recipient = self.reader.book[self.name]['pubkey'] self.endkey = decode(recipient) self.reader.trackback.setPutPeerForEndpointCallback( recipient, self.foundPeer) self.tracker = TrackerClient(self.reader.router, addr=(dest, outport)) self.tracker.getPeerForEndpoint(recipient)
def __init__(self, router, endpoint): self.router = router self.endpoint = endpoint self.keys = router.keys self.maildir = 'spool/' + encode(endpoint.public.bytes) self.addressBook = YamlMap('config/dustmail-addressbook.yaml') self.done = Event() self.commandDone = Event() self.book = YamlMap('config/dustmail-addressbook.yaml') dustmailConfig = YamlMap('config/dustmail-config.yaml') try: destAddress = dustmailConfig['tracker'] except: entry = self.addInvite() destAddress = entry['tracker'] dustmailConfig['tracker'] = destAddress dest, outport, v6 = decodeAddress(destAddress) print('Registering with tracker...') self.tracker = TrackerClient(self.router, addr=(dest, outport)) host = getPublicIP(v6) inport = dustmailConfig['port'] self.tracker.putPeerForEndpoint(encode(self.endpoint.public.bytes), [ encode(self.endpoint.public.bytes), encodeAddress((host, inport)) ]) invite = self.keys.generateInvite(inport, v6=v6) self.tracker.putInviteForPeer(encodeAddress((host, inport)), encode(invite.message)) self.trackback = self.router.getService('trackback')
keys.loadKeypair('config/id.yaml') keys.loadIncomingInvites('config/incoming_invites.ip') keys.loadOutgoingInvites('config/outgoing_invites.ip') keypair = keys.getKeypair() pubkey = keypair.public destpubkey = pubkey pubkeyhex = encode(pubkey.bytes) destpubkeyhex = pubkeyhex router = PacketRouter(v6, inport, keys, passwd) router.connect(dest, outport) dustmail = DustmailClient(router) tracker = TrackerClient(router) trackback = router.getService('trackback') router.start() class PendingMessage: def __init__(self, tracker, trackback, dustmail, keypair, endkey, msg): self.dustmail = dustmail self.keypair = keypair self.endkey = endkey self.msg = msg trackback.setPutPeerForEndpointCallback(encode(endkey.bytes), self.foundPeer) tracker.getPeerForEndpoint(encode(endkey.bytes))