summaryrefslogtreecommitdiff
path: root/subversion/libsvn_subr/deprecated.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_subr/deprecated.c')
-rw-r--r--subversion/libsvn_subr/deprecated.c241
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));
+}