Commit 2147284c authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

James Housley brought support for SCP transfers

parent 7f1870da
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -6,6 +6,10 @@


                                  Changelog
                                  Changelog


Daniel (2 November 2006)
- James Housley brought support for SCP transfers, based on the libssh2 library
  for the actual network protocol stuff.

Version 7.16.0 (30 October 2006)
Version 7.16.0 (30 October 2006)


Daniel (25 October 2006)
Daniel (25 October 2006)
+2 −2
Original line number Original line Diff line number Diff line
@@ -11,7 +11,7 @@ Curl and libcurl 7.16.1


This release includes the following changes:
This release includes the following changes:
 
 
 o 
 o Support for SCP added


This release includes the following bugfixes:
This release includes the following bugfixes:


@@ -28,6 +28,6 @@ New curl mirrors:
This release would not have looked like this without help, code, reports and
This release would not have looked like this without help, code, reports and
advice from friends like these:
advice from friends like these:


 
 James Housley


        Thanks! (and sorry if I forgot to mention someone)
        Thanks! (and sorry if I forgot to mention someone)
+68 −0
Original line number Original line Diff line number Diff line
@@ -78,6 +78,7 @@ AC_SUBST(PKGADD_VENDOR)
dnl
dnl
dnl initialize all the info variables
dnl initialize all the info variables
    curl_ssl_msg="no      (--with-ssl / --with-gnutls)"
    curl_ssl_msg="no      (--with-ssl / --with-gnutls)"
    curl_ssh_msg="no      (--with-libssh2)"
   curl_zlib_msg="no      (--with-zlib)"
   curl_zlib_msg="no      (--with-zlib)"
   curl_krb4_msg="no      (--with-krb4*)"
   curl_krb4_msg="no      (--with-krb4*)"
    curl_gss_msg="no      (--with-gssapi)"
    curl_gss_msg="no      (--with-gssapi)"
@@ -1043,6 +1044,72 @@ if test X"$OPT_SSL" != Xno; then


fi
fi


dnl **********************************************************************
dnl Check for the presence of LIBSSH2 libraries and headers
dnl **********************************************************************

dnl Default to compiler & linker defaults for LIBSSH2 files & libraries.
OPT_LIBSSH2=off
AC_ARG_WITH(libssh2,dnl
AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation (default: /usr/local/lib); when possible, set the PKG_CONFIG_PATH environment variable instead of using this option])
AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]),
  OPT_LIBSSH2=$withval)

if test X"$OPT_LIBSSH2" != Xno; then
  dnl backup the pre-libssh2 variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"

  case "$OPT_LIBSSH2" in
  yes)
    dnl --with-libssh2 (without path) used
    PREFIX_LIBSSH2=/usr/local/lib
    LIB_LIBSSH2="$PREFIX_LIBSSH2/lib$libsuff"
    ;;
  off)
    dnl no --with-libssh2 option given, just check default places
    PREFIX_LIBSSH2=
    ;;
  *)
    dnl check the given --with-libssh2 spot
    PREFIX_LIBSSH2=$OPT_LIBSSH2
    LIB_LIBSSH2="$PREFIX_LIBSSH2/lib$libsuff"
    LDFLAGS="$LDFLAGS -L$LIB_LIBSSH2"
    CPPFLAGS="$CPPFLAGS -I$PREFIX_LIBSSH2/include/libssh2 -I$PREFIX_LIBSSH2/include"
    ;;
  esac

  if test X"$HAVECRYPTO" = X"yes"; then
    dnl This is only reasonable to do if crypto actually is there: check for
    dnl LIBSSH2 libs NOTE: it is important to do this AFTER the crypto lib

    AC_CHECK_LIB(ssh2, libssh2_channel_open_ex)
    
    AC_CHECK_HEADERS(libssh2.h,
      curl_ssh_msg="enabled (libSSH2)"
      LIBSSH2_ENABLED=1
      AC_DEFINE(USE_LIBSSH2, 1, [if libSSH2 is in use]))

    if test X"OPT_LIBSSH2" != Xoff &&
       test "$LIBSSH2_ENABLED" != "1"; then
      AC_MSG_ERROR([libSSH2 libs and/or directories were not found where specified!])
    fi
  fi

  if test "$LIBSSH2_ENABLED" = "1"; then
    if test -n "$LIB_LIBSSH2"; then
       dnl when the libssh2 shared libs were found in a path that the run-time
       dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH
       dnl to prevent further configure tests to fail due to this

       LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_LIBSSH2"
       export LD_LIBRARY_PATH
       AC_MSG_NOTICE([Added $LIB_LIBSSH2 to LD_LIBRARY_PATH])
    fi
  fi
fi

dnl **********************************************************************
dnl **********************************************************************
dnl Check for the random seed preferences 
dnl Check for the random seed preferences 
dnl **********************************************************************
dnl **********************************************************************
@@ -2076,6 +2143,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
  Install prefix:  ${prefix}
  Install prefix:  ${prefix}
  Compiler:        ${CC}
  Compiler:        ${CC}
  SSL support:     ${curl_ssl_msg}
  SSL support:     ${curl_ssl_msg}
  SSH support:     ${curl_ssh_msg}
  zlib support:    ${curl_zlib_msg}
  zlib support:    ${curl_zlib_msg}
  krb4 support:    ${curl_krb4_msg}
  krb4 support:    ${curl_krb4_msg}
  GSSAPI support:  ${curl_gss_msg}
  GSSAPI support:  ${curl_gss_msg}
