X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmaemo%2Feasysetup%2Fmodest-presets.c;h=ef23742c423cde29ca5fe8dfe9df51d6a49e0ed9;hb=92e848e6267ce480ca81a2cba034375ce04d3756;hp=0a6df351073613f144fbbc0184259329cbcc5198;hpb=921074a3b84ea19ec2721a7779481d3422fd6988;p=modest diff --git a/src/maemo/easysetup/modest-presets.c b/src/maemo/easysetup/modest-presets.c index 0a6df35..ef23742 100644 --- a/src/maemo/easysetup/modest-presets.c +++ b/src/maemo/easysetup/modest-presets.c @@ -28,7 +28,10 @@ */ #include /* for strcmp */ +#include +#include #include "modest-presets.h" +#include /* Include config.h so that _() works: */ #ifdef HAVE_CONFIG_H @@ -43,7 +46,8 @@ #define MODEST_PRESETS_KEY_OUTGOING "OutgoingMailServer" #define MODEST_PRESETS_KEY_MAILBOX_TYPE "MailboxType" #define MODEST_PRESETS_KEY_APOP "APOPSecureLogin" -#define MODEST_PRESETS_KEY_SECURE_SMTP "SecureSMTP" +#define MODEST_PRESETS_KEY_SECURE_SMTP "SecureSmtp" +#define MODEST_PRESETS_KEY_SMTP_PORT "SmtpPort" ModestPresets* @@ -62,8 +66,6 @@ modest_presets_new (const gchar *presetfile) g_free (presets); return NULL; } - - /* TODO: Unobfuscate an obfuscated file and then load it with g_key_file_load_from_data() instead. */ if (!g_key_file_load_from_file (presets->keyfile, presetfile, G_KEY_FILE_NONE, &err)) { @@ -115,10 +117,12 @@ modest_presets_get_providers (ModestPresets *self, guint mcc, }; /* return *all* providers? */ + /* if (mcc == 0 && include_globals) { *provider_ids = all_provider_ids; return all_providers; } + */ /* nope: filter them */ @@ -191,102 +195,178 @@ modest_presets_get_domain (ModestPresets *self, -ModestPresetsServerType +ModestProtocolType modest_presets_get_info_server_type (ModestPresets *self, const gchar *provider_id, gboolean incoming_server) { - ModestPresetsServerType info = MODEST_PRESETS_SERVER_TYPE_NONE; + ModestProtocolType protocol_type = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID; + ModestProtocolRegistry *protocol_registry; + ModestProtocol *protocol; gchar *val = NULL; g_return_val_if_fail (self && self->keyfile, 0); + protocol_registry = modest_runtime_get_protocol_registry (); if (incoming_server) { val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_INCOMING, NULL); if (!val) - return info; + return protocol_type; g_free (val); val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_MAILBOX_TYPE,NULL); - if (val && strcmp (val, "pop") == 0) - info = MODEST_PRESETS_SERVER_TYPE_POP; - if (val && strcmp (val, "imap") == 0) - info = MODEST_PRESETS_SERVER_TYPE_IMAP; + + protocol = modest_protocol_registry_get_protocol_by_name (protocol_registry, MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS, val); + if (protocol == NULL) + return protocol_type; + protocol_type = modest_protocol_get_type_id (protocol); } else { val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_OUTGOING, NULL); if (!val) - return info; - info = MODEST_PRESETS_SERVER_TYPE_SMTP; + return protocol_type; + + protocol_type = MODEST_PROTOCOLS_TRANSPORT_SMTP; } g_free (val); /* debug: */ /* g_message ("provider id: %s, server type: %d", provider_id, info); */ - return info; + return protocol_type; } -ModestPresetsSecurity +ModestProtocolType modest_presets_get_info_server_security (ModestPresets *self, const gchar *provider_id, gboolean incoming_server) { - ModestPresetsSecurity info = MODEST_PRESETS_SECURITY_NONE; + ModestProtocolType protocol_type = MODEST_PROTOCOLS_CONNECTION_NONE; gchar *val = NULL; - g_return_val_if_fail (self && self->keyfile, MODEST_PRESETS_SECURITY_NONE); + g_return_val_if_fail (self && self->keyfile, MODEST_PROTOCOLS_CONNECTION_NONE); if (incoming_server) { val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_INCOMING, NULL); if (val) { g_free (val); + val = g_key_file_get_string (self->keyfile, provider_id, - MODEST_PRESETS_KEY_APOP, NULL); - if (val && strcmp(val, "true") == 0) - info |= MODEST_PRESETS_SECURITY_APOP; - g_free(val); + MODEST_PRESETS_KEY_INCOMING_SECURITY, NULL); + if (val && ((strcmp (val, "1") == 0) || (strcmp (val, "2") == 0))) { + protocol_type = MODEST_PROTOCOLS_CONNECTION_SSL; + } + g_free (val); + } + } else /* outgoing: */ { + val = g_key_file_get_string (self->keyfile, provider_id, + MODEST_PRESETS_KEY_OUTGOING, NULL); + if (val) { + g_free (val); val = g_key_file_get_string (self->keyfile, provider_id, + MODEST_PRESETS_KEY_SECURE_SMTP, NULL); + /* printf("debug: %s: provider_id=%s, secure-smtp val=%s\n", __FUNCTION__, provider_id, val); */ + if (val && strcmp(val,"true") == 0) + protocol_type = MODEST_PROTOCOLS_CONNECTION_SSL; + g_free(val); + } + } + + return protocol_type; +} + +gboolean +modest_presets_get_info_server_use_alternate_port (ModestPresets *self, const gchar *provider_id, + gboolean incoming_server) +{ + gboolean result = FALSE; + gchar *val = NULL; + + g_return_val_if_fail (self && self->keyfile, MODEST_PROTOCOLS_CONNECTION_NONE); + + if (incoming_server) { + val = g_key_file_get_string (self->keyfile, provider_id, + MODEST_PRESETS_KEY_INCOMING, NULL); + if (val) { + g_free (val); + + val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_INCOMING_SECURITY, NULL); - if (val && strcmp (val, "1") == 0) - info |= MODEST_PRESETS_SECURITY_SECURE_INCOMING; - if (val && strcmp (val, "2") == 0) { - info |= MODEST_PRESETS_SECURITY_SECURE_INCOMING; - info |= MODEST_PRESETS_SECURITY_SECURE_INCOMING_ALTERNATE_PORT; + if (val && (strcmp (val, "2") == 0)) { + result = TRUE; } g_free (val); } + } + + return result; +} + +ModestProtocolType +modest_presets_get_info_server_auth (ModestPresets *self, const gchar *provider_id, + gboolean incoming_server) +{ + ModestProtocolType protocol_type = MODEST_PROTOCOLS_AUTH_NONE; + gchar *val = NULL; + + g_return_val_if_fail (self && self->keyfile, MODEST_PROTOCOLS_AUTH_NONE); + + if (incoming_server) { + val = g_key_file_get_string (self->keyfile, provider_id, + MODEST_PRESETS_KEY_INCOMING, NULL); + if (val) { + g_free (val); + val = g_key_file_get_string (self->keyfile, provider_id, + MODEST_PRESETS_KEY_APOP, NULL); + if (val && strcmp(val, "true") == 0) + protocol_type = MODEST_PROTOCOLS_AUTH_PASSWORD; + g_free(val); + + } } else /* outgoing: */ { val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_OUTGOING, NULL); if (val) { g_free (val); - info |= MODEST_PRESETS_SECURITY_SECURE_SMTP; val = g_key_file_get_string (self->keyfile, provider_id, MODEST_PRESETS_KEY_SECURE_SMTP, NULL); + /* printf("debug: %s: provider_id=%s, secure-smtp val=%s\n", __FUNCTION__, provider_id, val); */ if (val && strcmp(val,"true") == 0) - info |= MODEST_PRESETS_SECURITY_SECURE_SMTP; + protocol_type = MODEST_PROTOCOLS_AUTH_PASSWORD; g_free(val); } } - /* debug */ -/* g_message ("provider id: %s, apop:%s, secure-incoming:%s, altport: %s, secure-smtp: %s", */ -/* provider_id, */ -/* info & MODEST_PRESETS_SECURITY_APOP ? "yes" : "no", */ -/* info & MODEST_PRESETS_SECURITY_SECURE_INCOMING ? "yes" : "no", */ -/* info & MODEST_PRESETS_SECURITY_SECURE_INCOMING_ALTERNATE_PORT ? "yes" : "no", */ -/* info & MODEST_PRESETS_SECURITY_SECURE_SMTP ? "yes" : "no"); */ + return protocol_type; +} + +/* + * at the moment, this only for mac.com, which have a special SMTP port + */ +guint +modest_presets_get_port (ModestPresets *self, const gchar* provider_id, + gboolean incoming_server) +{ + guint port; + + g_return_val_if_fail (self && self->keyfile, 0); - return info; + if (incoming_server) + port = 0; /* not used yet */ + else + port = (guint)g_key_file_get_integer (self->keyfile, provider_id, + MODEST_PRESETS_KEY_SMTP_PORT, NULL); + + return port; } - + + void