Commit 574b86b7 by Brad Morgan

Fixed compilation issues when libssh2 is missing

parent c36565c0
......@@ -11,7 +11,9 @@
#include "net.h"
#include "types.h"
#ifdef GIT_SSH
#include <libssh2.h>
#endif
/**
* @file git2/transport.h
......@@ -47,6 +49,7 @@ typedef struct git_cred_userpass_plaintext {
char *password;
} git_cred_userpass_plaintext;
#ifdef GIT_SSH
/* A ssh key file and passphrase */
typedef struct git_cred_ssh_keyfile_passphrase {
git_cred parent;
......@@ -63,6 +66,7 @@ typedef struct git_cred_ssh_publickey {
void *sign_callback;
void *sign_data;
} git_cred_ssh_publickey;
#endif
/**
* Creates a new plain-text username and password credential object.
......@@ -78,6 +82,7 @@ GIT_EXTERN(int) git_cred_userpass_plaintext_new(
const char *username,
const char *password);
#ifdef GIT_SSH
/**
* Creates a new ssh key file and passphrase credential object.
* The supplied credential parameter will be internally duplicated.
......@@ -111,6 +116,7 @@ GIT_EXTERN(int) git_cred_ssh_publickey_new(
size_t publickey_len,
LIBSSH2_USERAUTH_PUBLICKEY_SIGN_FUNC((*sign_callback)),
void *sign_data);
#endif
/**
* Signature of a function which acquires a credential object.
......
......@@ -20,20 +20,25 @@ typedef struct transport_definition {
static git_smart_subtransport_definition http_subtransport_definition = { git_smart_subtransport_http, 1 };
static git_smart_subtransport_definition git_subtransport_definition = { git_smart_subtransport_git, 0 };
#ifdef GIT_SSH
static git_smart_subtransport_definition ssh_subtransport_definition = { git_smart_subtransport_ssh, 0 };
#endif
static transport_definition local_transport_definition = { "file://", 1, git_transport_local, NULL };
#ifdef GIT_WIN32
#ifdef GIT_SSH
static transport_definition ssh_transport_definition = { "ssh://", 1, git_transport_smart, &ssh_subtransport_definition };
#else
static transport_definition dummy_transport_definition = { NULL, 1, git_transport_dummy, NULL };
#endif
static transport_definition ssh_transport_definition = { "ssh://", 1, git_transport_smart, &ssh_subtransport_definition };
static transport_definition transports[] = {
{"git://", 1, git_transport_smart, &git_subtransport_definition},
{"http://", 1, git_transport_smart, &http_subtransport_definition},
{"https://", 1, git_transport_smart, &http_subtransport_definition},
{"file://", 1, git_transport_local, NULL},
#ifdef GIT_SSH
{"ssh://", 1, git_transport_smart, &ssh_subtransport_definition},
#endif
{NULL, 0, 0}
};
......@@ -76,7 +81,11 @@ static int transport_find_fn(const char *url, git_transport_cb *callback, void *
/* It could be a SSH remote path. Check to see if there's a :
* SSH is an unsupported transport mechanism in this version of libgit2 */
if (!definition && strrchr(url, ':'))
#ifdef GIT_SSH
definition = &ssh_transport_definition;
#else
definition = &dummy_transport_definition;
#endif
/* Check to see if the path points to a file on the local file system */
if (!definition && git_path_exists(url) && git_path_isdir(url))
......
......@@ -59,6 +59,7 @@ int git_cred_userpass_plaintext_new(
return 0;
}
#ifdef GIT_SSH
static void ssh_keyfile_passphrase_free(struct git_cred *cred)
{
git_cred_ssh_keyfile_passphrase *c = (git_cred_ssh_keyfile_passphrase *)cred;
......@@ -184,3 +185,4 @@ int git_cred_ssh_publickey_new(
*cred = &c->parent;
return 0;
}
#endif
......@@ -5,6 +5,8 @@
* a Linking Exception. For full terms see the included COPYING file.
*/
#ifdef GIT_SSH
#include "git2.h"
#include "buffer.h"
#include "netops.h"
......@@ -520,3 +522,5 @@ int git_smart_subtransport_ssh(git_smart_subtransport **out, git_transport *owne
*out = (git_smart_subtransport *) t;
return 0;
}
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment