/* * Copyright (C) the libgit2 contributors. All rights reserved. * * This file is part of libgit2, distributed under the GNU GPL v2 with * a Linking Exception. For full terms see the included COPYING file. */ #include "git2/errors.h" #include "common.h" #include "openssl_stream.h" #include "stransport_stream.h" static git_stream_cb tls_ctor; int git_stream_register_tls(git_stream_cb ctor) { tls_ctor = ctor; return 0; } int git_tls_stream_new(git_stream **out, const char *host, const char *port) { if (tls_ctor) return tls_ctor(out, host, port); #ifdef GIT_SECURE_TRANSPORT return git_stransport_stream_new(out, host, port); #elif defined(GIT_OPENSSL) return git_openssl_stream_new(out, host, port); #else GIT_UNUSED(out); GIT_UNUSED(host); GIT_UNUSED(port); giterr_set(GITERR_SSL, "there is no TLS stream available"); return -1; #endif }