pollita Wed Aug 20 17:59:30 2003 EDT
Modified files:
/php-src/ext/standard ftp_fopen_wrapper.c
Log:
Add resume_pos (resume position) context option for restarting file downloads.
Index: php-src/ext/standard/ftp_fopen_wrapper.c
diff -u php-src/ext/standard/ftp_fopen_wrapper.c:1.59
php-src/ext/standard/ftp_fopen_wrapper.c:1.60
--- php-src/ext/standard/ftp_fopen_wrapper.c:1.59 Fri Aug 8 02:18:25 2003
+++ php-src/ext/standard/ftp_fopen_wrapper.c Wed Aug 20 17:59:29 2003
@@ -18,7 +18,7 @@
| Sara Golemon <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: ftp_fopen_wrapper.c,v 1.59 2003/08/08 06:18:25 pollita Exp $ */
+/* $Id: ftp_fopen_wrapper.c,v 1.60 2003/08/20 21:59:29 pollita Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -472,6 +472,20 @@
/* Send RETR/STOR command */
if (read_write == 1) {
+ /* set resume position if applicable */
+ if (context &&
+ php_stream_context_get_option(context, "ftp", "resume_pos",
&tmpzval) == SUCCESS &&
+ Z_TYPE_PP(tmpzval) == IS_LONG &&
+ Z_LVAL_PP(tmpzval) > 0) {
+ snprintf(tmp_line, 511, "REST %u\r\n", Z_LVAL_PP(tmpzval));
+ php_stream_write_string(stream, tmp_line);
+ result = GET_FTP_RESULT(stream);
+ if (result < 300 || result > 399) {
+ php_stream_wrapper_log_error(wrapper, options
TSRMLS_CC, "Unable to resume from offset %d", Z_LVAL_PP(tmpzval));
+ goto errexit;
+ }
+ }
+
/* retrieve file */
php_stream_write_string(stream, "RETR ");
} else if (read_write == 2) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php