[connections] assistant: Improve the parsing of incomplete addresses
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [connections] assistant: Improve the parsing of incomplete addresses
- Date: Tue, 5 Oct 2021 09:13:38 +0000 (UTC)
commit a3760128a0205175f512ee199a9f5f02f5fa7cc6
Author: Felipe Borges <felipeborges gnome org>
Date: Tue Oct 5 10:56:31 2021 +0200
assistant: Improve the parsing of incomplete addresses
We do an effort to accept "incomplete" addresses by pre-setting
the protocol (scheme). Our existing logic was failing to parse
some valid addresses, such as an IP address with an specified port
without a protocol prefix.
Fixes #76
src/assistant.vala | 19 +++++++++++++------
src/ui/assistant.ui | 2 ++
2 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/src/assistant.vala b/src/assistant.vala
index d8b8cf7..b4e5e71 100644
--- a/src/assistant.vala
+++ b/src/assistant.vala
@@ -32,7 +32,7 @@ namespace Connections {
private unowned Gtk.RadioButton vnc_radio_button;
private bool uri_has_supported_scheme (string uri) {
- return uri.has_prefix ("rdp") || uri.has_prefix ("vnc");
+ return uri.has_prefix ("rdp://") || uri.has_prefix ("vnc://");
}
[GtkCallback]
@@ -43,20 +43,27 @@ namespace Connections {
return;
}
- var uri = Xml.URI.parse (url_entry.text);
+ var address = url_entry.text;
+ if (!uri_has_supported_scheme (address)) {
+ if (rdp_radio_button.get_active ())
+ address = "rdp://" + address;
+ else
+ address = "vnc://" + address;
+ }
+
+ debug ("Attempting to add \"%s\"", address);
+ var uri = Xml.URI.parse (address);
if (uri == null) {
create_button.sensitive = false;
+ debug ("Address \"%s\" is invalid", address);
+
return;
}
rdp_radio_button.set_active (uri.scheme == "rdp");
vnc_radio_button.set_active (uri.scheme == "vnc");
- if (!uri_has_supported_scheme (url_entry.text)) {
- uri.server = url_entry.text;
- }
-
create_button.sensitive = uri.server != null;
}
diff --git a/src/ui/assistant.ui b/src/ui/assistant.ui
index 19d0a5d..a6a25eb 100644
--- a/src/ui/assistant.ui
+++ b/src/ui/assistant.ui
@@ -61,6 +61,7 @@
<object class="GtkRadioButton" id="rdp_radio_button">
<property name="visible">True</property>
<property name="label" translatable="yes">RDP (standard for connecting to
Windows)</property>
+ <signal name="toggled" handler="on_url_entry_changed"/>
</object>
</child>
@@ -69,6 +70,7 @@
<property name="visible">True</property>
<property name="group">rdp_radio_button</property>
<property name="label" translatable="yes">VNC (standard for connecting to Linux)</property>
+ <signal name="toggled" handler="on_url_entry_changed"/>
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]