Merge branch '1420-tor-status-update' into 'master'

Disable TorPlugin before applying changed settings

Closes #1420

See merge request briar/briar!953
This commit is contained in:
akwizgran
2018-10-15 12:54:41 +00:00

View File

@@ -627,6 +627,9 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener {
if (s.getNamespace().equals(ID.getString())) { if (s.getNamespace().equals(ID.getString())) {
LOG.info("Tor settings updated"); LOG.info("Tor settings updated");
settings = s.getSettings(); settings = s.getSettings();
// Works around a bug introduced in Tor 0.3.4.8. Could be
// replaced with callback.transportDisabled() when fixed.
disableNetwork();
updateConnectionStatus(networkManager.getNetworkStatus()); updateConnectionStatus(networkManager.getNetworkStatus());
} }
} else if (e instanceof NetworkStatusEvent) { } else if (e instanceof NetworkStatusEvent) {
@@ -634,6 +637,16 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener {
} }
} }
private void disableNetwork() {
connectionStatusExecutor.execute(() -> {
try {
enableNetwork(false);
} catch (IOException ex) {
logException(LOG, WARNING, ex);
}
});
}
private void updateConnectionStatus(NetworkStatus status) { private void updateConnectionStatus(NetworkStatus status) {
connectionStatusExecutor.execute(() -> { connectionStatusExecutor.execute(() -> {
if (!running) return; if (!running) return;