From 9d9f134fdf4c2d45d112e26f9b8a3e3d07af9003 Mon Sep 17 00:00:00 2001 From: mtortonesi Date: Mon, 12 Jun 2006 09:26:28 -0700 Subject: [PATCH] [svn] Fixed recursive FTP retrieval over proxy. --- src/ChangeLog | 18 ++++++++++++++++++ src/main.c | 14 ++++++++++++-- src/retr.c | 14 ++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 9b9ffcf4..87bb27b2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,21 @@ +2006-06-12 Mauro Tortonesi + + * retr.c (retrieve_from_file): Use retrieve_tree and automatically + turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP + proxy. + + * main.c: Automatically turn on opt.follow_ftp in case of recursive + FTP retrieval through HTTP proxy. + +2006-06-12 Tony Lewis + + * main.c: Improved CHEN Peng's patch by proposing a simpler logic. + +2006-06-12 CHEN Peng + + * main.c: Use retrieve_tree in case of recursive FTP retrieval through + HTTP proxy. + 2006-05-25 Mauro Tortonesi * convert.c: Added mechanisms to keep track broken links. diff --git a/src/main.c b/src/main.c index 9bc979aa..e84efddc 100644 --- a/src/main.c +++ b/src/main.c @@ -945,8 +945,18 @@ Can't timestamp and not clobber old files at the same time.\n")); int dt; if ((opt.recursive || opt.page_requisites) - && url_scheme (*t) != SCHEME_FTP) - status = retrieve_tree (*t); + && (url_scheme (*t) != SCHEME_FTP || opt.use_proxy)) + { + int old_follow_ftp = opt.follow_ftp; + + /* Turn opt.follow_ftp on in case of recursive FTP retrieval */ + if (url_scheme (*t) == SCHEME_FTP) + opt.follow_ftp = 1; + + status = retrieve_tree (*t); + + opt.follow_ftp = old_follow_ftp; + } else status = retrieve_url (*t, &filename, &redirected_URL, NULL, &dt, opt.recursive); diff --git a/src/retr.c b/src/retr.c index 18a7b323..7c6b1f21 100644 --- a/src/retr.c +++ b/src/retr.c @@ -844,8 +844,18 @@ retrieve_from_file (const char *file, bool html, int *count) break; } if ((opt.recursive || opt.page_requisites) - && cur_url->url->scheme != SCHEME_FTP) - status = retrieve_tree (cur_url->url->url); + && (cur_url->url->scheme != SCHEME_FTP || opt.use_proxy)) + { + int old_follow_ftp = opt.follow_ftp; + + /* Turn opt.follow_ftp on in case of recursive FTP retrieval */ + if (cur_url->url->scheme == SCHEME_FTP) + opt.follow_ftp = 1; + + status = retrieve_tree (cur_url->url->url); + + opt.follow_ftp = old_follow_ftp; + } else status = retrieve_url (cur_url->url->url, &filename, &new_file, NULL, &dt, opt.recursive); -- 2.39.2