[evolution-ews] Adapt to CamelNetworkSettings changes.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Adapt to CamelNetworkSettings changes.
- Date: Mon, 24 Oct 2011 17:14:10 +0000 (UTC)
commit 3bef37fbbcbac6ab84f056f669b25382a4a46373
Author: Matthew Barnes <mbarnes redhat com>
Date: Fri Oct 21 09:46:31 2011 -0400
Adapt to CamelNetworkSettings changes.
src/camel/camel-ews-folder.c | 18 +++-
src/camel/camel-ews-settings.c | 209 ++++++++++++++++++++++++++++++++++++---
src/camel/camel-ews-settings.h | 7 ++
src/camel/camel-ews-store.c | 64 +++++++-----
src/camel/camel-ews-transport.c | 34 +++++--
src/camel/camel-ews-utils.c | 60 +++++++-----
6 files changed, 313 insertions(+), 79 deletions(-)
---
diff --git a/src/camel/camel-ews-folder.c b/src/camel/camel-ews-folder.c
index f37923e..ee19160 100644
--- a/src/camel/camel-ews-folder.c
+++ b/src/camel/camel-ews-folder.c
@@ -1439,19 +1439,29 @@ ews_folder_dispose (GObject *object)
static void
ews_folder_constructed (GObject *object)
{
- CamelFolder *folder;
+ CamelNetworkSettings *network_settings;
+ CamelSettings *settings;
CamelStore *parent_store;
- CamelURL *url;
+ CamelService *service;
+ CamelFolder *folder;
const gchar *full_name;
+ const gchar *host;
+ const gchar *user;
gchar *description;
folder = CAMEL_FOLDER (object);
full_name = camel_folder_get_full_name (folder);
parent_store = camel_folder_get_parent_store (folder);
- url = camel_service_get_camel_url (CAMEL_SERVICE (parent_store));
+
+ service = CAMEL_SERVICE (parent_store);
+ settings = camel_service_get_settings (service);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ host = camel_network_settings_get_host (network_settings);
+ user = camel_network_settings_get_user (network_settings);
description = g_strdup_printf (
- "%s %s:%s", url->user, url->host, full_name);
+ "%s %s:%s", user, host, full_name);
camel_folder_set_description (folder, description);
g_free (description);
}
diff --git a/src/camel/camel-ews-settings.c b/src/camel/camel-ews-settings.c
index 7392332..70fb85e 100644
--- a/src/camel/camel-ews-settings.c
+++ b/src/camel/camel-ews-settings.c
@@ -18,18 +18,30 @@
#include "camel-ews-settings.h"
+#define CAMEL_EWS_SETTINGS_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), CAMEL_TYPE_EWS_SETTINGS, CamelEwsSettingsPrivate))
+
struct _CamelEwsSettingsPrivate {
gboolean check_all;
gboolean filter_junk;
gboolean filter_junk_inbox;
+ gchar *email;
+ gchar *hosturl;
};
enum {
PROP_0,
- PROP_SECURITY_METHOD,
+ PROP_AUTH_MECHANISM,
PROP_CHECK_ALL,
+ PROP_EMAIL,
PROP_FILTER_JUNK,
- PROP_FILTER_JUNK_INBOX
+ PROP_FILTER_JUNK_INBOX,
+ PROP_HOST,
+ PROP_HOSTURL,
+ PROP_PORT,
+ PROP_SECURITY_METHOD,
+ PROP_USER
};
G_DEFINE_TYPE_WITH_CODE (
@@ -46,10 +58,10 @@ ews_settings_set_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
- case PROP_SECURITY_METHOD:
- camel_network_settings_set_security_method (
+ case PROP_AUTH_MECHANISM:
+ camel_network_settings_set_auth_mechanism (
CAMEL_NETWORK_SETTINGS (object),
- g_value_get_enum (value));
+ g_value_get_string (value));
return;
case PROP_CHECK_ALL:
@@ -58,6 +70,12 @@ ews_settings_set_property (GObject *object,
g_value_get_boolean (value));
return;
+ case PROP_EMAIL:
+ camel_ews_settings_set_email (
+ CAMEL_EWS_SETTINGS (object),
+ g_value_get_string (value));
+ return;
+
case PROP_FILTER_JUNK:
camel_ews_settings_set_filter_junk (
CAMEL_EWS_SETTINGS (object),
@@ -69,6 +87,36 @@ ews_settings_set_property (GObject *object,
CAMEL_EWS_SETTINGS (object),
g_value_get_boolean (value));
return;
+
+ case PROP_HOST:
+ camel_network_settings_set_host (
+ CAMEL_NETWORK_SETTINGS (object),
+ g_value_get_string (value));
+ return;
+
+ case PROP_HOSTURL:
+ camel_ews_settings_set_hosturl (
+ CAMEL_EWS_SETTINGS (object),
+ g_value_get_string (value));
+ return;
+
+ case PROP_PORT:
+ camel_network_settings_set_port (
+ CAMEL_NETWORK_SETTINGS (object),
+ g_value_get_uint (value));
+ return;
+
+ case PROP_SECURITY_METHOD:
+ camel_network_settings_set_security_method (
+ CAMEL_NETWORK_SETTINGS (object),
+ g_value_get_enum (value));
+ return;
+
+ case PROP_USER:
+ camel_network_settings_set_user (
+ CAMEL_NETWORK_SETTINGS (object),
+ g_value_get_string (value));
+ return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -81,10 +129,10 @@ ews_settings_get_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
- case PROP_SECURITY_METHOD:
- g_value_set_enum (
+ case PROP_AUTH_MECHANISM:
+ g_value_set_string (
value,
- camel_network_settings_get_security_method (
+ camel_network_settings_get_auth_mechanism (
CAMEL_NETWORK_SETTINGS (object)));
return;
@@ -95,6 +143,13 @@ ews_settings_get_property (GObject *object,
CAMEL_EWS_SETTINGS (object)));
return;
+ case PROP_EMAIL:
+ g_value_set_string (
+ value,
+ camel_ews_settings_get_email (
+ CAMEL_EWS_SETTINGS (object)));
+ return;
+
case PROP_FILTER_JUNK:
g_value_set_boolean (
value,
@@ -108,6 +163,41 @@ ews_settings_get_property (GObject *object,
camel_ews_settings_get_filter_junk_inbox (
CAMEL_EWS_SETTINGS (object)));
return;
+
+ case PROP_HOST:
+ g_value_set_string (
+ value,
+ camel_network_settings_get_host (
+ CAMEL_NETWORK_SETTINGS (object)));
+ return;
+
+ case PROP_HOSTURL:
+ g_value_set_string (
+ value,
+ camel_ews_settings_get_hosturl (
+ CAMEL_EWS_SETTINGS (object)));
+ return;
+
+ case PROP_PORT:
+ g_value_set_uint (
+ value,
+ camel_network_settings_get_port (
+ CAMEL_NETWORK_SETTINGS (object)));
+ return;
+
+ case PROP_SECURITY_METHOD:
+ g_value_set_enum (
+ value,
+ camel_network_settings_get_security_method (
+ CAMEL_NETWORK_SETTINGS (object)));
+ return;
+
+ case PROP_USER:
+ g_value_set_string (
+ value,
+ camel_network_settings_get_user (
+ CAMEL_NETWORK_SETTINGS (object)));
+ return;
}
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -116,6 +206,13 @@ ews_settings_get_property (GObject *object,
static void
ews_settings_finalize (GObject *object)
{
+ CamelEwsSettingsPrivate *priv;
+
+ priv = CAMEL_EWS_SETTINGS_GET_PRIVATE (object);
+
+ g_free (priv->email);
+ g_free (priv->hosturl);
+
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (camel_ews_settings_parent_class)->finalize (object);
}
@@ -135,10 +232,9 @@ camel_ews_settings_class_init (CamelEwsSettingsClass *class)
/* Inherited from CamelNetworkSettings. */
g_object_class_override_property (
object_class,
- PROP_SECURITY_METHOD,
- "security-method");
+ PROP_AUTH_MECHANISM,
+ "auth-mechanism");
- /* Newly added properties */
g_object_class_install_property (
object_class,
PROP_CHECK_ALL,
@@ -153,6 +249,18 @@ camel_ews_settings_class_init (CamelEwsSettingsClass *class)
g_object_class_install_property (
object_class,
+ PROP_EMAIL,
+ g_param_spec_string (
+ "email",
+ "Email",
+ "Email",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (
+ object_class,
PROP_FILTER_JUNK,
g_param_spec_boolean (
"filter-junk",
@@ -174,13 +282,48 @@ camel_ews_settings_class_init (CamelEwsSettingsClass *class)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT |
G_PARAM_STATIC_STRINGS));
+
+ /* Inherited from CamelNetworkSettings. */
+ g_object_class_override_property (
+ object_class,
+ PROP_HOST,
+ "host");
+
+ g_object_class_install_property (
+ object_class,
+ PROP_HOSTURL,
+ g_param_spec_string (
+ "hosturl",
+ "Host URL",
+ "Host URL",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+
+ /* Inherited from CamelNetworkSettings. */
+ g_object_class_override_property (
+ object_class,
+ PROP_PORT,
+ "port");
+
+ /* Inherited from CamelNetworkSettings. */
+ g_object_class_override_property (
+ object_class,
+ PROP_SECURITY_METHOD,
+ "security-method");
+
+ /* Inherited from CamelNetworkSettings. */
+ g_object_class_override_property (
+ object_class,
+ PROP_USER,
+ "user");
}
static void
camel_ews_settings_init (CamelEwsSettings *settings)
{
- settings->priv = G_TYPE_INSTANCE_GET_PRIVATE (settings, CAMEL_TYPE_EWS_SETTINGS, CamelEwsSettingsPrivate);
-
+ settings->priv = CAMEL_EWS_SETTINGS_GET_PRIVATE (settings);
}
/**
@@ -221,6 +364,26 @@ camel_ews_settings_set_check_all (CamelEwsSettings *settings,
g_object_notify (G_OBJECT (settings), "check-all");
}
+const gchar *
+camel_ews_settings_get_email (CamelEwsSettings *settings)
+{
+ g_return_val_if_fail (CAMEL_IS_EWS_SETTINGS (settings), NULL);
+
+ return settings->priv->email;
+}
+
+void
+camel_ews_settings_set_email (CamelEwsSettings *settings,
+ const gchar *email)
+{
+ g_return_if_fail (CAMEL_IS_EWS_SETTINGS (settings));
+
+ g_free (settings->priv->email);
+ settings->priv->email = g_strdup (email);
+
+ g_object_notify (G_OBJECT (settings), "email");
+}
+
/**
* camel_ews_settings_get_filter_junk:
* @settings: a #CamelEwsSettings
@@ -300,3 +463,23 @@ camel_ews_settings_set_filter_junk_inbox (CamelEwsSettings *settings,
g_object_notify (G_OBJECT (settings), "filter-junk-inbox");
}
+
+const gchar *
+camel_ews_settings_get_hosturl (CamelEwsSettings *settings)
+{
+ g_return_val_if_fail (CAMEL_IS_EWS_SETTINGS (settings), NULL);
+
+ return settings->priv->hosturl;
+}
+
+void
+camel_ews_settings_set_hosturl (CamelEwsSettings *settings,
+ const gchar *hosturl)
+{
+ g_return_if_fail (CAMEL_IS_EWS_SETTINGS (settings));
+
+ g_free (settings->priv->hosturl);
+ settings->priv->hosturl = g_strdup (hosturl);
+
+ g_object_notify (G_OBJECT (settings), "hosturl");
+}
diff --git a/src/camel/camel-ews-settings.h b/src/camel/camel-ews-settings.h
index 068d040..1ca1a84 100644
--- a/src/camel/camel-ews-settings.h
+++ b/src/camel/camel-ews-settings.h
@@ -59,12 +59,19 @@ GType camel_ews_settings_get_type (void) G_GNUC_CONST;
gboolean camel_ews_settings_get_check_all (CamelEwsSettings *settings);
void camel_ews_settings_set_check_all (CamelEwsSettings *settings,
gboolean check_all);
+const gchar * camel_ews_settings_get_email (CamelEwsSettings *settings);
+void camel_ews_settings_set_email (CamelEwsSettings *settings,
+ const gchar *email);
gboolean camel_ews_settings_get_filter_junk (CamelEwsSettings *settings);
void camel_ews_settings_set_filter_junk (CamelEwsSettings *settings,
gboolean filter_junk);
gboolean camel_ews_settings_get_filter_junk_inbox (CamelEwsSettings *settings);
void camel_ews_settings_set_filter_junk_inbox (CamelEwsSettings *settings,
gboolean filter_junk_inbox);
+const gchar * camel_ews_settings_get_hosturl (CamelEwsSettings *settings);
+void camel_ews_settings_set_hosturl (CamelEwsSettings *settings,
+ const gchar *hosturl);
+
G_END_DECLS
#endif /* CAMEL_EWS_SETTINGS_H */
diff --git a/src/camel/camel-ews-store.c b/src/camel/camel-ews-store.c
index 70c600f..e16fdf8 100644
--- a/src/camel/camel-ews-store.c
+++ b/src/camel/camel-ews-store.c
@@ -63,7 +63,6 @@
struct _CamelEwsStorePrivate {
- gchar *host_url;
time_t last_refresh_time;
GMutex *get_finfo_lock;
EEwsConnection *cnc;
@@ -71,8 +70,7 @@ struct _CamelEwsStorePrivate {
extern CamelServiceAuthType camel_ews_password_authtype; /*for the query_auth_types function*/
static gboolean ews_store_construct (CamelService *service, CamelSession *session,
- CamelProvider *provider, CamelURL *url,
- GError **error);
+ CamelProvider *provider, GError **error);
static void camel_ews_store_initable_init (GInitableIface *interface);
static GInitableIface *parent_initable_interface;
@@ -89,18 +87,16 @@ ews_store_initable_init (GInitable *initable,
{
CamelService *service;
CamelSession *session;
- CamelURL *url;
gboolean ret;
service = CAMEL_SERVICE (initable);
- url = camel_service_get_camel_url (service);
session = camel_service_get_session (service);
/* Chain up to parent interface's init() method. */
if (!parent_initable_interface->init (initable, cancellable, error))
return FALSE;
- ret = ews_store_construct (service, session, NULL, url, error);
+ ret = ews_store_construct (service, session, NULL, error);
/* Add transport here ? */
@@ -117,8 +113,7 @@ camel_ews_store_initable_init (GInitableIface *interface)
static gboolean
ews_store_construct (CamelService *service, CamelSession *session,
- CamelProvider *provider, CamelURL *url,
- GError **error)
+ CamelProvider *provider, GError **error)
{
CamelEwsStore *ews_store;
CamelEwsStorePrivate *priv;
@@ -143,15 +138,6 @@ ews_store_construct (CamelService *service, CamelSession *session,
}
ews_store->storage_path = session_storage_path;
- priv->host_url = g_strdup (camel_url_get_param (url, "hosturl"));
- if (!priv->host_url) {
- g_set_error (
- error, CAMEL_STORE_ERROR,
- CAMEL_STORE_ERROR_INVALID,
- _("EWS service has no host URL"));
- return FALSE;
- }
-
/* Note. update account-listener plugin if filename is changed here, as it would remove the summary
by forming the path itself */
g_mkdir_with_parents (ews_store->storage_path, 0700);
@@ -200,15 +186,21 @@ ews_store_authenticate (EEwsConnection *cnc,
SoupMessage *msg, SoupAuth *auth,
gboolean retrying, gpointer data)
{
+ CamelNetworkSettings *network_settings;
+ CamelSettings *settings;
CamelService *service = data;
- CamelURL *url;
const gchar *password;
+ const gchar *user;
- url = camel_service_get_camel_url (service);
password = camel_service_get_password (service);
+ settings = camel_service_get_settings (service);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ user = camel_network_settings_get_user (network_settings);
+
g_return_if_fail (password != NULL);
- e_ews_connection_authenticate (cnc, auth, url->user, password, NULL);
+ e_ews_connection_authenticate (cnc, auth, user, password, NULL);
}
static gboolean
@@ -216,14 +208,24 @@ ews_connect_sync (CamelService *service, GCancellable *cancellable, GError **err
{
CamelEwsStore *ews_store;
CamelEwsStorePrivate *priv;
+ CamelEwsSettings *ews_settings;
+ CamelNetworkSettings *network_settings;
+ CamelSettings *settings;
CamelSession *session;
- CamelURL *url;
+ const gchar *hosturl;
+ const gchar *user;
gboolean success;
ews_store = (CamelEwsStore *) service;
priv = ews_store->priv;
- url = camel_service_get_camel_url (service);
session = camel_service_get_session (service);
+ settings = camel_service_get_settings (service);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ user = camel_network_settings_get_user (network_settings);
+
+ ews_settings = CAMEL_EWS_SETTINGS (settings);
+ hosturl = camel_ews_settings_get_hosturl (ews_settings);
if (camel_service_get_connection_status (service) == CAMEL_SERVICE_DISCONNECTED)
return FALSE;
@@ -235,7 +237,7 @@ ews_connect_sync (CamelService *service, GCancellable *cancellable, GError **err
return TRUE;
}
- priv->cnc = e_ews_connection_new (priv->host_url, url->user, NULL,
+ priv->cnc = e_ews_connection_new (hosturl, user, NULL,
G_CALLBACK (ews_store_authenticate), service,
error);
@@ -824,15 +826,22 @@ ews_rename_folder_sync (CamelStore *store,
gchar *
ews_get_name (CamelService *service, gboolean brief)
{
- CamelURL *url;
+ CamelNetworkSettings *network_settings;
+ CamelSettings *settings;
+ const gchar *host;
+ const gchar *user;
+
+ settings = camel_service_get_settings (service);
- url = camel_service_get_camel_url (service);
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ host = camel_network_settings_get_host (network_settings);
+ user = camel_network_settings_get_user (network_settings);
if (brief)
- return g_strdup_printf(_("Exchange server %s"), url->host);
+ return g_strdup_printf(_("Exchange server %s"), host);
else
return g_strdup_printf(_("Exchange service for %s on %s"),
- url->user, url->host);
+ user, host);
}
EEwsConnection *
@@ -906,7 +915,6 @@ ews_store_finalize (GObject *object)
ews_store = CAMEL_EWS_STORE (object);
g_free (ews_store->storage_path);
- g_free (ews_store->priv->host_url);
g_mutex_free (ews_store->priv->get_finfo_lock);
/* Chain up to parent's finalize() method. */
diff --git a/src/camel/camel-ews-transport.c b/src/camel/camel-ews-transport.c
index b3797d4..74cddeb 100644
--- a/src/camel/camel-ews-transport.c
+++ b/src/camel/camel-ews-transport.c
@@ -30,6 +30,7 @@
#include <glib/gi18n-lib.h>
+#include "camel-ews-settings.h"
#include "camel-ews-store.h"
#include "camel-ews-transport.h"
#include "camel-ews-utils.h"
@@ -49,18 +50,23 @@ ews_transport_connect_sync (CamelService *service,
static gchar *
ews_transport_get_name (CamelService *service,
- gboolean brief)
+ gboolean brief)
{
- CamelURL *url = camel_service_get_camel_url (service);
+ CamelNetworkSettings *network_settings;
+ CamelSettings *settings;
+ const gchar *host;
+
+ settings = camel_service_get_settings (service);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ host = camel_network_settings_get_host (network_settings);
if (brief)
return g_strdup_printf (
- _("Exchange server %s"),
- url->host);
+ _("Exchange server %s"), host);
else
return g_strdup_printf (
- _("Exchange mail delivery via %s"),
- url->host);
+ _("Exchange mail delivery via %s"), host);
}
static gboolean
@@ -71,17 +77,25 @@ ews_send_to_sync (CamelTransport *transport,
GCancellable *cancellable,
GError **error)
{
+ CamelNetworkSettings *network_settings;
+ CamelEwsSettings *ews_settings;
+ CamelSettings *settings;
CamelService *service;
EEwsConnection *cnc;
const gchar *host_url;
- CamelURL *url;
+ const gchar *user;
gboolean res;
service = CAMEL_SERVICE (transport);
- url = camel_service_get_camel_url (service);
- host_url = camel_url_get_param (url, "hosturl");
+ settings = camel_service_get_settings (service);
+
+ ews_settings = CAMEL_EWS_SETTINGS (settings);
+ host_url = camel_ews_settings_get_hosturl (ews_settings);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ user = camel_network_settings_get_user (network_settings);
- cnc = e_ews_connection_find (host_url, url->user);
+ cnc = e_ews_connection_find (host_url, user);
if (!cnc) {
g_set_error (error, CAMEL_SERVICE_ERROR,
CAMEL_SERVICE_ERROR_NOT_CONNECTED,
diff --git a/src/camel/camel-ews-utils.c b/src/camel/camel-ews-utils.c
index 77afcbd..3a8bcc2 100644
--- a/src/camel/camel-ews-utils.c
+++ b/src/camel/camel-ews-utils.c
@@ -30,6 +30,7 @@
#include <glib/gi18n-lib.h>
#include <glib/gstdio.h>
+#include "camel-ews-settings.h"
#include "camel-ews-utils.h"
#include "ews-esource-utils.h"
#include "e-ews-message.h"
@@ -291,21 +292,6 @@ camel_ews_utils_build_folder_info (CamelEwsStore *store, const gchar *fid)
{
CamelEwsStoreSummary *ews_summary = store->summary;
CamelFolderInfo *fi;
- gchar *url;
- CamelURL *curl;
-
- curl = camel_service_get_camel_url (CAMEL_SERVICE (store));
- url = camel_url_to_string (curl,
- CAMEL_URL_HIDE_PARAMS|
- CAMEL_URL_HIDE_AUTH);
-
- if ( url[strlen (url) - 1] != '/') {
- gchar *temp_url;
-
- temp_url = g_strconcat (url, "/", NULL);
- g_free ((gchar *)url);
- url = temp_url;
- }
fi = camel_folder_info_new ();
fi->full_name = camel_ews_store_summary_get_folder_full_name (ews_summary,
@@ -319,8 +305,6 @@ camel_ews_utils_build_folder_info (CamelEwsStore *store, const gchar *fid)
fi->total = camel_ews_store_summary_get_folder_total (ews_summary,
fid, NULL);
- g_free (url);
-
return fi;
}
@@ -349,8 +333,18 @@ static void
sync_deleted_folders (CamelEwsStore *store, GSList *deleted_folders)
{
CamelEwsStoreSummary *ews_summary = store->summary;
+ CamelEwsSettings *ews_settings;
+ CamelSettings *settings;
+ CamelService *service;
+ const gchar *email;
GSList *l;
+ service = CAMEL_SERVICE (store);
+ settings = camel_service_get_settings (service);
+
+ ews_settings = CAMEL_EWS_SETTINGS (settings);
+ email = camel_ews_settings_get_email (ews_settings);
+
for (l = deleted_folders; l != NULL; l = g_slist_next (l)) {
const gchar *fid = l->data;
EwsFolderType ftype;
@@ -370,10 +364,9 @@ sync_deleted_folders (CamelEwsStore *store, GSList *deleted_folders)
g_clear_error (&error);
} else {
struct remove_esrc_data *remove_data = g_new0(struct remove_esrc_data, 1);
- CamelURL *url = camel_service_get_camel_url (CAMEL_SERVICE (store));
remove_data->fid = g_strdup (fid);
- remove_data->account_name = g_strdup (camel_url_get_param (url, "email"));
+ remove_data->account_name = g_strdup (email);
remove_data->ftype = ftype;
/* This uses GConf so has to be done in the main thread */
@@ -558,7 +551,24 @@ static gboolean ews_do_add_esource (gpointer user_data)
static void
sync_created_folders (CamelEwsStore *ews_store, GSList *created_folders)
{
+ CamelNetworkSettings *network_settings;
+ CamelEwsSettings *ews_settings;
+ CamelSettings *settings;
+ CamelService *service;
GSList *l;
+ const gchar *email;
+ const gchar *hosturl;
+ const gchar *user;
+
+ service = CAMEL_SERVICE (ews_store);
+ settings = camel_service_get_settings (service);
+
+ ews_settings = CAMEL_EWS_SETTINGS (settings);
+ email = camel_ews_settings_get_email (ews_settings);
+ hosturl = camel_ews_settings_get_hosturl (ews_settings);
+
+ network_settings = CAMEL_NETWORK_SETTINGS (settings);
+ user = camel_network_settings_get_user (network_settings);
for (l = created_folders; l != NULL; l = g_slist_next (l)) {
EEwsFolder *folder = (EEwsFolder *) l->data;
@@ -571,17 +581,19 @@ sync_created_folders (CamelEwsStore *ews_store, GSList *created_folders)
ftype == EWS_FOLDER_TYPE_TASKS ||
ftype == EWS_FOLDER_TYPE_CONTACTS) {
struct add_esrc_data *add_data = g_new0 (struct add_esrc_data, 1);
- CamelURL *url = camel_service_get_camel_url (CAMEL_SERVICE (ews_store));
+ CamelURL *url = camel_service_new_camel_url (service);
add_data->folder = g_object_ref (folder);
add_data->account_uri = camel_url_to_string (url, CAMEL_URL_HIDE_PARAMS);
- add_data->account_name = g_strdup (camel_url_get_param (url, "email"));
- add_data->username = g_strdup (url->user);
+ add_data->account_name = g_strdup (email);
+ add_data->username = g_strdup (user);
/* Duplicate... for now */
- add_data->email_id = g_strdup (camel_url_get_param (url, "email"));
- add_data->hosturl = g_strdup (camel_url_get_param (url, "hosturl"));
+ add_data->email_id = g_strdup (email);
+ add_data->hosturl = g_strdup (hosturl);
/* FIXME pass right refresh timeout */
+ camel_url_free (url);
+
/* This uses GConf so has to be done in the main thread */
g_idle_add_full (G_PRIORITY_DEFAULT, ews_do_add_esource, add_data, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]