On 07/26/2012 04:33 PM, Bert Huijben wrote:
> 
> 
>> -----Original Message-----
>> From: C. Michael Pilato [mailto:cmpil...@collab.net]
>> Sent: donderdag 26 juli 2012 22:13
>> To: Subversion Development
>> Subject: Third-party provider funcs in our API: did we expose too much?
>>
>> Can anyone explain to me why the following symbols are exposed in the
>> public
>> Subversion API?
>>
>>    svn_auth_get_platform_specific_provider
>>    svn_auth_get_windows_simple_provider
>>    svn_auth_get_windows_ssl_client_cert_pw_provider
>>    svn_auth_get_windows_ssl_server_trust_provider
>>    svn_auth_get_keychain_simple_provider
>>    svn_auth_get_keychain_ssl_client_cert_pw_provider
>>    svn_auth_get_gnome_keyring_simple_provider
>>    svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider
>>    svn_auth_get_kwallet_simple_provider
>>    svn_auth_get_kwallet_ssl_client_cert_pw_provider
>>    svn_auth_get_gpg_agent_simple_provider
>>    svn_auth_gnome_keyring_version
>>    svn_auth_kwallet_version
>>
>> I mean, I recognize the value of what each of these functions provides, but
>> it seems to me that svn_auth_get_platform_specific_client_providers()
>> pretty
>> much obsoletes all them.
> 
> You currently can't initialize a non cmdline behavior without these apis.
> (The only api that calls them for you also Initializes your console for
> you)
>  
> That might be part of the reason.

Why not just use svn_auth_get_platform_specific_client_providers(), which is
just a wrapper around svn_auth_get_platform_specific_provider() that
actually honors the runtime config?  Okay, I can spot one platform-specific
provider that ..._providers() doesn't pick up for you, and that's the
Windows SSL server trust provider.  But I'd be surprised if we couldn't just
plop that one into the list that ..._providers() returns, too.

>> What's more, this latter single function actually honors the runtime
>> configuration's "password-stores" option value (which dictates the
>> availability and preferred specific ordering of third-party providers),
>> while the aforementioned list of interfaces almost begs API consumers to
>> fetch providers individually and plop them into the auth subsystem's
>> providers list without regard to the user-configured availability and order.
> 
> That passwords-stores option is part of the cmdline api.

What?  The password-stores option is part of the Subversion runtime
configuration.  I've never heard it proposed that our runtime configuration
parameters were somehow specific to the command-line client.  If that's the
case, we have a whoooooooole lot of layering violations all over our codebase.

-- 
C. Michael Pilato <cmpil...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to