477 lines
16 KiB
Diff
477 lines
16 KiB
Diff
|
From 11c0cce6018e05a92719d6989826ccc2a8f23c81 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org>
|
||
|
Date: Thu, 2 Feb 2012 00:57:32 -0300
|
||
|
Subject: [PATCH 5/6] Add symbol versioning
|
||
|
|
||
|
---
|
||
|
configure.ac | 84 ++++++++----------------------
|
||
|
m4/ld-version-script.m4 | 53 +++++++++++++++++++
|
||
|
m4/visibility.m4 | 78 ++++++++++++++++++++++++++++
|
||
|
src/Makefile.am | 11 +++-
|
||
|
src/libssh2.map | 132 +++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
5 files changed, 294 insertions(+), 64 deletions(-)
|
||
|
create mode 100644 m4/ld-version-script.m4
|
||
|
create mode 100644 m4/visibility.m4
|
||
|
create mode 100644 src/libssh2.map
|
||
|
|
||
|
diff --git a/configure.ac b/configure.ac
|
||
|
index 5f94099..7d51197 100644
|
||
|
--- a/configure.ac
|
||
|
+++ b/configure.ac
|
||
|
@@ -1,10 +1,19 @@
|
||
|
-# AC_PREREQ(2.57)
|
||
|
-AC_INIT(libssh2, [-], libssh2-devel@cool.haxx.se)
|
||
|
+AC_INIT([libssh2],[-],[libssh2-devel@cool.haxx.se])
|
||
|
AC_CONFIG_MACRO_DIR([m4])
|
||
|
AC_CONFIG_SRCDIR([src])
|
||
|
-AM_CONFIG_HEADER([src/libssh2_config.h example/libssh2_config.h])
|
||
|
+AC_CONFIG_HEADERS([src/libssh2_config.h example/libssh2_config.h])
|
||
|
AM_MAINTAINER_MODE
|
||
|
|
||
|
+AC_PROG_CC_STDC
|
||
|
+AC_USE_SYSTEM_EXTENSIONS
|
||
|
+AC_SYS_LARGEFILE
|
||
|
+AC_PROG_INSTALL
|
||
|
+AC_PROG_LN_S
|
||
|
+AC_PROG_MAKE_SET
|
||
|
+LT_INIT([win32-dll disable-static pic-only])
|
||
|
+gl_VISIBILITY
|
||
|
+gl_LD_VERSION_SCRIPT
|
||
|
+
|
||
|
dnl SED is needed by some of the tools
|
||
|
AC_PATH_PROG( SED, sed, sed-was-not-found-by-configure,
|
||
|
$PATH:/usr/bin:/usr/local/bin)
|
||
|
@@ -67,30 +76,22 @@ AC_SEARCH_LIBS(inet_addr, nsl)
|
||
|
|
||
|
AC_SUBST(LIBS)
|
||
|
|
||
|
-AC_PROG_CC
|
||
|
-AC_PROG_INSTALL
|
||
|
-AC_PROG_LN_S
|
||
|
-AC_PROG_MAKE_SET
|
||
|
AC_PATH_PROGS(SSHD, [sshd], [],
|
||
|
[$PATH$PATH_SEPARATOR/usr/libexec$PATH_SEPARATOR]dnl
|
||
|
[/usr/sbin$PATH_SEPARATOR/usr/etc$PATH_SEPARATOR/etc])
|
||
|
AM_CONDITIONAL(SSHD, test -n "$SSHD")
|
||
|
-AC_LIBTOOL_WIN32_DLL
|
||
|
-AC_PROG_LIBTOOL
|
||
|
AC_C_BIGENDIAN
|
||
|
|
||
|
-dnl check for how to do large files
|
||
|
-AC_SYS_LARGEFILE
|
||
|
|
||
|
# Configure parameters
|
||
|
AC_ARG_WITH(libgcrypt,
|
||
|
- AC_HELP_STRING([--with-libgcrypt],[Use Libgcrypt for crypto]),
|
||
|
+ AS_HELP_STRING([--with-libgcrypt],[Use Libgcrypt for crypto]),
|
||
|
use_libgcrypt=$withval,use_libgcrypt=auto)
|
||
|
AC_ARG_WITH(openssl,
|
||
|
- AC_HELP_STRING([--with-openssl],[Use OpenSSL for crypto]),
|
||
|
+ AS_HELP_STRING([--with-openssl],[Use OpenSSL for crypto]),
|
||
|
use_openssl=$withval,use_openssl=auto)
|
||
|
AC_ARG_WITH(libz,
|
||
|
- AC_HELP_STRING([--with-libz],[Use Libz for compression]),
|
||
|
+ AS_HELP_STRING([--with-libz],[Use Libz for compression]),
|
||
|
use_libz=$withval,use_libz=auto)
|
||
|
|
||
|
# Look for OpenSSL (default)
|
||
|
@@ -136,15 +137,15 @@ fi
|
||
|
# Optional Settings
|
||
|
#
|
||
|
AC_ARG_ENABLE(crypt-none,
|
||
|
- AC_HELP_STRING([--enable-crypt-none],[Permit "none" cipher -- NOT RECOMMENDED]),
|
||
|
+ AS_HELP_STRING([--enable-crypt-none],[Permit "none" cipher -- NOT RECOMMENDED]),
|
||
|
[AC_DEFINE(LIBSSH2_CRYPT_NONE, 1, [Enable "none" cipher -- NOT RECOMMENDED])])
|
||
|
|
||
|
AC_ARG_ENABLE(mac-none,
|
||
|
- AC_HELP_STRING([--enable-mac-none],[Permit "none" MAC -- NOT RECOMMENDED]),
|
||
|
+ AS_HELP_STRING([--enable-mac-none],[Permit "none" MAC -- NOT RECOMMENDED]),
|
||
|
[AC_DEFINE(LIBSSH2_MAC_NONE, 1, [Enable "none" MAC -- NOT RECOMMENDED])])
|
||
|
|
||
|
AC_ARG_ENABLE(gex-new,
|
||
|
- AC_HELP_STRING([--disable-gex-new],[Disable "new" diffie-hellman-group-exchange-sha1 method]),
|
||
|
+ AS_HELP_STRING([--disable-gex-new],[Disable "new" diffie-hellman-group-exchange-sha1 method]),
|
||
|
[GEX_NEW=$enableval])
|
||
|
if test "$GEX_NEW" != "no"; then
|
||
|
AC_DEFINE(LIBSSH2_DH_GEX_NEW, 1, [Enable newer diffie-hellman-group-exchange-sha1 syntax])
|
||
|
@@ -155,8 +156,8 @@ dnl option to switch on compiler debug options
|
||
|
dnl
|
||
|
AC_MSG_CHECKING([whether to enable pedantic and debug compiler options])
|
||
|
AC_ARG_ENABLE(debug,
|
||
|
-AC_HELP_STRING([--enable-debug],[Enable pedantic and debug options])
|
||
|
-AC_HELP_STRING([--disable-debug],[Disable debug options]),
|
||
|
+AS_HELP_STRING([--enable-debug],[Enable pedantic and debug options])
|
||
|
+AS_HELP_STRING([--disable-debug],[Disable debug options]),
|
||
|
[ case "$enable_debug" in
|
||
|
no)
|
||
|
AC_MSG_RESULT(no)
|
||
|
@@ -176,45 +177,6 @@ AC_HELP_STRING([--disable-debug],[Disable debug options]),
|
||
|
AC_MSG_RESULT(no)
|
||
|
)
|
||
|
|
||
|
-dnl ************************************************************
|
||
|
-dnl Enable hiding of internal symbols in library to reduce its size and
|
||
|
-dnl speed dynamic linking of applications. This currently is only supported
|
||
|
-dnl on gcc >= 4.0 and SunPro C.
|
||
|
-dnl
|
||
|
-AC_MSG_CHECKING([whether to enable hidden symbols in the library])
|
||
|
-AC_ARG_ENABLE(hidden-symbols,
|
||
|
-AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library])
|
||
|
-AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]),
|
||
|
-[ case "$enableval" in
|
||
|
- no)
|
||
|
- AC_MSG_RESULT(no)
|
||
|
- ;;
|
||
|
- *)
|
||
|
- AC_MSG_CHECKING([whether $CC supports it])
|
||
|
- if test "$GCC" = yes ; then
|
||
|
- if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then
|
||
|
- AC_MSG_RESULT(yes)
|
||
|
- AC_DEFINE(LIBSSH2_API, [__attribute__ ((visibility ("default")))], [to make a symbol visible])
|
||
|
- CFLAGS="$CFLAGS -fvisibility=hidden"
|
||
|
- else
|
||
|
- AC_MSG_RESULT(no)
|
||
|
- fi
|
||
|
-
|
||
|
- else
|
||
|
- dnl Test for SunPro cc
|
||
|
- if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then
|
||
|
- AC_MSG_RESULT(yes)
|
||
|
- AC_DEFINE(LIBSSH2_API, [__global], [to make a symbol visible])
|
||
|
- CFLAGS="$CFLAGS -xldscope=hidden"
|
||
|
- else
|
||
|
- AC_MSG_RESULT(no)
|
||
|
- fi
|
||
|
- fi
|
||
|
- ;;
|
||
|
- esac ],
|
||
|
- AC_MSG_RESULT(no)
|
||
|
-)
|
||
|
-
|
||
|
# Checks for header files.
|
||
|
# AC_HEADER_STDC
|
||
|
AC_CHECK_HEADERS([errno.h fcntl.h stdio.h stdlib.h unistd.h sys/uio.h])
|
||
|
@@ -254,16 +216,16 @@ AC_CHECK_FUNCS(gettimeofday select strtoll)
|
||
|
dnl Check for select() into ws2_32 for Msys/Mingw
|
||
|
if test "$ac_cv_func_select" != "yes"; then
|
||
|
AC_MSG_CHECKING([for select in ws2_32])
|
||
|
- AC_TRY_LINK([
|
||
|
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||
|
#ifdef HAVE_WINSOCK2_H
|
||
|
#ifndef WIN32_LEAN_AND_MEAN
|
||
|
#define WIN32_LEAN_AND_MEAN
|
||
|
#endif
|
||
|
#include <winsock2.h>
|
||
|
#endif
|
||
|
- ],[
|
||
|
+ ]], [[
|
||
|
select(0,(fd_set *)NULL,(fd_set *)NULL,(fd_set *)NULL,(struct timeval *)NULL);
|
||
|
- ],[
|
||
|
+ ]])],[
|
||
|
AC_MSG_RESULT([yes])
|
||
|
HAVE_SELECT="1"
|
||
|
AC_DEFINE_UNQUOTED(HAVE_SELECT, 1,
|
||
|
diff --git a/m4/ld-version-script.m4 b/m4/ld-version-script.m4
|
||
|
new file mode 100644
|
||
|
index 0000000..5ed93ef
|
||
|
--- /dev/null
|
||
|
+++ b/m4/ld-version-script.m4
|
||
|
@@ -0,0 +1,53 @@
|
||
|
+# ld-version-script.m4 serial 3
|
||
|
+dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
|
||
|
+dnl This file is free software; the Free Software Foundation
|
||
|
+dnl gives unlimited permission to copy and/or distribute it,
|
||
|
+dnl with or without modifications, as long as this notice is preserved.
|
||
|
+
|
||
|
+dnl From Simon Josefsson
|
||
|
+
|
||
|
+# FIXME: The test below returns a false positive for mingw
|
||
|
+# cross-compiles, 'local:' statements does not reduce number of
|
||
|
+# exported symbols in a DLL. Use --disable-ld-version-script to work
|
||
|
+# around the problem.
|
||
|
+
|
||
|
+# gl_LD_VERSION_SCRIPT
|
||
|
+# --------------------
|
||
|
+# Check if LD supports linker scripts, and define automake conditional
|
||
|
+# HAVE_LD_VERSION_SCRIPT if so.
|
||
|
+AC_DEFUN([gl_LD_VERSION_SCRIPT],
|
||
|
+[
|
||
|
+ AC_ARG_ENABLE([ld-version-script],
|
||
|
+ AS_HELP_STRING([--enable-ld-version-script],
|
||
|
+ [enable linker version script (default is enabled when possible)]),
|
||
|
+ [have_ld_version_script=$enableval], [])
|
||
|
+ if test -z "$have_ld_version_script"; then
|
||
|
+ AC_MSG_CHECKING([if LD -Wl,--version-script works])
|
||
|
+ save_LDFLAGS="$LDFLAGS"
|
||
|
+ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
|
||
|
+ cat > conftest.map <<EOF
|
||
|
+foo
|
||
|
+EOF
|
||
|
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||
|
+ [accepts_syntax_errors=yes], [accepts_syntax_errors=no])
|
||
|
+ if test "$accepts_syntax_errors" = no; then
|
||
|
+ cat > conftest.map <<EOF
|
||
|
+VERS_1 {
|
||
|
+ global: sym;
|
||
|
+};
|
||
|
+
|
||
|
+VERS_2 {
|
||
|
+ global: sym;
|
||
|
+} VERS_1;
|
||
|
+EOF
|
||
|
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||
|
+ [have_ld_version_script=yes], [have_ld_version_script=no])
|
||
|
+ else
|
||
|
+ have_ld_version_script=no
|
||
|
+ fi
|
||
|
+ rm -f conftest.map
|
||
|
+ LDFLAGS="$save_LDFLAGS"
|
||
|
+ AC_MSG_RESULT($have_ld_version_script)
|
||
|
+ fi
|
||
|
+ AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
||
|
+])
|
||
|
diff --git a/m4/visibility.m4 b/m4/visibility.m4
|
||
|
new file mode 100644
|
||
|
index 0000000..c519711
|
||
|
--- /dev/null
|
||
|
+++ b/m4/visibility.m4
|
||
|
@@ -0,0 +1,78 @@
|
||
|
+# visibility.m4 serial 4 (gettext-0.18.2)
|
||
|
+dnl Copyright (C) 2005, 2008, 2010-2012 Free Software Foundation, Inc.
|
||
|
+dnl This file is free software; the Free Software Foundation
|
||
|
+dnl gives unlimited permission to copy and/or distribute it,
|
||
|
+dnl with or without modifications, as long as this notice is preserved.
|
||
|
+
|
||
|
+dnl From Bruno Haible.
|
||
|
+
|
||
|
+dnl Tests whether the compiler supports the command-line option
|
||
|
+dnl -fvisibility=hidden and the function and variable attributes
|
||
|
+dnl __attribute__((__visibility__("hidden"))) and
|
||
|
+dnl __attribute__((__visibility__("default"))).
|
||
|
+dnl Does *not* test for __visibility__("protected") - which has tricky
|
||
|
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
|
||
|
+dnl MacOS X.
|
||
|
+dnl Does *not* test for __visibility__("internal") - which has processor
|
||
|
+dnl dependent semantics.
|
||
|
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
|
||
|
+dnl "really only recommended for legacy code".
|
||
|
+dnl Set the variable CFLAG_VISIBILITY.
|
||
|
+dnl Defines and sets the variable HAVE_VISIBILITY.
|
||
|
+
|
||
|
+AC_DEFUN([gl_VISIBILITY],
|
||
|
+[
|
||
|
+ AC_REQUIRE([AC_PROG_CC])
|
||
|
+ CFLAG_VISIBILITY=
|
||
|
+ HAVE_VISIBILITY=0
|
||
|
+ if test -n "$GCC"; then
|
||
|
+ dnl First, check whether -Werror can be added to the command line, or
|
||
|
+ dnl whether it leads to an error because of some other option that the
|
||
|
+ dnl user has put into $CC $CFLAGS $CPPFLAGS.
|
||
|
+ AC_MSG_CHECKING([whether the -Werror option is usable])
|
||
|
+ AC_CACHE_VAL([gl_cv_cc_vis_werror], [
|
||
|
+ gl_save_CFLAGS="$CFLAGS"
|
||
|
+ CFLAGS="$CFLAGS -Werror"
|
||
|
+ AC_COMPILE_IFELSE(
|
||
|
+ [AC_LANG_PROGRAM([[]], [[]])],
|
||
|
+ [gl_cv_cc_vis_werror=yes],
|
||
|
+ [gl_cv_cc_vis_werror=no])
|
||
|
+ CFLAGS="$gl_save_CFLAGS"])
|
||
|
+ AC_MSG_RESULT([$gl_cv_cc_vis_werror])
|
||
|
+ dnl Now check whether visibility declarations are supported.
|
||
|
+ AC_MSG_CHECKING([for simple visibility declarations])
|
||
|
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
|
||
|
+ gl_save_CFLAGS="$CFLAGS"
|
||
|
+ CFLAGS="$CFLAGS -fvisibility=hidden"
|
||
|
+ dnl We use the option -Werror and a function dummyfunc, because on some
|
||
|
+ dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
|
||
|
+ dnl "visibility attribute not supported in this configuration; ignored"
|
||
|
+ dnl at the first function definition in every compilation unit, and we
|
||
|
+ dnl don't want to use the option in this case.
|
||
|
+ if test $gl_cv_cc_vis_werror = yes; then
|
||
|
+ CFLAGS="$CFLAGS -Werror"
|
||
|
+ fi
|
||
|
+ AC_COMPILE_IFELSE(
|
||
|
+ [AC_LANG_PROGRAM(
|
||
|
+ [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
|
||
|
+ extern __attribute__((__visibility__("default"))) int exportedvar;
|
||
|
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
|
||
|
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);
|
||
|
+ void dummyfunc (void) {}
|
||
|
+ ]],
|
||
|
+ [[]])],
|
||
|
+ [gl_cv_cc_visibility=yes],
|
||
|
+ [gl_cv_cc_visibility=no])
|
||
|
+ CFLAGS="$gl_save_CFLAGS"])
|
||
|
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
|
||
|
+ if test $gl_cv_cc_visibility = yes; then
|
||
|
+ CFLAG_VISIBILITY="-fvisibility=hidden"
|
||
|
+ HAVE_VISIBILITY=1
|
||
|
+ AC_DEFINE(LIBSSH2_API, [__attribute__ ((visibility ("default")))], [to make a symbol visible])
|
||
|
+ fi
|
||
|
+ fi
|
||
|
+ AC_SUBST([CFLAG_VISIBILITY])
|
||
|
+ AC_SUBST([HAVE_VISIBILITY])
|
||
|
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
|
||
|
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
|
||
|
+])
|
||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||
|
index 53fb4e8..4db2638 100644
|
||
|
--- a/src/Makefile.am
|
||
|
+++ b/src/Makefile.am
|
||
|
@@ -45,6 +45,11 @@ VERSION=-version-info 1:1:0
|
||
|
# set age to 0. (c:r:a=0)
|
||
|
#
|
||
|
|
||
|
-libssh2_la_LDFLAGS = $(VERSION) -no-undefined \
|
||
|
- -export-symbols-regex '^libssh2_.*' \
|
||
|
- $(LTLIBGCRYPT) $(LTLIBSSL) $(LTLIBZ)
|
||
|
+libssh2_la_CFLAGS = $(CFLAG_VISIBILITY)
|
||
|
+libssh2_la_LDFLAGS = $(VERSION) -no-undefined
|
||
|
+if HAVE_LD_VERSION_SCRIPT
|
||
|
+libssh2_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libssh2.map
|
||
|
+else
|
||
|
+libssh2_la_LDFLAGS += -export-symbols-regex '^libssh2_.*'
|
||
|
+endif
|
||
|
+libssh2_la_LIBADD = $(LTLIBGCRYPT) $(LTLIBSSL) $(LTLIBZ)
|
||
|
diff --git a/src/libssh2.map b/src/libssh2.map
|
||
|
new file mode 100644
|
||
|
index 0000000..5639bd1
|
||
|
--- /dev/null
|
||
|
+++ b/src/libssh2.map
|
||
|
@@ -0,0 +1,132 @@
|
||
|
+LIBSSH2_1.3.0 {
|
||
|
+global:
|
||
|
+libssh2_agent_connect;
|
||
|
+libssh2_agent_disconnect;
|
||
|
+libssh2_agent_free;
|
||
|
+libssh2_agent_get_identity;
|
||
|
+libssh2_agent_init;
|
||
|
+libssh2_agent_list_identities;
|
||
|
+libssh2_agent_userauth;
|
||
|
+libssh2_banner_set;
|
||
|
+libssh2_base64_decode;
|
||
|
+libssh2_channel_close;
|
||
|
+libssh2_channel_direct_tcpip_ex;
|
||
|
+libssh2_channel_eof;
|
||
|
+libssh2_channel_flush_ex;
|
||
|
+libssh2_channel_forward_accept;
|
||
|
+libssh2_channel_forward_cancel;
|
||
|
+libssh2_channel_forward_listen_ex;
|
||
|
+libssh2_channel_free;
|
||
|
+libssh2_channel_get_exit_signal;
|
||
|
+libssh2_channel_get_exit_status;
|
||
|
+libssh2_channel_handle_extended_data;
|
||
|
+libssh2_channel_handle_extended_data2;
|
||
|
+libssh2_channel_open_ex;
|
||
|
+libssh2_channel_process_startup;
|
||
|
+libssh2_channel_read_ex;
|
||
|
+libssh2_channel_receive_window_adjust;
|
||
|
+libssh2_channel_receive_window_adjust2;
|
||
|
+libssh2_channel_request_pty_ex;
|
||
|
+libssh2_channel_request_pty_size_ex;
|
||
|
+libssh2_channel_send_eof;
|
||
|
+libssh2_channel_set_blocking;
|
||
|
+libssh2_channel_setenv_ex;
|
||
|
+libssh2_channel_wait_closed;
|
||
|
+libssh2_channel_wait_eof;
|
||
|
+libssh2_channel_window_read_ex;
|
||
|
+libssh2_channel_window_write_ex;
|
||
|
+libssh2_channel_write_ex;
|
||
|
+libssh2_channel_x11_req_ex;
|
||
|
+libssh2_crypt_methods;
|
||
|
+libssh2_exit;
|
||
|
+libssh2_free;
|
||
|
+libssh2_hostkey_hash;
|
||
|
+libssh2_hostkey_methods;
|
||
|
+libssh2_init;
|
||
|
+libssh2_keepalive_config;
|
||
|
+libssh2_keepalive_send;
|
||
|
+libssh2_knownhost_add;
|
||
|
+libssh2_knownhost_addc;
|
||
|
+libssh2_knownhost_check;
|
||
|
+libssh2_knownhost_checkp;
|
||
|
+libssh2_knownhost_del;
|
||
|
+libssh2_knownhost_free;
|
||
|
+libssh2_knownhost_get;
|
||
|
+libssh2_knownhost_init;
|
||
|
+libssh2_knownhost_readfile;
|
||
|
+libssh2_knownhost_readline;
|
||
|
+libssh2_knownhost_writefile;
|
||
|
+libssh2_knownhost_writeline;
|
||
|
+libssh2_md5;
|
||
|
+libssh2_poll;
|
||
|
+libssh2_poll_channel_read;
|
||
|
+libssh2_publickey_add_ex;
|
||
|
+libssh2_publickey_init;
|
||
|
+libssh2_publickey_list_fetch;
|
||
|
+libssh2_publickey_list_free;
|
||
|
+libssh2_publickey_remove_ex;
|
||
|
+libssh2_publickey_shutdown;
|
||
|
+libssh2_scp_recv;
|
||
|
+libssh2_scp_send64;
|
||
|
+libssh2_scp_send_ex;
|
||
|
+libssh2_session_abstract;
|
||
|
+libssh2_session_banner_set;
|
||
|
+libssh2_session_block_directions;
|
||
|
+libssh2_session_callback_set;
|
||
|
+libssh2_session_disconnect_ex;
|
||
|
+libssh2_session_flag;
|
||
|
+libssh2_session_free;
|
||
|
+libssh2_session_get_blocking;
|
||
|
+libssh2_session_get_timeout;
|
||
|
+libssh2_session_handshake;
|
||
|
+libssh2_session_hostkey;
|
||
|
+libssh2_session_init_ex;
|
||
|
+libssh2_session_last_errno;
|
||
|
+libssh2_session_last_error;
|
||
|
+libssh2_session_method_pref;
|
||
|
+libssh2_session_methods;
|
||
|
+libssh2_session_set_blocking;
|
||
|
+libssh2_session_set_timeout;
|
||
|
+libssh2_session_startup;
|
||
|
+libssh2_sftp_close_handle;
|
||
|
+libssh2_sftp_dtor;
|
||
|
+libssh2_sftp_fstat_ex;
|
||
|
+libssh2_sftp_fstatvfs;
|
||
|
+libssh2_sftp_init;
|
||
|
+libssh2_sftp_last_error;
|
||
|
+libssh2_sftp_mkdir_ex;
|
||
|
+libssh2_sftp_open_ex;
|
||
|
+libssh2_sftp_read;
|
||
|
+libssh2_sftp_readdir_ex;
|
||
|
+libssh2_sftp_rename_ex;
|
||
|
+libssh2_sftp_rmdir_ex;
|
||
|
+libssh2_sftp_seek;
|
||
|
+libssh2_sftp_seek64;
|
||
|
+libssh2_sftp_shutdown;
|
||
|
+libssh2_sftp_stat_ex;
|
||
|
+libssh2_sftp_statvfs;
|
||
|
+libssh2_sftp_symlink_ex;
|
||
|
+libssh2_sftp_tell;
|
||
|
+libssh2_sftp_tell64;
|
||
|
+libssh2_sftp_unlink_ex;
|
||
|
+libssh2_sftp_write;
|
||
|
+libssh2_sha1;
|
||
|
+libssh2_trace;
|
||
|
+libssh2_trace_sethandler;
|
||
|
+libssh2_userauth_authenticated;
|
||
|
+libssh2_userauth_hostbased_fromfile_ex;
|
||
|
+libssh2_userauth_keyboard_interactive_ex;
|
||
|
+libssh2_userauth_list;
|
||
|
+libssh2_userauth_password_ex;
|
||
|
+libssh2_userauth_publickey;
|
||
|
+libssh2_userauth_publickey_fromfile_ex;
|
||
|
+libssh2_version;
|
||
|
+local: *;};
|
||
|
+
|
||
|
+LIBSSH2_1.4.0 {
|
||
|
+global:
|
||
|
+libssh2_session_supported_algs;
|
||
|
+libssh2_session_banner_get;
|
||
|
+libssh2_sftp_get_channel;
|
||
|
+} LIBSSH2_1.3.0;
|
||
|
+
|
||
|
--
|
||
|
1.7.7
|
||
|
|