diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxOwnerSession.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxOwnerSession.java index bf31990da063274d39503fd3de62bb403a8c8d31..ced27eae5239a093459b2cb1c7503e12ad54134c 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxOwnerSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxOwnerSession.java @@ -1,28 +1,27 @@ package org.briarproject.bramble.mailbox; import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.sync.SyncSession; import org.briarproject.bramble.api.sync.SyncSessionFactory; import org.briarproject.bramble.api.transport.KeyManager; import org.briarproject.bramble.api.transport.StreamReaderFactory; import org.briarproject.bramble.api.transport.StreamWriterFactory; import org.briarproject.bramble.mailbox.protocol.MailboxProtocol; -import org.briarproject.bramble.mailbox.protocol.MailboxRequestStore; -import org.briarproject.bramble.mailbox.protocol.MailboxRequestSync; import org.briarproject.bramble.mailbox.protocol.MailboxRequestTake; import java.io.IOException; import java.util.concurrent.Executor; import java.util.logging.Logger; -import static java.util.logging.Level.WARNING; -import static org.briarproject.bramble.util.LogUtils.logException; +import static java.util.logging.Level.INFO; -class MailboxOwnerSession extends MailboxSession { +class MailboxOwnerSession extends AbstractMailboxSession { private static final Logger LOG = Logger.getLogger(MailboxOwnerSession.class.getName()); private final Executor ioExecutor; private final MailboxProtocol mailboxProtocol; + private SyncSession syncSession; public MailboxOwnerSession(ContactId contactId, Executor ioExecutor, KeyManager keyManager, @@ -43,23 +42,19 @@ class MailboxOwnerSession extends MailboxSession { @Override public void run() { ioExecutor.execute(() -> readRequests()); - runDuplexOutgoingSession(); - } - - @Override - public void handleSync(MailboxRequestSync req) { + syncSession = createDuplexOutgoingSession(); try { - handleSyncStream(req.getSyncStream()); + syncSession.run(); } catch (IOException e) { - logException(LOG, WARNING, e); + if (LOG.isLoggable(INFO)) + LOG.info(e.toString()); } } @Override - public void handleStore(MailboxRequestStore mailboxRequestStore) { - } - - @Override - public void handleTake(MailboxRequestTake mailboxRequestTake) { + public void handleTake(MailboxRequestTake mailboxRequestTake) + throws MailboxSessionHandleException { + throw new MailboxSessionHandleException( + "MailboxOwnerSession does not support the TAKE request"); } }