X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fftp-basic.c;h=324e1ce56452e8fdcc9343c95acf4dff697893c9;hb=7415b33b6c35134f72aa6b2a76ef99b9598234af;hp=265a1e25b3ca178f0272edcf3cd806334e758bd2;hpb=b4077ab56ae658a9a067deeafeb8c540cf947721;p=wget diff --git a/src/ftp-basic.c b/src/ftp-basic.c index 265a1e25..324e1ce5 100644 --- a/src/ftp-basic.c +++ b/src/ftp-basic.c @@ -1,6 +1,6 @@ /* Basic FTP routines. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -68,7 +68,7 @@ ftp_response (int fd, char **ret_line) return FTPRERR; /* Strip trailing CRLF before printing the line, so that - escnonprint doesn't include bogus \012 and \015. */ + quotting doesn't include bogus \012 and \015. */ p = strchr (line, '\0'); if (p > line && p[-1] == '\n') *--p = '\0'; @@ -958,7 +958,7 @@ ftp_retr (int csock, const char *file) /* Sends the LIST command to the server. If FILE is NULL, send just `LIST' (no space). */ uerr_t -ftp_list (int csock, const char *file) +ftp_list (int csock, const char *file, enum stype rs) { char *request, *respline; int nwritten; @@ -969,6 +969,13 @@ ftp_list (int csock, const char *file) const char *list_commands[] = { "LIST -a", "LIST" }; + /* 2008-01-29 SMS. For a VMS FTP server, where "LIST -a" may not + fail, but will never do what is desired here, skip directly to the + simple "LIST" command (assumed to be the last one in the list). + */ + if (rs == ST_VMS) + i = countof (list_commands)- 1; + do { /* Send request. */ request = ftp_request (list_commands[i], file);