Skip to content

Commit 9fa9fb9

Browse files
committed
Use the user's proxy settings for all network connections
1 parent ca7e4e8 commit 9fa9fb9

File tree

5 files changed

+36
-19
lines changed

5 files changed

+36
-19
lines changed

src/main/kotlin/com/demonwav/mcdev/creator/PlatformVersion.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
package com.demonwav.mcdev.creator
1212

1313
import com.demonwav.mcdev.platform.PlatformType
14+
import com.demonwav.mcdev.util.ProxyHttpConnectionFactory
1415
import com.demonwav.mcdev.util.fromJson
1516
import com.demonwav.mcdev.util.gson
1617
import org.jetbrains.concurrency.runAsync
1718
import java.io.IOException
18-
import java.net.URL
1919
import java.util.Arrays
2020
import java.util.Objects
2121
import javax.swing.JComboBox
@@ -36,13 +36,14 @@ fun getVersionSelector(type: PlatformType) = runAsync {
3636
}
3737

3838
private fun doCall(urlText: String): PlatformVersion {
39-
val url = URL(urlText)
40-
val connection = url.openConnection()
39+
val connection = ProxyHttpConnectionFactory.openHttpConnection(urlText)
40+
4141
connection.setRequestProperty(
4242
"User-Agent",
4343
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
4444
)
45-
val text = connection.getInputStream().use { it.reader().use { it.readText() } }
45+
46+
val text = connection.inputStream.use { stream -> stream.reader().use { it.readText() } }
4647
return gson.fromJson(text)
4748
}
4849

src/main/kotlin/com/demonwav/mcdev/error/AnonymousFeedback.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
package com.demonwav.mcdev.error
1212

1313
import com.demonwav.mcdev.update.PluginUtil
14+
import com.demonwav.mcdev.util.HttpConnectionFactory
1415
import com.demonwav.mcdev.util.fromJson
1516
import com.demonwav.mcdev.util.gson
1617
import com.intellij.ide.plugins.PluginManager
1718
import com.intellij.util.io.readCharSequence
1819
import org.apache.commons.io.IOUtils
1920
import java.io.InputStreamReader
2021
import java.net.HttpURLConnection
21-
import java.net.URL
2222

2323
object AnonymousFeedback {
2424

@@ -230,8 +230,4 @@ object AnonymousFeedback {
230230
}
231231
agent
232232
}
233-
234-
open class HttpConnectionFactory {
235-
open fun openHttpConnection(url: String) = URL(url).openConnection() as HttpURLConnection
236-
}
237233
}

src/main/kotlin/com/demonwav/mcdev/error/AnonymousFeedbackTask.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
package com.demonwav.mcdev.error
1212

13+
import com.demonwav.mcdev.util.ProxyHttpConnectionFactory
1314
import com.intellij.openapi.progress.ProgressIndicator
1415
import com.intellij.openapi.progress.Task
1516
import com.intellij.openapi.project.Project
16-
import com.intellij.util.net.HttpConfigurable
1717

1818
class AnonymousFeedbackTask(
1919
project: Project?,
@@ -28,14 +28,10 @@ class AnonymousFeedbackTask(
2828
indicator.isIndeterminate = true
2929

3030
try {
31-
val (url, token, isDuplicate) = AnonymousFeedback.sendFeedback(ProxyHttpConnectionFactory(), params)
31+
val (url, token, isDuplicate) = AnonymousFeedback.sendFeedback(ProxyHttpConnectionFactory, params)
3232
callback(url, token, isDuplicate)
3333
} catch (e: Exception) {
3434
errorCallback(e)
3535
}
3636
}
37-
38-
private inner class ProxyHttpConnectionFactory : AnonymousFeedback.HttpConnectionFactory() {
39-
override fun openHttpConnection(url: String) = HttpConfigurable.getInstance().openHttpConnection(url)
40-
}
4137
}

src/main/kotlin/com/demonwav/mcdev/platform/sponge/SpongeVersion.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
package com.demonwav.mcdev.platform.sponge
1212

13+
import com.demonwav.mcdev.util.ProxyHttpConnectionFactory
1314
import com.demonwav.mcdev.util.fromJson
1415
import com.demonwav.mcdev.util.gson
1516
import org.jetbrains.concurrency.runAsync
16-
import java.net.URL
1717
import java.util.Objects
1818
import javax.swing.JComboBox
1919

@@ -51,13 +51,14 @@ data class SpongeVersion(var versions: LinkedHashMap<String, String>, var select
5151

5252
companion object {
5353
fun downloadData(): SpongeVersion {
54-
val url = URL(spongeUrl)
55-
val connection = url.openConnection()
54+
val connection = ProxyHttpConnectionFactory.openHttpConnection(spongeUrl)
55+
5656
connection.setRequestProperty(
5757
"User-Agent",
5858
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
5959
)
60-
val text = connection.getInputStream().use { it.reader().use { it.readText() } }
60+
61+
val text = connection.inputStream.use { stream -> stream.reader().use { it.readText() } }
6162
return gson.fromJson(text)
6263
}
6364
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2018 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.util
12+
13+
import com.intellij.util.net.HttpConfigurable
14+
import java.net.HttpURLConnection
15+
import java.net.URL
16+
17+
sealed class HttpConnectionFactory {
18+
open fun openHttpConnection(url: String) = URL(url).openConnection() as HttpURLConnection
19+
}
20+
21+
object ProxyHttpConnectionFactory : HttpConnectionFactory() {
22+
override fun openHttpConnection(url: String) = HttpConfigurable.getInstance().openHttpConnection(url)
23+
}

0 commit comments

Comments
 (0)