[geocode-glib] ipclient: Validate the server property



commit 702c3e7cc42f52c333776b70837adbc6ee5785b9
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Feb 20 13:00:16 2013 +0100

    ipclient: Validate the server property
    
    To avoid invalid values being passed.

 geocode-glib/geocode-ipclient.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/geocode-glib/geocode-ipclient.c b/geocode-glib/geocode-ipclient.c
index b1cf009..fe79a34 100644
--- a/geocode-glib/geocode-ipclient.c
+++ b/geocode-glib/geocode-ipclient.c
@@ -47,6 +47,19 @@ struct _GeocodeIpclientPrivate {
 G_DEFINE_TYPE (GeocodeIpclient, geocode_ipclient, G_TYPE_OBJECT)
 
 static void
+geocode_ipclient_set_server (GeocodeIpclient *ipclient,
+                            const char      *server)
+{
+        g_return_if_fail (server != NULL);
+        g_return_if_fail (g_str_has_prefix (server, "http://";) ||
+                          g_str_has_prefix (server, "https://";));
+
+        g_free (ipclient->priv->server);
+        ipclient->priv->server = g_strdup (server);
+
+}
+
+static void
 geocode_ipclient_set_property (GObject           *gipclient,
                                guint              property_id,
                                const GValue      *value,
@@ -56,8 +69,8 @@ geocode_ipclient_set_property (GObject           *gipclient,
 
         switch (property_id) {
                 case PROP_SERVER:
-                        g_free (ipclient->priv->server);
-                        ipclient->priv->server = g_value_dup_string (value);
+                        geocode_ipclient_set_server (ipclient,
+                                                     g_value_get_string (value));
                         break;
                 default:
                         G_OBJECT_WARN_INVALID_PROPERTY_ID (gipclient,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]