Strip spaces from gateway

parent ae0769cc
...@@ -126,16 +126,48 @@ l2tp_plugin_ui_error_get_type (void) ...@@ -126,16 +126,48 @@ l2tp_plugin_ui_error_get_type (void)
return etype; return etype;
} }
/**
* Return copy of string #s with the leading and trailing spaces removed
* result must be freed with g_free()
**/
static char *
strstrip (const char *s)
{
size_t size;
char *end;
char *scpy;
/* leading */
while (*s && isspace (*s))
s++;
scpy = g_strdup (s);
size = strlen (scpy);
if (!size)
return scpy;
end = scpy + size - 1;
while (end >= scpy && isspace (*end))
end--;
*(end + 1) = '\0';
return scpy;
}
static gboolean static gboolean
check_validity (L2tpPluginUiWidget *self, GError **error) check_validity (L2tpPluginUiWidget *self, GError **error)
{ {
L2tpPluginUiWidgetPrivate *priv = L2TP_PLUGIN_UI_WIDGET_GET_PRIVATE (self); L2tpPluginUiWidgetPrivate *priv = L2TP_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
GtkWidget *widget; GtkWidget *widget;
const char *str; const char *str;
char *s;
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry")); widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry"));
str = gtk_entry_get_text (GTK_ENTRY (widget)); str = gtk_entry_get_text (GTK_ENTRY (widget));
if (!str || !strlen (str)) { if (!str || !strlen (s = strstrip (str))) {
g_free(s);
g_set_error (error, g_set_error (error,
L2TP_PLUGIN_UI_ERROR, L2TP_PLUGIN_UI_ERROR,
L2TP_PLUGIN_UI_ERROR_INVALID_PROPERTY, L2TP_PLUGIN_UI_ERROR_INVALID_PROPERTY,
...@@ -544,6 +576,7 @@ update_connection (NMVpnPluginUiWidgetInterface *iface, ...@@ -544,6 +576,7 @@ update_connection (NMVpnPluginUiWidgetInterface *iface,
NMSettingVPN *s_vpn; NMSettingVPN *s_vpn;
GtkWidget *widget; GtkWidget *widget;
const char *str; const char *str;
char *s;
gboolean valid = FALSE; gboolean valid = FALSE;
if (!check_validity (self, error)) if (!check_validity (self, error))
...@@ -555,8 +588,11 @@ update_connection (NMVpnPluginUiWidgetInterface *iface, ...@@ -555,8 +588,11 @@ update_connection (NMVpnPluginUiWidgetInterface *iface,
/* Gateway */ /* Gateway */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry")); widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry"));
str = gtk_entry_get_text (GTK_ENTRY (widget)); str = gtk_entry_get_text (GTK_ENTRY (widget));
if (str && strlen (str)) if (str)
nm_setting_vpn_add_data_item (s_vpn, NM_L2TP_KEY_GATEWAY, str); s = strstrip(str);
if (s && strlen (s))
nm_setting_vpn_add_data_item (s_vpn, NM_L2TP_KEY_GATEWAY, s);
g_free(s);
/* Username */ /* Username */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_entry")); widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_entry"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment