You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/08/23 20:38:44 UTC
svn commit: r1376644 - in /subversion/branches/1.7.x-r1375052: ./
subversion/libsvn_subr/auth.c
Author: cmpilato
Date: Thu Aug 23 18:38:44 2012
New Revision: 1376644
URL: http://svn.apache.org/viewvc?rev=1376644&view=rev
Log:
On the '1.7.x-r1375052' branch: merge r1375052 from trunk.
Modified:
subversion/branches/1.7.x-r1375052/ (props changed)
subversion/branches/1.7.x-r1375052/subversion/libsvn_subr/auth.c
Propchange: subversion/branches/1.7.x-r1375052/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1375052
Modified: subversion/branches/1.7.x-r1375052/subversion/libsvn_subr/auth.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-r1375052/subversion/libsvn_subr/auth.c?rev=1376644&r1=1376643&r2=1376644&view=diff
==============================================================================
--- subversion/branches/1.7.x-r1375052/subversion/libsvn_subr/auth.c (original)
+++ subversion/branches/1.7.x-r1375052/subversion/libsvn_subr/auth.c Thu Aug 23 18:38:44 2012
@@ -494,30 +494,26 @@ svn_auth_get_platform_specific_client_pr
apr_array_header_t *password_stores;
int i;
- if (config)
- {
- svn_config_get(config,
- &password_stores_config_option,
- SVN_CONFIG_SECTION_AUTH,
- SVN_CONFIG_OPTION_PASSWORD_STORES,
- "gnome-keyring,kwallet,keychain,windows-cryptoapi");
- }
- else
- {
- password_stores_config_option = "gnome-keyring,kwallet,keychain,windows-cryptoapi";
- }
+#define SVN__MAYBE_ADD_PROVIDER(list, p) \
+ { if (p) APR_ARRAY_PUSH(list, svn_auth_provider_object_t *) = p; }
*providers = apr_array_make(pool, 12, sizeof(svn_auth_provider_object_t *));
- password_stores
- = svn_cstring_split(password_stores_config_option, " ,", TRUE, pool);
+ /* Fetch the configured list of password stores, and split them into
+ an array. */
+ svn_config_get(config,
+ &password_stores_config_option,
+ SVN_CONFIG_SECTION_AUTH,
+ SVN_CONFIG_OPTION_PASSWORD_STORES,
+ "gnome-keyring,kwallet,keychain,windows-cryptoapi");
+ password_stores = svn_cstring_split(password_stores_config_option,
+ " ,", TRUE, pool);
for (i = 0; i < password_stores->nelts; i++)
{
const char *password_store = APR_ARRAY_IDX(password_stores, i,
const char *);
-
/* GNOME Keyring */
if (apr_strnatcmp(password_store, "gnome-keyring") == 0)
{
@@ -525,90 +521,59 @@ svn_auth_get_platform_specific_client_pr
"gnome_keyring",
"simple",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"gnome_keyring",
"ssl_client_cert_pw",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
-
- continue;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
}
-
/* KWallet */
- if (apr_strnatcmp(password_store, "kwallet") == 0)
+ else if (apr_strnatcmp(password_store, "kwallet") == 0)
{
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"kwallet",
"simple",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"kwallet",
"ssl_client_cert_pw",
pool));
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
-
- continue;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
}
-
/* Keychain */
- if (apr_strnatcmp(password_store, "keychain") == 0)
+ else if (apr_strnatcmp(password_store, "keychain") == 0)
{
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"keychain",
"simple",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"keychain",
"ssl_client_cert_pw",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
-
- continue;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
}
-
/* Windows */
- if (apr_strnatcmp(password_store, "windows-cryptoapi") == 0)
+ else if (apr_strnatcmp(password_store, "windows-cryptoapi") == 0)
{
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"windows",
"simple",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
SVN_ERR(svn_auth_get_platform_specific_provider(&provider,
"windows",
"ssl_client_cert_pw",
pool));
-
- if (provider)
- APR_ARRAY_PUSH(*providers, svn_auth_provider_object_t *) = provider;
-
- continue;
+ SVN__MAYBE_ADD_PROVIDER(*providers, provider);
}
-
- return svn_error_createf(SVN_ERR_BAD_CONFIG_VALUE, NULL,
- _("Invalid config: unknown password store "
- "'%s'"),
- password_store);
}
return SVN_NO_ERROR;