Mercurial > hgsubversion
comparison svnwrap/svn_swig_wrapper.py @ 272:25d843281127
Use svn 1.6 platform specific auth providers if available
| author | Patrick Mezard <pmezard@gmail.com> |
|---|---|
| date | Wed, 22 Apr 2009 23:24:58 +0200 |
| parents | a5f20358f737 |
| children | ce676eff002b |
comparison
equal
deleted
inserted
replaced
| 271:5278817fe8a1 | 272:25d843281127 |
|---|---|
| 60 def _create_auth_baton(pool): | 60 def _create_auth_baton(pool): |
| 61 """Create a Subversion authentication baton. """ | 61 """Create a Subversion authentication baton. """ |
| 62 # Give the client context baton a suite of authentication | 62 # Give the client context baton a suite of authentication |
| 63 # providers.h | 63 # providers.h |
| 64 platform_specific = ['svn_auth_get_gnome_keyring_simple_provider', | 64 platform_specific = ['svn_auth_get_gnome_keyring_simple_provider', |
| 65 'svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider', | 65 'svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider', |
| 66 'svn_auth_get_keychain_simple_provider', | 66 'svn_auth_get_keychain_simple_provider', |
| 67 'svn_auth_get_keychain_ssl_client_cert_pw_provider', | 67 'svn_auth_get_keychain_ssl_client_cert_pw_provider', |
| 68 'svn_auth_get_kwallet_simple_provider', | 68 'svn_auth_get_kwallet_simple_provider', |
| 69 'svn_auth_get_kwallet_ssl_client_cert_pw_provider', | 69 'svn_auth_get_kwallet_ssl_client_cert_pw_provider', |
| 70 'svn_auth_get_ssl_client_cert_file_provider', | 70 'svn_auth_get_ssl_client_cert_file_provider', |
| 71 'svn_auth_get_windows_simple_provider', | 71 'svn_auth_get_windows_simple_provider', |
| 72 'svn_auth_get_windows_ssl_server_trust_provider', | 72 'svn_auth_get_windows_ssl_server_trust_provider', |
| 73 ] | 73 ] |
| 74 | 74 |
| 75 providers = [] | 75 providers = [] |
| 76 | 76 # Platform-dependant authentication methods |
| 77 for p in platform_specific: | 77 getprovider = getattr(core, 'svn_auth_get_platform_specific_provider', |
| 78 if hasattr(core, p): | 78 None) |
| 79 try: | 79 if getprovider: |
| 80 providers.append(getattr(core, p)()) | 80 # Available in svn >= 1.6 |
| 81 except RuntimeError: | 81 for name in ('gnome_keyring', 'keychain', 'kwallet', 'windows'): |
| 82 pass | 82 for type in ('simple', 'ssl_client_cert_pw', 'ssl_server_trust'): |
| 83 p = getprovider(name, type, pool) | |
| 84 if p: | |
| 85 providers.append(p) | |
| 86 else: | |
| 87 for p in platform_specific: | |
| 88 if hasattr(core, p): | |
| 89 try: | |
| 90 providers.append(getattr(core, p)()) | |
| 91 except RuntimeError: | |
| 92 pass | |
| 83 | 93 |
| 84 providers += [ | 94 providers += [ |
| 85 client.get_simple_provider(), | 95 client.get_simple_provider(), |
| 86 client.get_username_provider(), | 96 client.get_username_provider(), |
| 87 client.get_ssl_client_cert_file_provider(), | 97 client.get_ssl_client_cert_file_provider(), |
