Fixed problems after merging
This commit is contained in:
@ -165,8 +165,8 @@ class DefaultMessageListener implements NetworkHandler.MessageListener {
|
||||
listener.receive(msg);
|
||||
updatePubkey(msg.getFrom(), msg.getFrom().getPubkey());
|
||||
|
||||
if (msg.getType() == Type.MSG && identity.has(Pubkey.Feature.DOES_ACK)) {
|
||||
ObjectMessage ack = plaintext.getAckMessage();
|
||||
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());
|
||||
|
@ -16,14 +16,10 @@
|
||||
|
||||
package ch.dissem.bitmessage;
|
||||
|
||||
import ch.dissem.bitmessage.entity.BitmessageAddress;
|
||||
import ch.dissem.bitmessage.entity.Encrypted;
|
||||
import ch.dissem.bitmessage.entity.ObjectMessage;
|
||||
import ch.dissem.bitmessage.entity.payload.*;
|
||||
import ch.dissem.bitmessage.exception.ApplicationException;
|
||||
import ch.dissem.bitmessage.entity.*;
|
||||
import ch.dissem.bitmessage.entity.payload.*;
|
||||
import ch.dissem.bitmessage.entity.valueobject.Label;
|
||||
import ch.dissem.bitmessage.exception.ApplicationException;
|
||||
import ch.dissem.bitmessage.ports.*;
|
||||
import ch.dissem.bitmessage.utils.Singleton;
|
||||
import ch.dissem.bitmessage.utils.TTL;
|
||||
@ -36,7 +32,6 @@ import java.util.Arrays;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import static ch.dissem.bitmessage.entity.Plaintext.Status.SENT;
|
||||
import static ch.dissem.bitmessage.utils.UnixTime.DAY;
|
||||
|
||||
/**
|
||||
* The internal context should normally only be used for port implementations. If you need it in your client
|
||||
@ -182,11 +177,11 @@ public class InternalContext {
|
||||
if (payload instanceof Msg && recipient.has(Pubkey.Feature.DOES_ACK)) {
|
||||
ObjectMessage ackMessage = ((Msg) payload).getPlaintext().getAckMessage();
|
||||
messageCallback.proofOfWorkStarted(payload);
|
||||
security.doProofOfWork(ackMessage, networkNonceTrialsPerByte, networkExtraBytes, new ProofOfWorkEngine.Callback() {
|
||||
cryptography.doProofOfWork(ackMessage, NETWORK_NONCE_TRIALS_PER_BYTE, NETWORK_EXTRA_BYTES, new ProofOfWorkEngine.Callback() {
|
||||
@Override
|
||||
public void onNonceCalculated(byte[] nonce) {
|
||||
public void onNonceCalculated(byte[] initialHash, byte[] nonce) {
|
||||
object.encrypt(recipient.getPubkey());
|
||||
proofOfWorkService.doProofOfWork(to, object);
|
||||
proofOfWorkService.doProofOfWork(recipient, object);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@ -318,7 +313,7 @@ public class InternalContext {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNonceCalculated(byte[] nonce) {
|
||||
public void onNonceCalculated(byte[] initialHash, byte[] nonce) {
|
||||
object.setNonce(nonce);
|
||||
messageCallback.proofOfWorkCompleted(payload);
|
||||
if (payload instanceof PlaintextHolder) {
|
||||
|
@ -175,7 +175,7 @@ public class Plaintext implements Streamable {
|
||||
if (type == Type.MSG) {
|
||||
if (to.has(Pubkey.Feature.DOES_ACK)) {
|
||||
ByteArrayOutputStream ack = new ByteArrayOutputStream();
|
||||
ackMessage.write(ack);
|
||||
getAckMessage().write(ack);
|
||||
byte[] data = ack.toByteArray();
|
||||
Encode.varInt(data.length, out);
|
||||
out.write(data);
|
||||
|
@ -0,0 +1,33 @@
|
||||
package ch.dissem.bitmessage.entity.payload;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
/**
|
||||
* Created by chrigu on 06.11.15.
|
||||
*/
|
||||
public class Ack extends ObjectPayload {
|
||||
private final long stream;
|
||||
private final byte[] data;
|
||||
|
||||
public Ack(long version, long stream, byte[] data) {
|
||||
super(version);
|
||||
this.stream = stream;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ObjectType getType() {
|
||||
return ObjectType.MSG;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getStream() {
|
||||
return stream;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(OutputStream out) throws IOException {
|
||||
out.write(data);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user