public void updateNextTry() { if (to != null) { if (nextTry == null) { if (sent != null && to.has(Feature.DOES_ACK)) { nextTry = UnixTime.now(+ttl); retries++; } } else { nextTry = nextTry + (1 << retries) * ttl; retries++; } } }
out.write(message); if (type == Type.MSG) { if (to.has(Feature.DOES_ACK) && getAckMessage() != null) { ByteArrayOutputStream ack = new ByteArrayOutputStream(); getAckMessage().write(ack);
buffer.put(message); if (type == Type.MSG) { if (to.has(Feature.DOES_ACK) && getAckMessage() != null) { Encode.varBytes(Encode.bytes(getAckMessage()), buffer); } else {
protected void receive(InventoryVector iv, Plaintext msg) { msg.setInventoryVector(iv); labeler.setLabels(msg); ctx.getMessageRepository().save(msg); listener.receive(msg); updatePubkey(msg.getFrom(), msg.getFrom().getPubkey()); if (msg.getType() == Plaintext.Type.MSG && msg.getTo().has(Pubkey.Feature.DOES_ACK)) { ObjectMessage ack = msg.getAckMessage(); if (ack != null) { ctx.getInventory().storeObject(ack); ctx.getNetworkHandler().offer(ack.getInventoryVector()); } } } }