[evolution-ews] Get host name from hosturl, rather than from CamelNetworkSettings::host
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Get host name from hosturl, rather than from CamelNetworkSettings::host
- Date: Wed, 22 Aug 2012 13:25:10 +0000 (UTC)
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]