Skip to content

Commit

Permalink
NativeTorController: Extract event subscriptions into own method
Browse files Browse the repository at this point in the history
  • Loading branch information
alvasw committed Aug 2, 2023
1 parent 0bd27bc commit 3e8ba31
Showing 1 changed file with 18 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
package bisq.tor.controller;

import bisq.tor.ClientTorrcGenerator;
import bisq.tor.controller.events.events.BootstrapEvent;
import bisq.tor.controller.events.ControllerEventHandler;
import bisq.tor.controller.events.events.BootstrapEvent;
import bisq.tor.controller.events.events.HsDescUploadedEvent;
import bisq.tor.controller.events.listener.BootstrapEventListener;
import bisq.tor.controller.events.listener.HsDescUploadedEventListener;
Expand Down Expand Up @@ -69,11 +69,7 @@ public TorControlConnection.CreateHiddenServiceResult createHiddenService(
TorControlConnection controlConnection = torControlConnection.orElseThrow();

controllerEventHandler.addHsDescUploadedListener(this);
try {
controlConnection.setEvents(List.of("HS_DESC"));
} catch (IOException e) {
throw new IllegalStateException("Can't set tor events.");
}
setEventSubscriptionsOnConnection(controlConnection, List.of("HS_DESC"));

TorControlConnection.CreateHiddenServiceResult result;
if (privateKey.isEmpty()) {
Expand Down Expand Up @@ -147,31 +143,33 @@ public void onHsDescUploaded(HsDescUploadedEvent uploadedEvent) {
}
}

private void addBootstrapEventListener(TorControlConnection controlConnection) throws IOException {
private void setEventSubscriptionsOnConnection(TorControlConnection controlConnection, List<String> events) {
try {
controlConnection.setEvents(events);
} catch (IOException e) {
throw new IllegalStateException("Can't set tor events.");
}
}

private void clearAllEventSubscriptionsOnConnection(TorControlConnection controlConnection) {
setEventSubscriptionsOnConnection(controlConnection, Collections.emptyList());
}

private void addBootstrapEventListener(TorControlConnection controlConnection) {
controllerEventHandler.addBootstrapListener(this);
controlConnection.setEventHandler(controllerEventHandler);
controlConnection.setEvents(List.of("STATUS_CLIENT"));
setEventSubscriptionsOnConnection(controlConnection, List.of("STATUS_CLIENT"));
}

private void removeBootstrapEventListener() {
TorControlConnection controlConnection = torControlConnection.orElseThrow();
controllerEventHandler.removeBootstrapListener(this);

try {
controlConnection.setEvents(Collections.emptyList());
} catch (IOException e) {
throw new IllegalStateException("Can't set tor events.");
}
clearAllEventSubscriptionsOnConnection(controlConnection);
}

private void removeHsDescUploadedEventListener() {
TorControlConnection controlConnection = torControlConnection.orElseThrow();
controllerEventHandler.removeHsDescUploadedListener(this);

try {
controlConnection.setEvents(Collections.emptyList());
} catch (IOException e) {
throw new IllegalStateException("Can't set tor events.");
}
clearAllEventSubscriptionsOnConnection(controlConnection);
}
}

0 comments on commit 3e8ba31

Please sign in to comment.