implementation("com.fasterxml.jackson.core", "jackson-databind", "2.13.3")
implementation("net.sourceforge.argparse4j", "argparse4j", "0.9.0")
implementation("com.github.hypfvieh", "dbus-java-transport-native-unixsocket", "4.1.0")
- implementation("org.slf4j", "slf4j-api", "1.7.36")
- implementation("ch.qos.logback", "logback-classic", "1.2.11")
- implementation("org.slf4j", "jul-to-slf4j", "1.7.36")
+ implementation("org.slf4j", "slf4j-api", "2.0.0")
+ implementation("ch.qos.logback", "logback-classic", "1.4.0")
+ implementation("org.slf4j", "jul-to-slf4j", "2.0.0")
implementation(project(":lib"))
}
},
{
"name":"java.lang.Throwable",
- "methods":[{"name":"getMessage","parameterTypes":[] }]
+ "methods":[
+ {"name":"getMessage","parameterTypes":[] },
+ {"name":"toString","parameterTypes":[] }
+ ]
},
{
"name":"java.lang.UnsatisfiedLinkError",
"methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
},
{
- "name":"org.sqlite.Collation"
+ "name":"org.sqlite.Collation",
+ "methods":[{"name":"xCompare","parameterTypes":["java.lang.String","java.lang.String"] }]
},
{
- "name":"org.sqlite.Function"
+ "name":"org.sqlite.Function",
+ "fields":[
+ {"name":"args"},
+ {"name":"context"},
+ {"name":"value"}
+ ],
+ "methods":[{"name":"xFunc","parameterTypes":[] }]
},
{
- "name":"org.sqlite.Function$Aggregate"
+ "name":"org.sqlite.Function$Aggregate",
+ "methods":[
+ {"name":"clone","parameterTypes":[] },
+ {"name":"xFinal","parameterTypes":[] },
+ {"name":"xStep","parameterTypes":[] }
+ ]
},
{
- "name":"org.sqlite.Function$Window"
+ "name":"org.sqlite.Function$Window",
+ "methods":[
+ {"name":"xInverse","parameterTypes":[] },
+ {"name":"xValue","parameterTypes":[] }
+ ]
},
{
"name":"org.sqlite.ProgressHandler"
},
{
"name":"org.sqlite.core.DB",
- "methods":[{"name":"throwex","parameterTypes":["int"] }]
+ "methods":[
+ {"name":"throwex","parameterTypes":[] },
+ {"name":"throwex","parameterTypes":["int"] }
+ ]
},
{
- "name":"org.sqlite.core.DB$ProgressObserver"
+ "name":"org.sqlite.core.DB$ProgressObserver",
+ "methods":[{"name":"progress","parameterTypes":["int","int"] }]
},
{
"name":"org.sqlite.core.NativeDB",
"fields":[
- {"name":"colldatalist"},
+ {"name":"busyHandler"},
+ {"name":"commitListener"},
{"name":"pointer"},
- {"name":"udfdatalist"}
+ {"name":"progressHandler"},
+ {"name":"updateListener"}
+ ],
+ "methods":[
+ {"name":"stringToUtf8ByteArray","parameterTypes":["java.lang.String"] },
+ {"name":"throwex","parameterTypes":["java.lang.String"] }
]
}
]
{"name":"dataMessage_"},
{"name":"decryptionErrorMessage_"},
{"name":"nullMessage_"},
+ {"name":"pniSignatureMessage_"},
{"name":"receiptMessage_"},
{"name":"senderKeyDistributionMessage_"},
{"name":"storyMessage_"},
{"name":"bitField0_"},
{"name":"content_"},
{"name":"destinationUuid_"},
- {"name":"legacyMessage_"},
- {"name":"relay_"},
{"name":"serverGuid_"},
{"name":"serverTimestamp_"},
{"name":"sourceDevice_"},
- {"name":"sourceE164_"},
{"name":"sourceUuid_"},
{"name":"timestamp_"},
{"name":"type_"},
{
"pattern":"\\QMETA-INF/services/org.freedesktop.dbus.spi.transport.ITransportProvider\\E"
},
+ {
+ "pattern":"\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E"
+ },
{
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG\\E"
},
}
dependencies {
- implementation("com.github.turasa", "signal-service-java", "2.15.3_unofficial_55")
+ implementation("com.github.turasa", "signal-service-java", "2.15.3_unofficial_56")
implementation("com.fasterxml.jackson.core", "jackson-databind", "2.13.3")
implementation("com.google.protobuf", "protobuf-javalite", "3.11.4")
implementation("org.bouncycastle", "bcprov-jdk15on", "1.70")
- implementation("org.slf4j", "slf4j-api", "1.7.36")
- implementation("org.xerial", "sqlite-jdbc", "3.39.2.0")
+ implementation("org.slf4j", "slf4j-api", "2.0.0")
+ implementation("org.xerial", "sqlite-jdbc", "3.39.2.1")
implementation("com.zaxxer", "HikariCP", "5.0.1")
}
final var result = handleSendMessage(recipientId,
(messageSender, address, unidentifiedAccess) -> messageSender.sendReceipt(address,
unidentifiedAccess,
- receiptMessage));
+ receiptMessage,
+ false));
messageSendLogStore.insertIfPossible(receiptMessage.getWhen(), result, ContentHint.IMPLICIT, false);
handleSendMessageResult(result);
return result;
ContentHint.IMPLICIT,
message,
SignalServiceMessageSender.IndividualSendEvents.EMPTY,
+ false,
false));
}
ContentHint.RESENDABLE,
message,
SignalServiceMessageSender.IndividualSendEvents.EMPTY,
- urgent));
+ urgent,
+ false));
messageSendLogStore.insertIfPossible(message.getTimestamp(), result, ContentHint.RESENDABLE, urgent);
handleSendMessageResult(result);
return result;
import org.asamk.signal.manager.storage.SignalAccount;
import org.asamk.signal.manager.storage.recipients.Contact;
import org.asamk.signal.manager.storage.recipients.Profile;
+import org.asamk.signal.manager.storage.recipients.RecipientAddress;
import org.signal.libsignal.protocol.IdentityKey;
import org.signal.libsignal.protocol.InvalidKeyException;
import org.signal.libsignal.zkgroup.InvalidInputException;
}
final var contactRecord = record.getContact().get();
- final var address = contactRecord.getAddress();
+ final var address = new RecipientAddress(contactRecord.getServiceId().uuid(),
+ contactRecord.getNumber().orElse(null));
final var recipientId = account.getRecipientResolver().resolveRecipient(address);
final var contact = account.getContactStore().getContact(recipientId);
content = new byte[contentLen];
in.readFully(content);
}
- byte[] legacyMessage = null;
var legacyMessageLen = in.readInt();
if (legacyMessageLen > 0) {
- legacyMessage = new byte[legacyMessageLen];
+ byte[] legacyMessage = new byte[legacyMessageLen];
in.readFully(legacyMessage);
}
long serverReceivedTimestamp = 0;
addressOptional,
sourceDevice,
timestamp,
- legacyMessage,
content,
serverReceivedTimestamp,
serverDeliveredTimestamp,
try (var out = new DataOutputStream(f)) {
out.writeInt(6); // version
out.writeInt(envelope.getType());
- out.writeUTF(envelope.getSourceE164().isPresent() ? envelope.getSourceE164().get() : "");
+ out.writeUTF(""); // legacy number
out.writeUTF(envelope.getSourceUuid().isPresent() ? envelope.getSourceUuid().get() : "");
out.writeInt(envelope.getSourceDevice());
out.writeUTF(envelope.getDestinationUuid() == null ? "" : envelope.getDestinationUuid());
} else {
out.writeInt(0);
}
- if (envelope.hasLegacyMessage()) {
- out.writeInt(envelope.getLegacyMessage().length);
- out.write(envelope.getLegacyMessage());
- } else {
- out.writeInt(0);
- }
+ out.writeInt(0); // legacy message
out.writeLong(envelope.getServerReceivedTimestamp());
var uuid = envelope.getServerGuid();
out.writeUTF(uuid == null ? "" : uuid);
LogConfigurator.logFile = logFile;
}
- public void configure(LoggerContext lc) {
+ public ExecutionStatus configure(LoggerContext lc) {
final var rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME);
final var defaultLevel = verboseLevel > 1 ? Level.ALL : verboseLevel > 0 ? Level.DEBUG : Level.INFO;
final var fileAppender = createLoggingFileAppender(lc, createLayoutWrappingEncoder(fileLayout));
rootLogger.addAppender(fileAppender);
}
+ return ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY;
}
private ConsoleAppender<ILoggingEvent> createLoggingConsoleAppender(