Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
evolution
bgo-552583-save-passwords.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bgo-552583-save-passwords.patch of Package evolution
--- mail/mail-config.c 2009-01-15 16:58:29.000000000 +0530 +++ mail/mail-config.c 2008-12-24 19:07:19.000000000 +0530 @@ -778,52 +800,67 @@ mail_config_get_account_by_uid (const ch return (EAccount *) e_account_list_find (config->accounts, E_ACCOUNT_FIND_UID, uid); } +static gboolean +mail_config_account_url_equal (const CamelURL *u1, + const CamelURL *u2) +{ + /* For the purpose of matching a URL to an EAccount, only compare + * the protocol, user, host and port and disregard the rest. */ + + if (g_strcmp0 (u1->protocol, u2->protocol) != 0) + return FALSE; + + if (g_strcmp0 (u1->user, u2->user) != 0) + return FALSE; + + if (g_strcmp0 (u1->host, u2->host) != 0) + return FALSE; + + return (u1->port == u2->port); +} + EAccount * mail_config_get_account_by_source_url (const char *source_url) { - CamelProvider *provider; - EAccount *account; - CamelURL *source; + EAccount *account = NULL; EIterator *iter; + CamelURL *url; g_return_val_if_fail (source_url != NULL, NULL); - provider = camel_provider_get(source_url, NULL); - if (!provider) - return NULL; - - source = camel_url_new (source_url, NULL); - if (!source) - return NULL; + url = camel_url_new (source_url, NULL); + g_return_val_if_fail (url != NULL, NULL); iter = e_list_get_iterator ((EList *) config->accounts); - while (e_iterator_is_valid (iter)) { - account = (EAccount *) e_iterator_get (iter); + while (account == NULL && e_iterator_is_valid (iter)) { + CamelURL *account_url; - if (account->source && account->source->url && account->source->url[0]) { - CamelURL *url; + account = (EAccount *) e_iterator_get (iter); - url = camel_url_new (account->source->url, NULL); - if (url && provider->url_equal (url, source)) { - camel_url_free (url); - camel_url_free (source); - g_object_unref (iter); + e_iterator_next (iter); - return account; - } + if ( !account || (account->source == NULL) || + (account->source->url == NULL) || (*account->source->url == '\0')) { + account = NULL; + continue; + } - if (url) - camel_url_free (url); + account_url = camel_url_new (account->source->url, NULL); + if (account_url == NULL) { + account = NULL; + continue; } - e_iterator_next (iter); + if (!mail_config_account_url_equal (url, account_url)) + account = NULL; /* not a match */ + + camel_url_free (account_url); } g_object_unref (iter); + camel_url_free (url); - camel_url_free (source); - - return NULL; + return account; } EAccount * @@ -831,48 +868,43 @@ mail_config_get_account_by_transport_url { EAccount *account = NULL; EIterator *iter; + CamelURL *url; g_return_val_if_fail (transport_url != NULL, NULL); + url = camel_url_new (transport_url, NULL); + g_return_val_if_fail (url != NULL, NULL); + iter = e_list_get_iterator ((EList *) config->accounts); - while (e_iterator_is_valid (iter)) { - CamelURL *url; - gchar *string; + while (account == NULL && e_iterator_is_valid (iter)) { + CamelURL *account_url; account = (EAccount *) e_iterator_get (iter); e_iterator_next (iter); - if (account->transport == NULL) - continue; - - else if (account->transport->url == NULL) - continue; - - else if (*account->transport->url == '\0') - continue; + if ( !account || (account->transport == NULL) || + (account->transport->url == NULL) || (*account->transport->url == '\0')) { + account = NULL; + continue; + } - url = camel_url_new (account->transport->url, NULL); - if (url == NULL) + account_url = camel_url_new (account->transport->url, NULL); + if (account_url == NULL) { + account = NULL; continue; + } - /* Simplify the account URL for comparison. */ - string = camel_url_to_string (url, CAMEL_URL_HIDE_ALL); - if (string == NULL || strcmp (string, transport_url) != 0) + if (!mail_config_account_url_equal (url, account_url)) account = NULL; /* not a match */ - camel_url_free (url); - g_free (string); - - if (account != NULL) { - g_object_unref (iter); - return account; - } + camel_url_free (account_url); } g_object_unref (iter); + camel_url_free (url); - return NULL; + return account; } int
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor