Re: Bug #12004 Updated: fopen of url results in invlaid file handle
| From: | Alan Knowles | Date: | Mon, 17 Dec 2001 11:18:17 +0000 |
| Subject: | Re: Bug #12004 Updated: fopen of url results in invlaid file handle | ||
| References: | 1 2 3 4 5 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-74113@lists.php.net to get a copy of this message | ||
Markus Fischer wrote:
On Mon, Dec 17, 2001 at 07:08:34PM +0800, Alan Knowles wrote :Index: ftp_fopen_wrapper.c =================================================================== RCS file: /repository/php4/ext/standard/ftp_fopen_wrapper.c,v retrieving revision 1.11 diff -u -r1.11 ftp_fopen_wrapper.cThe whole file needs a bit of an overhall for that :)As most code does. But why not starting with it right away? Bit like this? ;)
--- ftp_fopen_wrapper.c 9 Sep 2001 13:29:18 -0000 1.11 +++ ftp_fopen_wrapper.c 17 Dec 2001 11:05:47 -0000@@ -92,15 +92,23 @@
resource = php_url_parse((char *) path);
if (resource == NULL) {
- php_error(E_WARNING, "Invalid URL specified, %s", path);
+ php_error(E_WARNING, "%s() Invalid URL specified, %s", get_active_function_name(TSRMLS_C), path);
*issock = BAD_URL;
return NULL;
} else if (resource->path == NULL) {
- php_error(E_WARNING, "No file-path specified");
+ php_error(E_WARNING, "%s() No file-path specified",get_active_function_name(TSRMLS_C));
php_url_free(resource);
*issock = BAD_URL;
return NULL;
}
+ if (strcmp(mode, "r") && strcmp(mode, "w")) {
+ php_error(E_WARNING, "%s() Invalid mode, ftp can only access files in (r)ead or (w)rite mode",get_active_function_name(TSRMLS_C));
+ php_url_free(resource);
+ *issock = BAD_URL;
+ return NULL;
+ }
+ + /* use port 21 if one wasn't specified */
if (resource->port == 0)
resource->port = 21;
@@ -179,7 +187,7 @@
if (mode[0] == 'r') {
/* when reading file, it must exist */
if (result > 299 || result < 200) {
- php_error(E_WARNING, "File not found");
+ php_error(E_WARNING, "%s() File not found",get_active_function_name(TSRMLS_C));
php_url_free(resource);
SOCK_FCLOSE(*socketd);
*socketd = 0;
@@ -189,7 +197,7 @@
} else {
/* when writing file, it must NOT exist */
if (result <= 299 && result >= 200) {
- php_error(E_WARNING, "File already exists");
+ php_error(E_WARNING, "%s() File already exists",get_active_function_name(TSRMLS_C));
php_url_free(resource);
SOCK_FCLOSE(*socketd);
*socketd = 0;