pajoye Sun Jan 25 16:28:19 2009 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/curl interface.c
Log:
- MFH
- [DOC] Add support for SSH via libssh2
- new constants: CURLE_SSH, CURLSSH_AUTH_NONE, CURLSSH_AUTH_PUBLICKEY,
CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD,
CURLSSH_AUTH_DEFAULT, CURLOPT_SSH_AUTH_TYPES, CURLOPT_KEYPASSWD,
CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPT_SSH_PRIVATE_KEYFILE,
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
See http://curl.haxx.se/libcurl/c/curl_easy_setopt.html fortheir roles or
usages
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.62.2.14.2.27.2.26&r2=1.62.2.14.2.27.2.27&diff_format=u
Index: php-src/ext/curl/interface.c
diff -u php-src/ext/curl/interface.c:1.62.2.14.2.27.2.26
php-src/ext/curl/interface.c:1.62.2.14.2.27.2.27
--- php-src/ext/curl/interface.c:1.62.2.14.2.27.2.26 Wed Dec 31 11:15:35 2008
+++ php-src/ext/curl/interface.c Sun Jan 25 16:28:18 2009
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.62.2.14.2.27.2.26 2008/12/31 11:15:35 sebastian Exp $
*/
+/* $Id: interface.c,v 1.62.2.14.2.27.2.27 2009/01/25 16:28:18 pajoye Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -433,7 +433,7 @@
}
#endif
-#if defined(CURLVERSION_FOURTH) && CURLVERSION_NOW >= CURLVERSION_FOURTH
+#if LIBCURL_VERSION_NUM >= 0x071300
if (d->iconv_ver_num) {
php_info_print_table_row(2, "IconV Version", d->iconv_ver_num);
@@ -696,7 +696,9 @@
#if LIBCURL_VERSION_NUM >= 0x070b00
REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED);
#endif
-
+#if LIBCURL_VERSION_NUM >= 0x071300
+ REGISTER_CURL_CONSTANT(CURLE_SSH);
+#endif
REGISTER_CURL_CONSTANT(CURLPROXY_HTTP);
REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5);
@@ -732,6 +734,22 @@
REGISTER_CURL_CONSTANT(CURLFTPSSL_ALL);
#endif
+/* SSH support works in 7.19.0+ using libssh2 */
+#if LIBCURL_VERSION_NUM >= 0x071300
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_NONE);
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PUBLICKEY);
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PASSWORD);
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_HOST);
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_KEYBOARD);
+ REGISTER_CURL_CONSTANT(CURLSSH_AUTH_DEFAULT);
+ REGISTER_CURL_CONSTANT(CURLOPT_SSH_AUTH_TYPES);
+ REGISTER_CURL_CONSTANT(CURLOPT_KEYPASSWD);
+ REGISTER_CURL_CONSTANT(CURLOPT_SSH_PUBLIC_KEYFILE);
+ REGISTER_CURL_CONSTANT(CURLOPT_SSH_PRIVATE_KEYFILE);
+ REGISTER_CURL_CONSTANT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5);
+ REGISTER_CURL_CONSTANT(CURLE_SSH);
+#endif
+
#ifdef PHP_CURL_NEED_OPENSSL_TSL
if (!CRYPTO_get_id_callback()) {
int i, c = CRYPTO_num_locks();
@@ -1442,14 +1460,23 @@
case CURLOPT_SSLENGINE:
case CURLOPT_SSLENGINE_DEFAULT:
case CURLOPT_SSLCERTTYPE:
- case CURLOPT_ENCODING: {
+ case CURLOPT_ENCODING:
+#if LIBCURL_VERSION_NUM >= 0x071300
+ case CURLOPT_SSH_PUBLIC_KEYFILE:
+ case CURLOPT_SSH_PRIVATE_KEYFILE:
+#endif
+ {
#if LIBCURL_VERSION_NUM < 0x071100
char *copystr = NULL;
#endif
convert_to_string_ex(zvalue);
- if (option == CURLOPT_URL) {
+ if (option == CURLOPT_URL
+#if LIBCURL_VERSION_NUM >= 0x071300
+ || option == CURLOPT_SSH_PUBLIC_KEYFILE ||
option == CURLOPT_SSH_PRIVATE_KEYFILE
+#endif
+ ) {
PHP_CURL_CHECK_OPEN_BASEDIR(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue), 1);
}
@@ -1471,7 +1498,7 @@
FILE *fp = NULL;
int type;
void * what;
-
+
what = zend_fetch_resource(zvalue TSRMLS_CC, -1,
"File-Handle", &type, 1, php_file_le_stream());
if (!what) {
RETVAL_FALSE;