diff options
author | Stefan Esser <sesser@php.net> | 2002-10-03 11:33:05 +0000 |
---|---|---|
committer | Stefan Esser <sesser@php.net> | 2002-10-03 11:33:05 +0000 |
commit | b220b7113fb12adf41a752fb5b046d9627f5b1bd (patch) | |
tree | 78ace2e346674b7af958db2febfb425545f3a569 /ext/ftp/php_ftp.c | |
parent | d58c3dda9658ed1f6fc81d16eb59b36dab602a63 (diff) | |
download | php-git-b220b7113fb12adf41a752fb5b046d9627f5b1bd.tar.gz |
Added ftp_ssl_connect() for FTP over SSL.
Diffstat (limited to 'ext/ftp/php_ftp.c')
-rw-r--r-- | ext/ftp/php_ftp.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c index 55fcdb0b59..7acff3e71a 100644 --- a/ext/ftp/php_ftp.c +++ b/ext/ftp/php_ftp.c @@ -48,6 +48,9 @@ static int le_ftpbuf; function_entry php_ftp_functions[] = { PHP_FE(ftp_connect, NULL) +#if HAVE_OPENSSL_EXT + PHP_FE(ftp_ssl_connect, NULL) +#endif PHP_FE(ftp_login, NULL) PHP_FE(ftp_pwd, NULL) PHP_FE(ftp_cdup, NULL) @@ -162,10 +165,49 @@ PHP_FUNCTION(ftp_connect) /* autoseek for resuming */ ftp->autoseek = FTP_DEFAULT_AUTOSEEK; +#if HAVE_OPENSSL_EXT + /* disable ssl */ + ftp->use_ssl = 0; +#endif + + ZEND_REGISTER_RESOURCE(return_value, ftp, le_ftpbuf); +} +/* }}} */ + +#if HAVE_OPENSSL_EXT +/* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout)]]) + Opens a FTP-SSL stream */ +PHP_FUNCTION(ftp_ssl_connect) +{ + ftpbuf_t *ftp; + char *host; + int host_len, port = 0; + long timeout_sec = FTP_DEFAULT_TIMEOUT; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ll", &host, &host_len, &port, &timeout_sec) == FAILURE) { + return; + } + + if (timeout_sec <= 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Timeout has to be greater than 0"); + RETURN_FALSE; + } + + /* connect */ + ftp = ftp_open(host, (short)port, timeout_sec TSRMLS_CC); + if (ftp == NULL) { + RETURN_FALSE; + } + + /* autoseek for resuming */ + ftp->autoseek = FTP_DEFAULT_AUTOSEEK; + /* enable ssl */ + ftp->use_ssl = 1; ZEND_REGISTER_RESOURCE(return_value, ftp, le_ftpbuf); } /* }}} */ +#endif /* {{{ proto bool ftp_login(resource stream, string username, string password) Logs into the FTP server */ |