1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-03-13 10:29:35 +01:00

Proxy configuration is now properly handled

This commit is contained in:
Cristian Maglie 2020-04-16 22:12:02 +02:00
parent 0a3370ccc6
commit 52b54b386a
2 changed files with 17 additions and 4 deletions

View File

@ -29,7 +29,6 @@
package cc.arduino.cli;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
@ -40,9 +39,9 @@ import cc.arduino.cli.commands.Commands.InitResp;
import cc.arduino.cli.commands.Common.Instance;
import cc.arduino.cli.settings.SettingsGrpc;
import cc.arduino.cli.settings.SettingsGrpc.SettingsBlockingStub;
import cc.arduino.cli.settings.SettingsOuterClass;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.grpc.StatusException;
import processing.app.BaseNoGui;
import processing.app.debug.MessageSiphon;
import processing.app.helpers.ProcessUtils;
@ -90,7 +89,7 @@ public class ArduinoCore {
// async = ArduinoCoreGrpc.newStub(channel);
}
public ArduinoCoreInstance init() {
public ArduinoCoreInstance init() throws StatusException {
Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance());
Instance instance = null;
while (resp.hasNext()) {
@ -109,6 +108,8 @@ public class ArduinoCore {
instance = r.getInstance();
}
}
return new ArduinoCoreInstance(instance, coreBlocking, settingsBlocking);
ArduinoCoreInstance core = new ArduinoCoreInstance(instance, coreBlocking, settingsBlocking);
core.updateSettingFromPreferences();
return core;
}
}

View File

@ -34,9 +34,12 @@ import static processing.app.I18n.tr;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import com.google.protobuf.ByteString;
@ -68,9 +71,11 @@ import cc.arduino.cli.settings.SettingsOuterClass;
import cc.arduino.cli.settings.SettingsGrpc.SettingsBlockingStub;
import cc.arduino.contributions.ProgressListener;
import cc.arduino.contributions.libraries.ContributedLibraryRelease;
import cc.arduino.net.CustomProxySelector;
import io.grpc.StatusException;
import io.grpc.StatusRuntimeException;
import processing.app.BaseNoGui;
import processing.app.PreferencesData;
public class ArduinoCoreInstance {
@ -89,6 +94,13 @@ public class ArduinoCoreInstance {
public void updateSettingFromPreferences() throws StatusException {
setDataDir(BaseNoGui.getSettingsFolder());
setSketchbookDir(BaseNoGui.getSketchbookFolder());
try {
Optional<URI> proxy = new CustomProxySelector(PreferencesData.getMap())
.getProxyURIFor(new URL("https://arduino.cc").toURI());
setProxyUrl(proxy.isPresent() ? proxy.get().toString() : "");
} catch (Exception e) {
e.printStackTrace();
}
rescan();
}