mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-02 12:29:08 +00:00
Fixed compilation issues when libssh2 is missing
This commit is contained in:
parent
c36565c0ee
commit
574b86b722
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user