private void updatePubkey(BitmessageAddress address, Pubkey pubkey) { address.setPubkey(pubkey); LOG.info("Got pubkey for contact " + address); ctx.getAddressRepository().save(address); List<Plaintext> messages = ctx.getMessageRepository().findMessages(PUBKEY_REQUESTED, address); LOG.info("Sending " + messages.size() + " messages for contact " + address); for (Plaintext msg : messages) { ctx.getLabeler().markAsSending(msg); ctx.getMessageRepository().save(msg); ctx.send(msg); } }
public void send(final Plaintext msg) { if (msg.getFrom() == null || msg.getFrom().getPrivateKey() == null) { throw new IllegalArgumentException("'From' must be an identity, i.e. have a private key."); } labeler().markAsSending(msg); BitmessageAddress to = msg.getTo(); if (to != null) { if (to.getPubkey() == null) { LOG.info("Public key is missing from recipient. Requesting."); ctx.requestPubkey(to); } if (to.getPubkey() == null) { ctx.getMessageRepository().save(msg); } } if (to == null || to.getPubkey() != null) { LOG.info("Sending message."); ctx.getMessageRepository().save(msg); if (msg.getType() == MSG) { ctx.send(msg); } else { ctx.send( msg.getFrom(), to, Factory.getBroadcast(msg), msg.getTTL() ); } } }