From 2bd2f67693a0bb5256f179adfed20e7ddf056c52 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 5 Mar 2020 14:37:55 +0000 Subject: [PATCH] Interrupt sync sessions when transport becomes inactive. This ensures connections are closed when the user disables a transport. --- .../org/briarproject/bramble/sync/DuplexOutgoingSession.java | 4 ++++ .../org/briarproject/bramble/sync/SimplexOutgoingSession.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java index a74302d62..6eed42511 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java @@ -12,6 +12,7 @@ import org.briarproject.bramble.api.lifecycle.IoExecutor; import org.briarproject.bramble.api.lifecycle.event.LifecycleEvent; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.plugin.TransportId; +import org.briarproject.bramble.api.plugin.event.TransportInactiveEvent; import org.briarproject.bramble.api.sync.Ack; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.Offer; @@ -238,6 +239,9 @@ class DuplexOutgoingSession implements SyncSession, EventListener { } else if (e instanceof CloseSyncConnectionsEvent) { CloseSyncConnectionsEvent c = (CloseSyncConnectionsEvent) e; if (c.getTransportId().equals(transportId)) interrupt(); + } else if (e instanceof TransportInactiveEvent) { + TransportInactiveEvent t = (TransportInactiveEvent) e; + if (t.getTransportId().equals(transportId)) interrupt(); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java index 2697a2cfc..1d32ca4ee 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java @@ -12,6 +12,7 @@ import org.briarproject.bramble.api.lifecycle.IoExecutor; import org.briarproject.bramble.api.lifecycle.event.LifecycleEvent; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.plugin.TransportId; +import org.briarproject.bramble.api.plugin.event.TransportInactiveEvent; import org.briarproject.bramble.api.sync.Ack; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.SyncRecordWriter; @@ -131,6 +132,9 @@ class SimplexOutgoingSession implements SyncSession, EventListener { } else if (e instanceof CloseSyncConnectionsEvent) { CloseSyncConnectionsEvent c = (CloseSyncConnectionsEvent) e; if (c.getTransportId().equals(transportId)) interrupt(); + } else if (e instanceof TransportInactiveEvent) { + TransportInactiveEvent t = (TransportInactiveEvent) e; + if (t.getTransportId().equals(transportId)) interrupt(); } }