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; package cc.arduino.cli;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Iterator; 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.commands.Common.Instance;
import cc.arduino.cli.settings.SettingsGrpc; import cc.arduino.cli.settings.SettingsGrpc;
import cc.arduino.cli.settings.SettingsGrpc.SettingsBlockingStub; import cc.arduino.cli.settings.SettingsGrpc.SettingsBlockingStub;
import cc.arduino.cli.settings.SettingsOuterClass;
import io.grpc.ManagedChannel; import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder; import io.grpc.ManagedChannelBuilder;
import io.grpc.StatusException;
import processing.app.BaseNoGui; import processing.app.BaseNoGui;
import processing.app.debug.MessageSiphon; import processing.app.debug.MessageSiphon;
import processing.app.helpers.ProcessUtils; import processing.app.helpers.ProcessUtils;
@ -90,7 +89,7 @@ public class ArduinoCore {
// async = ArduinoCoreGrpc.newStub(channel); // async = ArduinoCoreGrpc.newStub(channel);
} }
public ArduinoCoreInstance init() { public ArduinoCoreInstance init() throws StatusException {
Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance()); Iterator<InitResp> resp = coreBlocking.init(InitReq.getDefaultInstance());
Instance instance = null; Instance instance = null;
while (resp.hasNext()) { while (resp.hasNext()) {
@ -109,6 +108,8 @@ public class ArduinoCore {
instance = r.getInstance(); 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.File;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Optional;
import com.google.protobuf.ByteString; 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.cli.settings.SettingsGrpc.SettingsBlockingStub;
import cc.arduino.contributions.ProgressListener; import cc.arduino.contributions.ProgressListener;
import cc.arduino.contributions.libraries.ContributedLibraryRelease; import cc.arduino.contributions.libraries.ContributedLibraryRelease;
import cc.arduino.net.CustomProxySelector;
import io.grpc.StatusException; import io.grpc.StatusException;
import io.grpc.StatusRuntimeException; import io.grpc.StatusRuntimeException;
import processing.app.BaseNoGui; import processing.app.BaseNoGui;
import processing.app.PreferencesData;
public class ArduinoCoreInstance { public class ArduinoCoreInstance {
@ -89,6 +94,13 @@ public class ArduinoCoreInstance {
public void updateSettingFromPreferences() throws StatusException { public void updateSettingFromPreferences() throws StatusException {
setDataDir(BaseNoGui.getSettingsFolder()); setDataDir(BaseNoGui.getSettingsFolder());
setSketchbookDir(BaseNoGui.getSketchbookFolder()); 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(); rescan();
} }