diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
commit | cf46733632c7279a9fd0fe6ce26f9185a4ae82a9 (patch) | |
tree | da27775a2161723ef342e91af41a8b51fedef405 /subversion/libsvn_subr/deprecated.c | |
parent | bb0ef45f7c46b0ae221b26265ef98a768c33f820 (diff) | |
download | subversion-tarball-master.tar.gz |
subversion-1.9.7HEADsubversion-1.9.7master
Diffstat (limited to 'subversion/libsvn_subr/deprecated.c')
-rw-r--r-- | subversion/libsvn_subr/deprecated.c | 241 |
1 files changed, 240 insertions, 1 deletions
diff --git a/subversion/libsvn_subr/deprecated.c b/subversion/libsvn_subr/deprecated.c index 93bd89d..68e3bd2 100644 --- a/subversion/libsvn_subr/deprecated.c +++ b/subversion/libsvn_subr/deprecated.c @@ -28,6 +28,8 @@ #include <assert.h> +#include <apr_md5.h> + /* We define this here to remove any further warnings about the usage of deprecated functions in this file. */ #define SVN_DEPRECATED @@ -43,11 +45,12 @@ #include "svn_mergeinfo.h" #include "svn_utf.h" #include "svn_xml.h" +#include "svn_auth.h" #include "opt.h" +#include "auth.h" #include "private/svn_opt_private.h" #include "private/svn_mergeinfo_private.h" -#include "private/svn_subr_private.h" #include "svn_private_config.h" @@ -1067,6 +1070,119 @@ svn_stream_contents_same(svn_boolean_t *same, pool)); } +void +svn_stream_set_read(svn_stream_t *stream, + svn_read_fn_t read_fn) +{ + svn_stream_set_read2(stream, NULL /* only full read support */, + read_fn); +} + +svn_error_t * +svn_stream_read(svn_stream_t *stream, + char *buffer, + apr_size_t *len) +{ + return svn_error_trace(svn_stream_read_full(stream, buffer, len)); +} + +struct md5_stream_baton +{ + const unsigned char **read_digest; + const unsigned char **write_digest; + svn_checksum_t *read_checksum; + svn_checksum_t *write_checksum; + svn_stream_t *proxy; + apr_pool_t *pool; +}; + +static svn_error_t * +read_handler_md5(void *baton, char *buffer, apr_size_t *len) +{ + struct md5_stream_baton *btn = baton; + return svn_error_trace(svn_stream_read2(btn->proxy, buffer, len)); +} + +static svn_error_t * +read_full_handler_md5(void *baton, char *buffer, apr_size_t *len) +{ + struct md5_stream_baton *btn = baton; + return svn_error_trace(svn_stream_read_full(btn->proxy, buffer, len)); +} + +static svn_error_t * +skip_handler_md5(void *baton, apr_size_t len) +{ + struct md5_stream_baton *btn = baton; + return svn_error_trace(svn_stream_skip(btn->proxy, len)); +} + +static svn_error_t * +write_handler_md5(void *baton, const char *buffer, apr_size_t *len) +{ + struct md5_stream_baton *btn = baton; + return svn_error_trace(svn_stream_write(btn->proxy, buffer, len)); +} + +static svn_error_t * +close_handler_md5(void *baton) +{ + struct md5_stream_baton *btn = baton; + + SVN_ERR(svn_stream_close(btn->proxy)); + + if (btn->read_digest) + *btn->read_digest + = apr_pmemdup(btn->pool, btn->read_checksum->digest, + APR_MD5_DIGESTSIZE); + + if (btn->write_digest) + *btn->write_digest + = apr_pmemdup(btn->pool, btn->write_checksum->digest, + APR_MD5_DIGESTSIZE); + + return SVN_NO_ERROR; +} + + +svn_stream_t * +svn_stream_checksummed(svn_stream_t *stream, + const unsigned char **read_digest, + const unsigned char **write_digest, + svn_boolean_t read_all, + apr_pool_t *pool) +{ + svn_stream_t *s; + struct md5_stream_baton *baton; + + if (! read_digest && ! write_digest) + return stream; + + baton = apr_palloc(pool, sizeof(*baton)); + baton->read_digest = read_digest; + baton->write_digest = write_digest; + baton->pool = pool; + + /* Set BATON->proxy to a stream that will fill in BATON->read_checksum + * and BATON->write_checksum (if we want them) when it is closed. */ + baton->proxy + = svn_stream_checksummed2(stream, + read_digest ? &baton->read_checksum : NULL, + write_digest ? &baton->write_checksum : NULL, + svn_checksum_md5, + read_all, pool); + + /* Create a stream that will forward its read/write/close operations to + * BATON->proxy and will fill in *READ_DIGEST and *WRITE_DIGEST (if we + * want them) after it closes BATON->proxy. */ + s = svn_stream_create(baton, pool); + svn_stream_set_read2(s, read_handler_md5, read_full_handler_md5); + svn_stream_set_skip(s, skip_handler_md5); + svn_stream_set_write(s, write_handler_md5); + svn_stream_set_close(s, close_handler_md5); + return s; +} + /*** From path.c ***/ const char * @@ -1253,6 +1369,8 @@ svn_xml_make_header(svn_stringbuf_t **str, apr_pool_t *pool) svn_xml_make_header2(str, NULL, pool); } + +/*** From utf.c ***/ void svn_utf_initialize(apr_pool_t *pool) { @@ -1260,6 +1378,31 @@ svn_utf_initialize(apr_pool_t *pool) } svn_error_t * +svn_utf_cstring_from_utf8_ex(const char **dest, + const char *src, + const char *topage, + const char *convset_key, + apr_pool_t *pool) +{ + return svn_utf_cstring_from_utf8_ex2(dest, src, topage, pool); +} + +/*** From error.c ***/ +void +svn_handle_error(svn_error_t *err, FILE *stream, svn_boolean_t fatal) +{ + svn_handle_error2(err, stream, fatal, "svn: "); +} + +void +svn_handle_warning(FILE *stream, svn_error_t *err) +{ + svn_handle_warning2(stream, err, "svn: "); +} + + +/*** From subst.c ***/ +svn_error_t * svn_subst_build_keywords(svn_subst_keywords_t *kw, const char *keywords_val, const char *rev, @@ -1309,3 +1452,99 @@ svn_ver_check_list(const svn_version_t *my_version, { return svn_ver_check_list2(my_version, checklist, svn_ver_compatible); } + +/*** From win32_crypto.c ***/ +#if defined(WIN32) && !defined(__MINGW32__) +void +svn_auth_get_windows_simple_provider(svn_auth_provider_object_t **provider, + apr_pool_t *pool) +{ + svn_auth__get_windows_simple_provider(provider, pool); +} + +void +svn_auth_get_windows_ssl_client_cert_pw_provider + (svn_auth_provider_object_t **provider, + apr_pool_t *pool) +{ + svn_auth__get_windows_ssl_client_cert_pw_provider(provider, pool); +} + +void +svn_auth_get_windows_ssl_server_trust_provider + (svn_auth_provider_object_t **provider, apr_pool_t *pool) +{ + svn_auth__get_windows_ssl_server_trust_provider(provider, pool); +} +#endif /* WIN32 && !__MINGW32__ */ + +/*** From macos_keychain.c ***/ +#if defined(DARWIN) +void +svn_auth_get_keychain_simple_provider(svn_auth_provider_object_t **provider, + apr_pool_t *pool) +{ +#ifdef SVN_HAVE_KEYCHAIN_SERVICES + svn_auth__get_keychain_simple_provider(provider, pool); +#else + svn_auth__get_dummmy_simple_provider(provider, pool); +#endif +} + +void +svn_auth_get_keychain_ssl_client_cert_pw_provider + (svn_auth_provider_object_t **provider, + apr_pool_t *pool) +{ +#ifdef SVN_HAVE_KEYCHAIN_SERVICES + svn_auth__get_keychain_ssl_client_cert_pw_provider(provider, pool); +#else + /* Not really the right type of dummy provider, but doesn't throw NULL + errors as just returning NULL would */ + svn_auth__get_dummmy_simple_provider(provider, pool); +#endif +} +#endif /* DARWIN */ + +#if !defined(WIN32) +void +svn_auth_get_gpg_agent_simple_provider(svn_auth_provider_object_t **provider, + apr_pool_t *pool) +{ +#ifdef SVN_HAVE_GPG_AGENT + svn_auth__get_gpg_agent_simple_provider(provider, pool); +#else + svn_auth__get_dummmy_simple_provider(provider, pool); +#endif /* SVN_HAVE_GPG_AGENT */ +} +#endif /* !WIN32 */ + +svn_error_t * +svn_cmdline_create_auth_baton(svn_auth_baton_t **ab, + svn_boolean_t non_interactive, + const char *auth_username, + const char *auth_password, + const char *config_dir, + svn_boolean_t no_auth_cache, + svn_boolean_t trust_server_cert, + svn_config_t *cfg, + svn_cancel_func_t cancel_func, + void *cancel_baton, + apr_pool_t *pool) +{ + return svn_error_trace(svn_cmdline_create_auth_baton2(ab, + non_interactive, + auth_username, + auth_password, + config_dir, + no_auth_cache, + trust_server_cert, + FALSE, + FALSE, + FALSE, + FALSE, + cfg, + cancel_func, + cancel_baton, + pool)); +} |