mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-29 13:16:01 +01:00
Store & submit spam reporting token from server.
This commit is contained in:
committed by
Nicholas Tinsley
parent
6a8e82ef91
commit
72449fd73e
@@ -759,8 +759,8 @@ public class SignalServiceAccountManager {
|
||||
return this.pushServiceSocket.getCurrencyConversions();
|
||||
}
|
||||
|
||||
public void reportSpam(ServiceId serviceId, String serverGuid) throws IOException {
|
||||
this.pushServiceSocket.reportSpam(serviceId, serverGuid);
|
||||
public void reportSpam(ServiceId serviceId, String serverGuid, String reportingToken) throws IOException {
|
||||
this.pushServiceSocket.reportSpam(serviceId, serverGuid, reportingToken);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -216,7 +216,8 @@ public class SignalServiceMessageReceiver {
|
||||
entity.getServerUuid(),
|
||||
entity.getDestinationUuid(),
|
||||
entity.isUrgent(),
|
||||
entity.isStory());
|
||||
entity.isStory(),
|
||||
entity.getReportingToken());
|
||||
} else {
|
||||
envelope = new SignalServiceEnvelope(entity.getType(),
|
||||
entity.getTimestamp(),
|
||||
@@ -226,7 +227,8 @@ public class SignalServiceMessageReceiver {
|
||||
entity.getServerUuid(),
|
||||
entity.getDestinationUuid(),
|
||||
entity.isUrgent(),
|
||||
entity.isStory());
|
||||
entity.isStory(),
|
||||
entity.getReportingToken());
|
||||
}
|
||||
|
||||
callback.onMessage(envelope);
|
||||
|
||||
@@ -65,7 +65,8 @@ public class SignalServiceEnvelope {
|
||||
String uuid,
|
||||
String destinationUuid,
|
||||
boolean urgent,
|
||||
boolean story)
|
||||
boolean story,
|
||||
byte[] reportingToken)
|
||||
{
|
||||
Envelope.Builder builder = Envelope.newBuilder()
|
||||
.setType(Envelope.Type.valueOf(type))
|
||||
@@ -88,6 +89,10 @@ public class SignalServiceEnvelope {
|
||||
builder.setContent(ByteString.copyFrom(content));
|
||||
}
|
||||
|
||||
if (reportingToken != null) {
|
||||
builder.setReportingToken(ByteString.copyFrom(reportingToken));
|
||||
}
|
||||
|
||||
this.envelope = builder.build();
|
||||
this.serverDeliveredTimestamp = serverDeliveredTimestamp;
|
||||
}
|
||||
@@ -100,7 +105,8 @@ public class SignalServiceEnvelope {
|
||||
String uuid,
|
||||
String destinationUuid,
|
||||
boolean urgent,
|
||||
boolean story)
|
||||
boolean story,
|
||||
byte[] reportingToken)
|
||||
{
|
||||
Envelope.Builder builder = Envelope.newBuilder()
|
||||
.setType(Envelope.Type.valueOf(type))
|
||||
@@ -118,6 +124,10 @@ public class SignalServiceEnvelope {
|
||||
builder.setContent(ByteString.copyFrom(content));
|
||||
}
|
||||
|
||||
if (reportingToken != null) {
|
||||
builder.setReportingToken(ByteString.copyFrom(reportingToken));
|
||||
}
|
||||
|
||||
this.envelope = builder.build();
|
||||
this.serverDeliveredTimestamp = serverDeliveredTimestamp;
|
||||
}
|
||||
@@ -253,6 +263,14 @@ public class SignalServiceEnvelope {
|
||||
return envelope.getStory();
|
||||
}
|
||||
|
||||
public boolean hasReportingToken() {
|
||||
return envelope.hasReportingToken();
|
||||
}
|
||||
|
||||
public byte[] getReportingToken() {
|
||||
return envelope.getReportingToken().toByteArray();
|
||||
}
|
||||
|
||||
private SignalServiceEnvelopeProto.Builder serializeToProto() {
|
||||
SignalServiceEnvelopeProto.Builder builder = SignalServiceEnvelopeProto.newBuilder()
|
||||
.setType(getType())
|
||||
@@ -279,6 +297,10 @@ public class SignalServiceEnvelope {
|
||||
builder.setDestinationUuid(getDestinationUuid());
|
||||
}
|
||||
|
||||
if (hasReportingToken()) {
|
||||
builder.setReportingToken(ByteString.copyFrom(getReportingToken()));
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
@@ -308,6 +330,7 @@ public class SignalServiceEnvelope {
|
||||
proto.getServerGuid(),
|
||||
proto.getDestinationUuid(),
|
||||
proto.getUrgent(),
|
||||
proto.getStory());
|
||||
proto.getStory(),
|
||||
proto.getReportingToken().toByteArray());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2487,10 +2487,10 @@ public class PushServiceSocket {
|
||||
}
|
||||
}
|
||||
|
||||
public void reportSpam(ServiceId serviceId, String serverGuid)
|
||||
public void reportSpam(ServiceId serviceId, String serverGuid, String reportingToken)
|
||||
throws NonSuccessfulResponseCodeException, MalformedResponseException, PushNetworkException
|
||||
{
|
||||
makeServiceRequest(String.format(REPORT_SPAM, serviceId.toString(), serverGuid), "POST", "");
|
||||
makeServiceRequest(String.format(REPORT_SPAM, serviceId.toString(), serverGuid), "POST", JsonUtil.toJson(new SpamTokenMessage(reportingToken)));
|
||||
}
|
||||
|
||||
private static class VerificationCodeResponseHandler implements ResponseCodeHandler {
|
||||
|
||||
@@ -43,6 +43,9 @@ public class SignalServiceEnvelopeEntity {
|
||||
@JsonProperty
|
||||
private Boolean story;
|
||||
|
||||
@JsonProperty
|
||||
private byte[] reportingToken;
|
||||
|
||||
public SignalServiceEnvelopeEntity() {}
|
||||
|
||||
public int getType() {
|
||||
@@ -100,4 +103,8 @@ public class SignalServiceEnvelopeEntity {
|
||||
public boolean isStory() {
|
||||
return story != null && story;
|
||||
}
|
||||
|
||||
public byte[] getReportingToken() {
|
||||
return reportingToken;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package org.whispersystems.signalservice.internal.push
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
|
||||
data class SpamTokenMessage(@JsonProperty val token: String)
|
||||
@@ -35,6 +35,7 @@ message SignalServiceEnvelopeProto {
|
||||
optional string destinationUuid = 11;
|
||||
optional bool urgent = 12 [default = true];
|
||||
optional bool story = 13;
|
||||
optional bytes reportingToken = 14;
|
||||
}
|
||||
|
||||
message MetadataProto {
|
||||
|
||||
@@ -36,7 +36,8 @@ message Envelope {
|
||||
optional bool urgent = 14 [default = true];
|
||||
reserved /*updatedPni*/ 15; // Not used presently, may be used in the future
|
||||
optional bool story = 16;
|
||||
// NEXT ID: 17
|
||||
optional bytes reporting_token = 17;
|
||||
// NEXT ID: 18
|
||||
}
|
||||
|
||||
message Content {
|
||||
|
||||
Reference in New Issue
Block a user