diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-05-17 21:40:20 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-05-19 17:51:53 +0200 |
| commit | d3e1367f61030f78692fb9f02e82cd49b1f8e949 (patch) | |
| tree | e43c4b09137dbb2a0e470b6867fd4ffa4c55a5ae /src/netops.c | |
| parent | 16768191c739e6478db95b80a51753dfd0662302 (diff) | |
| download | libgit2-d3e1367f61030f78692fb9f02e82cd49b1f8e949.tar.gz | |
ssl: remove GnuTLS support
It's too much work for now to redo everything.
Move the ssl context struct to transport.h
Diffstat (limited to 'src/netops.c')
| -rw-r--r-- | src/netops.c | 103 |
1 files changed, 12 insertions, 91 deletions
diff --git a/src/netops.c b/src/netops.c index 2f127102c..6967ebb5b 100644 --- a/src/netops.c +++ b/src/netops.c @@ -18,11 +18,7 @@ # endif #endif -#ifdef GIT_GNUTLS -# include <gnutls/openssl.h> -# include <gnutls/gnutls.h> -# include <gnutls/x509.h> -#elif defined(GIT_OPENSSL) +#ifdef GIT_SSL # include <openssl/ssl.h> # include <openssl/x509v3.h> #endif @@ -55,13 +51,7 @@ static void net_set_error(const char *str) } #endif -#ifdef GIT_GNUTLS -static int ssl_set_error(int error) -{ - giterr_set(GITERR_NET, "SSL error: (%s) %s", gnutls_strerror_name(error), gnutls_strerror(error)); - return -1; -} -#elif GIT_OPENSSL +#ifdef GIT_SSL static int ssl_set_error(gitno_ssl *ssl, int error) { int err; @@ -85,23 +75,7 @@ void gitno_buffer_setup(git_transport *t, gitno_buffer *buf, char *data, unsigne #endif } -#ifdef GIT_GNUTLS -static int ssl_recv(gitno_ssl *ssl, void *data, size_t len) -{ - int ret; - - do { - ret = gnutls_record_recv(ssl->session, data, len); - } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN); - - if (ret < 0) { - ssl_set_error(ret); - return -1; - } - - return ret; -} -#elif defined(GIT_OPENSSL) +#ifdef GIT_SSL static int ssl_recv(gitno_ssl *ssl, void *data, size_t len) { int ret; @@ -174,11 +148,7 @@ int gitno_ssl_teardown(git_transport *t) if (!t->encrypt) return 0; -#ifdef GIT_GNUTLS - gnutls_deinit(t->ssl.session); - gnutls_certificate_free_credentials(t->ssl.cred); - gnutls_global_deinit(); -#elif defined(GIT_OPENSSL) +#ifdef GIT_SSL do { ret = SSL_shutdown(t->ssl.ssl); @@ -193,7 +163,7 @@ int gitno_ssl_teardown(git_transport *t) } -#ifdef GIT_OPENSSL +#ifdef GIT_SSL /* Match host names according to RFC 2818 rules */ static int match_host(const char *pattern, const char *host) { @@ -294,44 +264,9 @@ static int verify_server_cert(git_transport *t, const char *host) return 0; } -#endif static int ssl_setup(git_transport *t, const char *host) { -#ifdef GIT_GNUTLS - int ret; - - if ((ret = gnutls_global_init()) < 0) - return ssl_set_error(ret); - - if ((ret = gnutls_certificate_allocate_credentials(&t->ssl.cred)) < 0) - return ssl_set_error(ret); - - gnutls_init(&t->ssl.session, GNUTLS_CLIENT); - //gnutls_certificate_set_verify_function(ssl->cred, SSL_VERIFY_NONE); - gnutls_credentials_set(t->ssl.session, GNUTLS_CRD_CERTIFICATE, t->ssl.cred); - - if ((ret = gnutls_priority_set_direct (t->ssl.session, "NORMAL", NULL)) < 0) - return ssl_set_error(ret); - - gnutls_transport_set_ptr(t->ssl.session, (gnutls_transport_ptr_t) t->socket); - - do { - ret = gnutls_handshake(t->ssl.session); - } while (ret < 0 && !gnutls_error_is_fatal(ret)); - - if (ret < 0) { - ssl_set_error(ret); - goto on_error; - } - - return 0; - -on_error: - gnutls_deinit(t->ssl.session); - gnutls_global_deinit(); - return -1; -#elif defined(GIT_OPENSSL) int ret; SSL_library_init(); @@ -359,11 +294,16 @@ on_error: return -1; return 0; +} #else +static int ssl_setup(git_transport *t, const char *host) +{ GIT_UNUSED(t); + GIT_UNUSED(host); return 0; -#endif } +#endif + int gitno_connect(git_transport *t, const char *host, const char *port) { struct addrinfo *info = NULL, *p; @@ -410,26 +350,7 @@ int gitno_connect(git_transport *t, const char *host, const char *port) return 0; } -#ifdef GIT_GNUTLS -static int send_ssl(gitno_ssl *ssl, const char *msg, size_t len) -{ - int ret; - size_t off = 0; - - while (off < len) { - ret = gnutls_record_send(ssl->session, msg + off, len - off); - if (ret < 0) { - if (gnutls_error_is_fatal(ret)) - return ssl_set_error(ret); - - ret = 0; - } - off += ret; - } - - return off; -} -#elif defined(GIT_OPENSSL) +#ifdef GIT_SSL static int send_ssl(gitno_ssl *ssl, const char *msg, size_t len) { int ret; |
