diff --git a/Decimus/ManifestController.swift b/Decimus/ManifestController.swift index 9877bbc2..8b2420a0 100644 --- a/Decimus/ManifestController.swift +++ b/Decimus/ManifestController.swift @@ -116,7 +116,10 @@ class ManifestController { } private func makeRequest(method: String, components: URLComponents) throws -> URLRequest { - guard let url = URL(string: components.string!) else { + guard let str = components.string else { + throw "Invalid URL: no components" + } + guard let url = URL(string: str) else { throw "Invalid URL: \(components)" } diff --git a/Decimus/Views/Settings/ManifestSettingsView.swift b/Decimus/Views/Settings/ManifestSettingsView.swift index 20570867..ce469da8 100644 --- a/Decimus/Views/Settings/ManifestSettingsView.swift +++ b/Decimus/Views/Settings/ManifestSettingsView.swift @@ -33,6 +33,11 @@ struct ManifestSettingsView: View { LabeledContent("Address") { TextField("manifest_address", text: $manifestConfig.value.url, prompt: Text("127.0.0.1")) .keyboardType(.URL) + .onChange(of: manifestConfig.value.url) { + if let url = URL(string: manifestConfig.value.url) { + manifestConfig.value.url = url.host() ?? manifestConfig.value.url; + } + } } LabeledContent("Port") { diff --git a/Decimus/Views/Settings/RelaySettingsView.swift b/Decimus/Views/Settings/RelaySettingsView.swift index aeaedded..aba6f7bd 100644 --- a/Decimus/Views/Settings/RelaySettingsView.swift +++ b/Decimus/Views/Settings/RelaySettingsView.swift @@ -15,6 +15,11 @@ struct RelaySettingsView: View { LabeledContent("Address") { TextField("relay_address", text: $relayConfig.value.address, prompt: Text("localhost")) .keyboardType(.URL) + .onChange(of: relayConfig.value.address) { + if let url = URL(string: relayConfig.value.address) { + relayConfig.value.address = url.host() ?? relayConfig.value.address; + } + } } LabeledContent("Protocol") {