[evolution-ews] Get host name from hosturl, rather than from CamelNetworkSettings::host



commit 738c2fc675946fef86fbddc83d82fac7794eeaa8
Author: Milan Crha <mcrha redhat com>
Date:   Wed Aug 22 15:24:30 2012 +0200

    Get host name from hosturl, rather than from CamelNetworkSettings::host

 src/camel/camel-ews-folder.c    |    2 +-
 src/camel/camel-ews-store.c     |    6 ++----
 src/camel/camel-ews-transport.c |    4 +---
 src/camel/camel-ews-utils.c     |   26 ++++++++++++++++++++++++++
 src/camel/camel-ews-utils.h     |    1 +
 5 files changed, 31 insertions(+), 8 deletions(-)
---
diff --git a/src/camel/camel-ews-folder.c b/src/camel/camel-ews-folder.c
index fa5585e..287f9ae 100644
--- a/src/camel/camel-ews-folder.c
+++ b/src/camel/camel-ews-folder.c
@@ -1804,7 +1804,7 @@ ews_folder_constructed (GObject *object)
 	settings = camel_service_ref_settings (service);
 
 	network_settings = CAMEL_NETWORK_SETTINGS (settings);
-	host = camel_network_settings_dup_host (network_settings);
+	host = camel_ews_utils_get_host_name (settings);
 	user = camel_network_settings_dup_user (network_settings);
 
 	g_object_unref (settings);
diff --git a/src/camel/camel-ews-store.c b/src/camel/camel-ews-store.c
index e80e3a2..7358b94 100644
--- a/src/camel/camel-ews-store.c
+++ b/src/camel/camel-ews-store.c
@@ -1263,7 +1263,6 @@ gchar *
 ews_get_name (CamelService *service,
               gboolean brief)
 {
-	CamelNetworkSettings *network_settings;
 	CamelSettings *settings;
 	gchar *name;
 	gchar *host;
@@ -1271,9 +1270,8 @@ ews_get_name (CamelService *service,
 
 	settings = camel_service_ref_settings (service);
 
-	network_settings = CAMEL_NETWORK_SETTINGS (settings);
-	host = camel_network_settings_dup_host (network_settings);
-	user = camel_network_settings_dup_user (network_settings);
+	user = camel_network_settings_dup_user (CAMEL_NETWORK_SETTINGS (settings));
+	host = camel_ews_utils_get_host_name (settings);
 
 	g_object_unref (settings);
 
diff --git a/src/camel/camel-ews-transport.c b/src/camel/camel-ews-transport.c
index 3f39051..9acaa49 100644
--- a/src/camel/camel-ews-transport.c
+++ b/src/camel/camel-ews-transport.c
@@ -54,15 +54,13 @@ static gchar *
 ews_transport_get_name (CamelService *service,
                         gboolean brief)
 {
-	CamelNetworkSettings *network_settings;
 	CamelSettings *settings;
 	gchar *host;
 	gchar *name;
 
 	settings = camel_service_ref_settings (service);
 
-	network_settings = CAMEL_NETWORK_SETTINGS (settings);
-	host = camel_network_settings_dup_host (network_settings);
+	host = camel_ews_utils_get_host_name (settings);
 
 	g_object_unref (settings);
 
diff --git a/src/camel/camel-ews-utils.c b/src/camel/camel-ews-utils.c
index 2c4bf74..4cee5d8 100644
--- a/src/camel/camel-ews-utils.c
+++ b/src/camel/camel-ews-utils.c
@@ -776,3 +776,29 @@ camel_ews_utils_sync_created_items (CamelEwsFolder *ews_folder,
 	camel_folder_change_info_free (ci);
 	g_slist_free (items_created);
 }
+
+gchar *
+camel_ews_utils_get_host_name (CamelSettings *settings)
+{
+	CamelURL *url;
+	gchar *host = NULL, *hosturl;
+
+	g_return_val_if_fail (settings != NULL, NULL);
+
+	hosturl = camel_ews_settings_dup_hosturl (CAMEL_EWS_SETTINGS (settings));
+
+	url = camel_url_new (hosturl, NULL);
+	if (url) {
+		host = g_strdup (url->host);
+		camel_url_free (url);
+	}
+	
+	if (!host || !*host) {
+		g_free (host);
+		host = camel_network_settings_dup_host (CAMEL_NETWORK_SETTINGS (settings));
+	}
+
+	g_free (hosturl);
+
+	return host;
+}
diff --git a/src/camel/camel-ews-utils.h b/src/camel/camel-ews-utils.h
index 6ed30d0..dc110ce 100644
--- a/src/camel/camel-ews-utils.h
+++ b/src/camel/camel-ews-utils.h
@@ -72,6 +72,7 @@ void		camel_ews_utils_sync_updated_items
 void		ews_utils_replace_server_user_flags
 						(ESoapMessage *msg,
 						 CamelEwsMessageInfo *mi);
+gchar *		camel_ews_utils_get_host_name	(CamelSettings *settings);
 
 G_END_DECLS
 



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