#include "modest-text-utils.h"
#include "modest-runtime.h"
#include "modest-utils.h"
-#include <modest-protocol-info.h>
+#include "modest-protocol-registry.h"
#include "modest-platform.h"
+#include "gnome/modest-gnome-utils.h"
#include <string.h>
static void
on_incoming_security_changed(GtkWidget* widget, ModestAccountAssistant* assistant)
{
- ModestAccountAssistantPrivate* priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(assistant);
- ModestConnectionProtocol protocol_security_incoming;
+ ModestAccountAssistantPrivate* priv;
+ ModestProtocolType protocol_id;
+ ModestProtocol *protocol_security_incoming;
const gchar *name;
+ ModestProtocolRegistry *registry;
+ gboolean is_secure;
- g_return_if_fail (priv != NULL);
- name = (const gchar *) modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo));
- protocol_security_incoming = modest_protocol_info_get_transport_store_protocol (name);
+ g_return_if_fail (MODEST_IS_ACCOUNT_ASSISTANT (assistant));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->store_secure_auth), modest_protocol_info_is_secure (protocol_security_incoming));
- gtk_widget_set_sensitive (priv->store_secure_auth, !modest_protocol_info_is_secure (protocol_security_incoming));
+ priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(assistant);
+ registry = modest_runtime_get_protocol_registry ();
+ name = (const gchar *) modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo));
+ protocol_security_incoming = modest_protocol_registry_get_protocol_by_name (registry,
+ MODEST_PROTOCOL_REGISTRY_SECURE_PROTOCOLS,
+ name);
+ protocol_id = modest_protocol_get_type_id (protocol_security_incoming);
+ is_secure = modest_protocol_registry_protocol_type_is_secure (registry, protocol_id);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->store_secure_auth), is_secure);
+ gtk_widget_set_sensitive (priv->store_secure_auth, !is_secure);
on_assistant_changed (widget, assistant);
}
GtkWidget *alignment;
ModestAccountAssistantPrivate *priv;
GtkWidget *label;
+ const gchar *tag = MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
/* Note: This ModestPairList* must exist for as long as the combo
* that uses it, because the ModestComboBox uses the ID opaquely,
* so it can't know how to manage its memory. */
- priv->receiving_transport_store_protos =
- modest_protocol_info_get_supported_store_protocol_pair_list ();
+ priv->receiving_transport_store_protos = modest_gnome_utils_get_protocols_pair_list (tag);
priv->store_protocol_combo = modest_combo_box_new (priv->receiving_transport_store_protos, g_str_equal);
priv->store_server_widget = gtk_entry_new ();
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
/* Setup security information widgets */
- priv->security_protos =
- modest_protocol_info_get_connection_protocol_pair_list ();
+ tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
+ priv->security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
priv->store_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
priv->store_secure_auth = gtk_check_button_new ();
{
ModestAccountAssistantPrivate *priv;
gchar *chosen;
-
+ ModestProtocol *proto;
+
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
chosen = gtk_combo_box_get_active_text (GTK_COMBO_BOX(combo));
if (priv->transport_widget)
gtk_container_remove (GTK_CONTAINER(priv->transport_holder),
priv->transport_widget);
- priv->transport_widget =
- modest_transport_widget_new (modest_protocol_info_get_transport_store_protocol(chosen));
+
+ proto = modest_protocol_registry_get_protocol_by_name (modest_runtime_get_protocol_registry (),
+ MODEST_PROTOCOL_REGISTRY_TRANSPORT_PROTOCOLS,
+ chosen);
+ priv->transport_widget = modest_transport_widget_new (modest_protocol_get_type_id (proto));
gtk_container_add (GTK_CONTAINER(priv->transport_holder),
priv->transport_widget);
GtkWidget *alignment;
ModestAccountAssistantPrivate *priv;
GtkWidget *label;
+ const gchar *tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
/* Setup security information widgets */
- priv->transport_security_protos =
- modest_protocol_info_get_connection_protocol_pair_list ();
+ priv->transport_security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
priv->transport_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
- priv->transport_auth_protos = modest_protocol_info_get_auth_protocol_pair_list ();
+ tag = MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS;
+ priv->transport_auth_protos = modest_gnome_utils_get_protocols_pair_list (tag);
priv->transport_secure_auth_combo = GTK_WIDGET (modest_combo_box_new (priv->transport_auth_protos, g_str_equal));
/* Setup security frame */
* somewhere else
*/
static gchar*
-get_account_uri (ModestTransportStoreProtocol proto, const gchar* path)
+get_account_uri (ModestProtocolType proto, const gchar* path)
{
CamelURL *url;
gchar *uri;
- switch (proto) {
- case MODEST_PROTOCOL_STORE_MBOX:
- url = camel_url_new ("mbox:", NULL); break;
- case MODEST_PROTOCOL_STORE_MAILDIR:
- url = camel_url_new ("maildir:", NULL); break;
- default:
- g_return_val_if_reached (NULL);
+ if (proto == modest_protocol_registry_get_mbox_type_id ()) {
+ url = camel_url_new ("mbox:", NULL);
+ } else {
+ if (proto == modest_protocol_registry_get_maildir_type_id ())
+ url = camel_url_new ("maildir:", NULL);
+ else
+ g_return_val_if_reached (NULL);
}
+
camel_url_set_path (url, path);
uri = camel_url_to_string (url, 0);
camel_url_free (url);
}
static gchar*
-get_new_server_account_name (ModestAccountMgr* acc_mgr, ModestTransportStoreProtocol proto,
- const gchar* username, const gchar *servername)
+get_new_server_account_name (ModestAccountMgr* acc_mgr,
+ ModestProtocolType proto_id,
+ const gchar *username,
+ const gchar *servername)
{
gchar *name;
+ const gchar *proto_name;
gint i = 0;
-
+ ModestProtocolRegistry *registry;
+ ModestProtocol *proto;
+
+ registry = modest_runtime_get_protocol_registry ();
+ proto = modest_protocol_registry_get_protocol_by_type (registry, proto_id);
+ proto_name = modest_protocol_get_name (proto);
+
while (TRUE) {
- name = g_strdup_printf ("%s:%d",
- modest_protocol_info_get_transport_store_protocol_name(proto), i++);
+ name = g_strdup_printf ("%s:%d", proto_name, i++);
+
if (modest_account_mgr_account_exists (acc_mgr, name, TRUE))
g_free (name);
else
return TRUE;
}
-static gint get_serverport_incoming(ModestTransportStoreProtocol protocol,
- ModestConnectionProtocol security)
+static gint
+get_serverport_incoming(ModestProtocolType protocol,
+ ModestProtocolType security)
{
int serverport_incoming = 0;
- /* We don't check for SMTP here as that is impossible for an incoming server. */
- if (protocol == MODEST_PROTOCOL_STORE_IMAP) {
- switch (security) {
- case MODEST_PROTOCOL_CONNECTION_NORMAL:
- case MODEST_PROTOCOL_CONNECTION_TLS:
- case MODEST_PROTOCOL_CONNECTION_TLS_OP:
- serverport_incoming = 143;
- break;
- case MODEST_PROTOCOL_CONNECTION_SSL:
- serverport_incoming = 993;
- break;
- }
- } else if (protocol == MODEST_PROTOCOL_STORE_POP) {
- switch (security) {
- case MODEST_PROTOCOL_CONNECTION_NORMAL:
- case MODEST_PROTOCOL_CONNECTION_TLS:
- case MODEST_PROTOCOL_CONNECTION_TLS_OP:
- serverport_incoming = 110;
- break;
- case MODEST_PROTOCOL_CONNECTION_SSL:
- serverport_incoming = 995;
- break;
- }
+
+ /* We don't check for SMTP here as that is impossible for an incoming server. */
+ if ((security == modest_protocol_registry_get_none_connection_type_id ()) ||
+ (security == modest_protocol_registry_get_tls_connection_type_id ()) ||
+ (security == modest_protocol_registry_get_tlsop_connection_type_id ())) {
+
+ if (protocol == MODEST_PROTOCOLS_STORE_IMAP) {
+ serverport_incoming = 143;
+ } else if (protocol == MODEST_PROTOCOLS_STORE_POP) {
+ serverport_incoming = 110;
}
+ } else if (security == modest_protocol_registry_get_ssl_connection_type_id ()) {
+ if (protocol == MODEST_PROTOCOLS_STORE_IMAP) {
+ serverport_incoming = 993;
+ } else if (protocol == MODEST_PROTOCOLS_STORE_POP) {
+ serverport_incoming = 995;
+ }
+ }
+
return serverport_incoming;
}
check_for_supported_auth_methods (ModestAccountAssistant* self)
{
GError *error = NULL;
- ModestTransportStoreProtocol protocol;
+ ModestProtocolType protocol;
const gchar* hostname;
const gchar* username;
gchar *store_protocol_name, *store_security_name;
- ModestConnectionProtocol security_protocol;
+ ModestProtocolType security_protocol;
int port_num;
GList *list_auth_methods;
ModestAccountAssistantPrivate *priv;
+ ModestProtocolRegistry *registry;
+ ModestProtocol *proto;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
hostname = gtk_entry_get_text(GTK_ENTRY(priv->store_server_widget));
username = gtk_entry_get_text(GTK_ENTRY(priv->username));
store_protocol_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_protocol_combo));
- protocol = modest_protocol_info_get_transport_store_protocol (store_protocol_name);
+ registry = modest_runtime_get_protocol_registry ();
+ proto = modest_protocol_registry_get_protocol_by_name (registry,
+ MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS,
+ store_protocol_name);
+ protocol = modest_protocol_get_type_id (proto);
+
g_free (store_protocol_name);
store_security_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_security_combo));
- security_protocol = modest_protocol_info_get_connection_protocol (store_security_name);
+
+ proto = modest_protocol_registry_get_protocol_by_name (registry,
+ MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS,
+ store_security_name);
+ security_protocol = modest_protocol_get_type_id (proto);
g_free (store_security_name);
port_num = get_serverport_incoming(protocol, security_protocol);
list_auth_methods = modest_utils_get_supported_secure_authentication_methods (protocol, hostname, port_num,
GList* list = NULL;
GList* method;
for (method = list_auth_methods; method != NULL; method = g_list_next(method)) {
- ModestAuthProtocol auth = (ModestAuthProtocol) (GPOINTER_TO_INT(method->data));
- if (modest_protocol_info_auth_is_secure(auth)) {
+ ModestProtocolType auth = (ModestProtocolType) (GPOINTER_TO_INT(method->data));
+ if (modest_protocol_registry_protocol_type_is_secure (registry, auth)) {
list = g_list_append(list, GINT_TO_POINTER(auth));
}
}
return NULL;
}
-static ModestAuthProtocol check_first_supported_auth_method(ModestAccountAssistant* self)
+static ModestProtocolType check_first_supported_auth_method(ModestAccountAssistant* self)
{
- ModestAuthProtocol result = MODEST_PROTOCOL_AUTH_PASSWORD;
+ ModestProtocolType result = MODEST_PROTOCOLS_AUTH_PASSWORD;
GList* methods = check_for_supported_auth_methods(self);
if (methods)
{
/* Use the first one: */
- result = (ModestAuthProtocol) (GPOINTER_TO_INT(methods->data));
+ result = (ModestProtocolType) (GPOINTER_TO_INT(methods->data));
g_list_free(methods);
}
const gchar *username, *password;
gchar *store_hostname, *transport_hostname;
guint store_port, transport_port;
- ModestTransportStoreProtocol store_protocol, transport_protocol;
- ModestConnectionProtocol store_security, transport_security;
- ModestAuthProtocol store_auth_protocol, transport_auth_protocol;
+ ModestProtocolType store_protocol, transport_protocol;
+ ModestProtocolType store_security, transport_security;
+ ModestProtocolType store_auth_protocol, transport_auth_protocol;
ModestServerAccountSettings *store_settings, *transport_settings;
const gchar *fullname, *email_address;
/* Note: We need something as default for the ModestTransportStoreProtocol* values,
* or modest_account_mgr_add_server_account will fail. */
store_port = 0;
- store_protocol = MODEST_PROTOCOL_STORE_POP;
- store_security = MODEST_PROTOCOL_CONNECTION_NORMAL;
- store_auth_protocol = MODEST_PROTOCOL_AUTH_NONE;
+ store_protocol = MODEST_PROTOCOLS_STORE_POP;
+ store_security = MODEST_PROTOCOLS_CONNECTION_NONE;
+ store_auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
/* Use custom pages because no preset was specified: */
store_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->store_server_widget) ));
- store_protocol = modest_protocol_info_get_transport_store_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_protocol_combo)));
- store_security = modest_protocol_info_get_connection_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo)));
+ store_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_protocol_combo));
+ store_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo));
/* The UI spec says:
* If secure authentication is unchecked, allow sending username and password also as plain text.
* If secure authentication is checked, require one of the secure methods during
* connection: SSL, TLS, CRAM-MD5 etc. */
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->store_secure_auth)) &&
- !modest_protocol_info_is_secure(store_security)) {
+ !modest_protocol_registry_protocol_type_is_secure(modest_runtime_get_protocol_registry (),
+ store_security)) {
store_auth_protocol = check_first_supported_auth_method (self);
} else {
- store_auth_protocol = MODEST_PROTOCOL_AUTH_PASSWORD;
+ store_auth_protocol = MODEST_PROTOCOLS_AUTH_PASSWORD;
}
/* now we store the store account settings */
modest_server_account_settings_set_username (store_settings, username);
modest_server_account_settings_set_password (store_settings, password);
modest_server_account_settings_set_protocol (store_settings, store_protocol);
- modest_server_account_settings_set_security (store_settings, store_security);
+ modest_server_account_settings_set_security_protocol (store_settings, store_security);
modest_server_account_settings_set_auth_protocol (store_settings, store_auth_protocol);
if (store_port != 0)
modest_server_account_settings_set_port (store_settings, store_port);
/* Outgoing server: */
transport_hostname = NULL;
- transport_protocol = MODEST_PROTOCOL_STORE_POP;
- transport_security = MODEST_PROTOCOL_CONNECTION_NORMAL;
- transport_auth_protocol = MODEST_PROTOCOL_AUTH_NONE;
+ transport_protocol = MODEST_PROTOCOLS_STORE_POP;
+ transport_security = MODEST_PROTOCOLS_CONNECTION_NONE;
+ transport_auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
transport_port = 0;
transport_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->transport_server_widget) ));
- transport_protocol = MODEST_PROTOCOL_TRANSPORT_SMTP; /* It's always SMTP for outgoing. */
- transport_security = modest_protocol_info_get_connection_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_security_combo)));
- transport_auth_protocol = modest_protocol_info_get_auth_protocol (modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_secure_auth_combo)));
+ transport_protocol = MODEST_PROTOCOLS_TRANSPORT_SMTP; /* It's always SMTP for outgoing. */
+ transport_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_security_combo));
+ transport_auth_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_secure_auth_combo));
/* now we transport the transport account settings */
transport_settings = modest_account_settings_get_transport_settings (priv->settings);
modest_server_account_settings_set_username (transport_settings, username);
modest_server_account_settings_set_password (transport_settings, password);
modest_server_account_settings_set_protocol (transport_settings, transport_protocol);
- modest_server_account_settings_set_security (transport_settings, transport_security);
+ modest_server_account_settings_set_security_protocol (transport_settings, transport_security);
modest_server_account_settings_set_auth_protocol (transport_settings, transport_auth_protocol);
if (transport_port != 0)
modest_server_account_settings_set_port (transport_settings, transport_port);