Changelog
Daniel (2 March 2006)
+- FTP upload without a file name part in the URL now causes
+ curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the
+ upload but named the file "(nil)" (without the quotes). Test case 524
+ verifies.
+
- Added a check for getprotobyname in configure so that it'll be used, thanks
to Gisle Vanem's change the other day.
are out of file handles very early in curl's code where it makes sure that
0, 1 and 2 aren't gonna be used by the lib for transfers.
+Daniel (27 February 2006)
+- Marty Kuhrt pointed out that there were two VMS-specific files missing in
+ the release archive.
+
Version 7.15.2 (27 February 2006)
Daniel (22 February 2006)
Number of public functions in libcurl: 46
Amount of public web site mirrors: 31
Number of known libcurl bindings: 32
- Number of contributors: 474
+ Number of contributors: 487
This release includes the following changes:
ftp->file=NULL; /* instead of point to a zero byte, we make it a NULL
pointer */
+ if(data->set.upload && !ftp->file &&
+ (!ftp->no_transfer || conn->bits.no_body)) {
+ /* We need a file name when uploading. Return error! */
+ failf(data, "Uploading to a URL without a file name!");
+ return CURLE_URL_MALFORMAT;
+ }
+
ftp->cwddone = FALSE; /* default to not done */
if(ftp->prevpath) {
--- /dev/null
+<info>
+<keywords>
+FTP
+UPLOAD
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+ftp
+</server>
+<tool>
+lib524
+</tool>
+ <name>
+FTP upload with target URL ending with slash
+ </name>
+# first URL then proxy
+ <command>
+ftp://%HOSTIP:%FTPPORT/path/to/
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+USER anonymous\r
+PASS curl_by_daniel@haxx.se\r
+PWD\r
+</protocol>
+
+# 3 is CURLE_URL_MALFORMAT
+<errorcode>
+3
+</errorcode>
+</verify>
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# These are all libcurl test programs
noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507 \
lib508 lib509 lib510 lib511 lib512 lib513 lib514 lib515 lib516 lib517 \
- lib518 lib519 lib520 lib521 lib523
+ lib518 lib519 lib520 lib521 lib523 lib524
lib500_SOURCES = lib500.c $(SUPPORTFILES)
lib500_LDADD = $(LIBDIR)/libcurl.la
lib523_SOURCES = lib523.c $(SUPPORTFILES)
lib523_LDADD = $(LIBDIR)/libcurl.la
lib523_DEPENDENCIES = $(LIBDIR)/libcurl.la
+
+lib524_SOURCES = lib524.c $(SUPPORTFILES)
+lib524_LDADD = $(LIBDIR)/libcurl.la
+lib524_DEPENDENCIES = $(LIBDIR)/libcurl.la
--- /dev/null
+#include "test.h"
+
+int test(char *URL)
+{
+ CURLcode res;
+ CURL *curl = curl_easy_init();
+ curl_easy_setopt(curl, CURLOPT_URL, URL);
+ curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
+
+ res = curl_easy_perform(curl);
+ curl_easy_cleanup(curl);
+ return (int)res;
+}
+