From 04cf8e16a9a90691c95f0eb9b078c8a1b52f62cb Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 6 Jul 2021 16:24:43 +0100 Subject: [PATCH] Check whether we have transport keys before trying to send data. --- .../bramble/plugin/file/RemovableDriveManagerImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveManagerImpl.java index a0d1848cd..386463dd7 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveManagerImpl.java @@ -9,6 +9,7 @@ import org.briarproject.bramble.api.plugin.file.RemovableDriveManager; import org.briarproject.bramble.api.plugin.file.RemovableDriveTask; import org.briarproject.bramble.api.properties.TransportProperties; import org.briarproject.bramble.api.properties.TransportPropertyManager; +import org.briarproject.bramble.api.transport.KeyManager; import java.util.concurrent.Executor; @@ -28,23 +29,28 @@ class RemovableDriveManagerImpl private final Executor ioExecutor; private final DatabaseComponent db; + private final KeyManager keyManager; private final TransportPropertyManager transportPropertyManager; private final RemovableDriveTaskFactory taskFactory; private final Object lock = new Object(); @GuardedBy("lock") + @Nullable private RemovableDriveTask reader = null; @GuardedBy("lock") + @Nullable private RemovableDriveTask writer = null; @Inject RemovableDriveManagerImpl( @IoExecutor Executor ioExecutor, DatabaseComponent db, + KeyManager keyManager, TransportPropertyManager transportPropertyManager, RemovableDriveTaskFactory taskFactory) { this.ioExecutor = ioExecutor; this.db = db; + this.keyManager = keyManager; this.transportPropertyManager = transportPropertyManager; this.taskFactory = taskFactory; } @@ -91,6 +97,7 @@ class RemovableDriveManagerImpl @Override public boolean isTransportSupportedByContact(ContactId c) throws DbException { + if (!keyManager.canSendOutgoingStreams(c, ID)) return false; TransportProperties p = transportPropertyManager.getRemoteProperties(c, ID); return "true".equals(p.get(PROP_SUPPORTED));