+6 −1
Original line number Original line Diff line number Diff line
@@ -21,7 +21,7 @@
.\" * $Id$
.\" * $Id$
.\" **************************************************************************
.\" **************************************************************************
.\"
.\"
.TH curl_version_info 3 "19 Apr 2006" "libcurl 7.15.4" "libcurl Manual"
.TH curl_version_info 3 "2 Nov 2006" "libcurl 7.16.1" "libcurl Manual"
.SH NAME
.SH NAME
curl_version_info - returns run-time libcurl version info
curl_version_info - returns run-time libcurl version info
.SH SYNOPSIS
.SH SYNOPSIS
@@ -66,6 +66,11 @@ typedef struct {
  /* when 'age' is 2 or higher, the member below also exists: */
  /* when 'age' is 2 or higher, the member below also exists: */
  const char *libidn;       /* human readable string */
  const char *libidn;       /* human readable string */


  /* when 'age' is 3 or higher, the members below also exist: */
  int iconv_ver_num;       /* '_libiconv_version' if iconv support enabled */

  const char *libssh_version; /* human readable string */

} curl_version_info_data;
} curl_version_info_data;
.fi
.fi


+27 −1
Original line number Original line Diff line number Diff line
@@ -392,6 +392,11 @@ typedef enum {
                                    CURLOPT_CONV_FROM_UTF8_FUNCTION */
                                    CURLOPT_CONV_FROM_UTF8_FUNCTION */
  CURLE_SSL_CACERT_BADFILE,      /* 77 - could not load CACERT file, missing
  CURLE_SSL_CACERT_BADFILE,      /* 77 - could not load CACERT file, missing
                                    or wrong format */
                                    or wrong format */
  CURLE_REMOTE_FILE_NOT_FOUND,   /* 78 - remote file not found */
  CURLE_SSH,                     /* 79 - error from the SSH layer, somewhat
                                    generic so the error message will be of
                                    interest when this has happened */

  CURL_LAST /* never use! */
  CURL_LAST /* never use! */
} CURLcode;
} CURLcode;


@@ -427,6 +432,14 @@ typedef enum {
#define CURLAUTH_ANY ~0               /* all types set */
#define CURLAUTH_ANY ~0               /* all types set */
#define CURLAUTH_ANYSAFE (~CURLAUTH_BASIC)
#define CURLAUTH_ANYSAFE (~CURLAUTH_BASIC)


#define CURLSSH_AUTH_ANY       ~0     /* all types supported by the server */
#define CURLSSH_AUTH_NONE      0      /* none allowed, silly but complete */
#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */
#define CURLSSH_AUTH_PASSWORD  (1<<1) /* password */
#define CURLSSH_AUTH_HOST      (1<<2) /* host key files */
#define CURLSSH_AUTH_KEYBOARD  (1<<3) /* keyboard interactive */
#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY

#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
                          the obsolete stuff removed! */
                          the obsolete stuff removed! */
/* this was the error code 50 in 7.7.3 and a few earlier versions, this
/* this was the error code 50 in 7.7.3 and a few earlier versions, this
@@ -1029,6 +1042,13 @@ typedef enum {
     enabled (== 1) */
     enabled (== 1) */
  CINIT(SSL_SESSIONID_CACHE, LONG, 150),
  CINIT(SSL_SESSIONID_CACHE, LONG, 150),


  /* allowed SSH authentication methods */
  CINIT(SSH_AUTH_TYPES, LONG, 151),

  /* Used by scp/sftp to do public/private key authentication */
  CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152),
  CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153),

  CURLOPT_LASTENTRY /* the last unused */
  CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
} CURLoption;


@@ -1506,6 +1526,7 @@ typedef enum {
  CURLVERSION_FIRST,
  CURLVERSION_FIRST,
  CURLVERSION_SECOND,
  CURLVERSION_SECOND,
  CURLVERSION_THIRD,
  CURLVERSION_THIRD,
  CURLVERSION_FOURTH,
  CURLVERSION_LAST /* never actually use this */
  CURLVERSION_LAST /* never actually use this */
} CURLversion;
} CURLversion;


@@ -1514,7 +1535,7 @@ typedef enum {
   meant to be a built-in version number for what kind of struct the caller
   meant to be a built-in version number for what kind of struct the caller
   expects. If the struct ever changes, we redefine the NOW to another enum
   expects. If the struct ever changes, we redefine the NOW to another enum
   from above. */
   from above. */
#define CURLVERSION_NOW CURLVERSION_THIRD
#define CURLVERSION_NOW CURLVERSION_FOURTH


typedef struct {
typedef struct {
  CURLversion age;          /* age of the returned struct */
  CURLversion age;          /* age of the returned struct */
@@ -1535,8 +1556,13 @@ typedef struct {
  /* This field was added in CURLVERSION_THIRD */
  /* This field was added in CURLVERSION_THIRD */
  const char *libidn;
  const char *libidn;


  /* These field were added in CURLVERSION_FOURTH */

  /* Same as '_libiconv_version' if built with HAVE_ICONV */
  /* Same as '_libiconv_version' if built with HAVE_ICONV */
  int iconv_ver_num;
  int iconv_ver_num;

  const char *libssh_version; /* human readable string */

} curl_version_info_data;
} curl_version_info_data;


#define CURL_VERSION_IPV6      (1<<0)  /* IPv6-enabled */
#define CURL_VERSION_IPV6      (1<<0)  /* IPv6-enabled */
Loading