summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-06-30 10:03:36 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-06-30 10:03:36 +0200
commiteac63e6754f8ef3b8e8d4962a8642786ee1e1a85 (patch)
tree3b1440f6e2052017e2692d023fae48df5431775d /include
parente6b0ae7a13e20c4361327e50048a5143c8e9941b (diff)
downloadlibgit2-eac63e6754f8ef3b8e8d4962a8642786ee1e1a85.tar.gz
ssh: create the right callback signature based on build options
When linking against libssh2, create the transport.h such that it contains its definition for custom crypto and keyboard-interactive callbacks. If we don't link against libssh2, create an equivalent signature which has void pointers instead of pointers to libssh2 structures. This would be one way to fix #2438.
Diffstat (limited to 'include')
-rw-r--r--include/git2/transport.h.in (renamed from include/git2/transport.h)19
1 files changed, 9 insertions, 10 deletions
diff --git a/include/git2/transport.h b/include/git2/transport.h.in
index af7812b5d..73f0a99a1 100644
--- a/include/git2/transport.h
+++ b/include/git2/transport.h.in
@@ -11,9 +11,7 @@
#include "net.h"
#include "types.h"
-#ifdef GIT_SSH
-#include <libssh2.h>
-#endif
+@INCLUDE_LIBSSH2@
/**
* @file git2/transport.h
@@ -61,13 +59,14 @@ typedef struct {
char *password;
} git_cred_userpass_plaintext;
-#ifdef GIT_SSH
-typedef LIBSSH2_USERAUTH_PUBLICKEY_SIGN_FUNC((*git_cred_sign_callback));
-typedef LIBSSH2_USERAUTH_KBDINT_RESPONSE_FUNC((*git_cred_ssh_interactive_callback));
-#else
-typedef int (*git_cred_sign_callback)(void *, ...);
-typedef int (*git_cred_ssh_interactive_callback)(void *, ...);
-#endif
+/*
+ * This defines the callbacks for custom public key signatures and
+ * keyboard-interactive authentication. It is replaced at build-time
+ * with either the libssh2 signature or a dummy signature that's close
+ * enough but with void pointers instead of libssh2 structures.
+ */
+@GIT_SSH_PK_FUNC@
+@GIT_SSH_KI_FUNC@
/**
* A ssh key from disk