Keith Moore wrote:
> In that case, "--no-redirections" makes much more sense.
I've attached the "--no-redirections" version of the patch.
KM
diff -uprN -x .svn wget.orig/doc/ChangeLog wget/doc/ChangeLog
--- wget.orig/doc/ChangeLog 2005-11-25 14:01:03.500000000 -0600
+++ wget/doc/ChangeLog 2005-11-25 23:37:56.569037300 -0600
@@ -1,3 +1,9 @@
+2005-11-25 Keith Moore <[EMAIL PROTECTED]>
+
+ * sample.wgetrc: Added redirections switch.
+
+ * wget.texi: Document redirections switch.
+
2005-11-15 Hrvoje Niksic <[EMAIL PROTECTED]>
* wget.texi: Document https_proxy.
diff -uprN -x .svn wget.orig/doc/sample.wgetrc wget/doc/sample.wgetrc
--- wget.orig/doc/sample.wgetrc 2005-11-25 14:01:03.531250000 -0600
+++ wget/doc/sample.wgetrc 2005-11-25 23:32:58.463478100 -0600
@@ -110,3 +110,6 @@ waitretry = 10
# To have Wget follow FTP links from HTML files by default, set this
# to on:
#follow_ftp = off
+
+# Setting this to off makes Wget not follow HTTP redirections:
+#redirections = on
diff -uprN -x .svn wget.orig/doc/wget.texi wget/doc/wget.texi
--- wget.orig/doc/wget.texi 2005-11-25 14:01:03.546875000 -0600
+++ wget/doc/wget.texi 2005-11-25 23:33:17.806980500 -0600
@@ -2587,6 +2587,10 @@ Hosts}).
Follow @sc{ftp} links from @sc{html} documents---the same as
@samp{--follow-ftp}.
[EMAIL PROTECTED] redirections/off
+Follow HTTP redirection targets after receiving 3xx status
+codes---the same as @samp{--redirections}.
+
@item follow_tags = @var{string}
Only follow certain @sc{html} tags when doing a recursive retrieval,
just like @[EMAIL PROTECTED]
diff -uprN -x .svn wget.orig/src/ChangeLog wget/src/ChangeLog
--- wget.orig/src/ChangeLog 2005-11-25 14:00:53.015625000 -0600
+++ wget/src/ChangeLog 2005-11-25 23:35:56.414325300 -0600
@@ -1,3 +1,13 @@
+2005-11-25 Keith Moore <[EMAIL PROTECTED]>
+
+ * options.h: Added redirections option.
+
+ * init.c: Added --redirections switch.
+
+ * main.c: Ditto.
+
+ * retr.c: Honor new --redirections switch.
+
2005-11-23 Mauro Tortonesi <[EMAIL PROTECTED]>
* http.c: Refactored HTTP code. Added support for
diff -uprN -x .svn wget.orig/src/init.c wget/src/init.c
--- wget.orig/src/init.c 2005-11-25 14:00:52.984375000 -0600
+++ wget/src/init.c 2005-11-25 23:32:03.057937300 -0600
@@ -210,6 +210,7 @@ static struct {
{ "readtimeout", &opt.read_timeout, cmd_time },
{ "reclevel", &opt.reclevel, cmd_number_inf },
{ "recursive", NULL, cmd_spec_recursive },
+ { "redirections", &opt.redirections, cmd_boolean },
{ "referer", &opt.referer, cmd_string },
{ "reject", &opt.rejects, cmd_vector },
{ "relativeonly", &opt.relative_only, cmd_boolean },
@@ -313,6 +314,8 @@ defaults (void)
opt.restrict_files_os = restrict_windows;
#endif
opt.restrict_files_ctrl = true;
+
+ opt.redirections = true;
}
/* Return the user's home directory (strdup-ed), or NULL if none is
diff -uprN -x .svn wget.orig/src/main.c wget/src/main.c
--- wget.orig/src/main.c 2005-11-25 14:00:53.046875000 -0600
+++ wget/src/main.c 2005-11-25 23:36:46.835554900 -0600
@@ -216,6 +216,7 @@ static struct cmdline_option option_data
{ "random-wait", 0, OPT_BOOLEAN, "randomwait", -1 },
{ "read-timeout", 0, OPT_VALUE, "readtimeout", -1 },
{ "recursive", 'r', OPT_BOOLEAN, "recursive", -1 },
+ { "redirections", 0, OPT_BOOLEAN, "redirections", -1 },
{ "referer", 0, OPT_VALUE, "referer", -1 },
{ "reject", 'R', OPT_VALUE, "reject", -1 },
{ "relative", 'L', OPT_BOOLEAN, "relativeonly", -1 },
@@ -611,6 +612,8 @@ Recursive accept/reject:\n"),
-X, --exclude-directories=LIST list of excluded directories.\n"),
N_("\
-np, --no-parent don't ascend to the parent directory.\n"),
+ N_("\
+ --redirections follow redirection targets from HTTP
requests.\n"),
"\n",
N_("Mail bug reports and suggestions to <[EMAIL PROTECTED]>.\n")
diff -uprN -x .svn wget.orig/src/options.h wget/src/options.h
--- wget.orig/src/options.h 2005-11-25 14:00:52.968750000 -0600
+++ wget/src/options.h 2005-11-25 23:31:23.980312500 -0600
@@ -220,6 +220,7 @@ struct options
prefer_none
} prefer_family; /* preferred address family when more
than one type is available */
+ bool redirections; /* follow redirection targets */
};
extern struct options opt;
diff -uprN -x .svn wget.orig/src/retr.c wget/src/retr.c
--- wget.orig/src/retr.c 2005-11-25 14:00:53.031250000 -0600
+++ wget/src/retr.c 2005-11-25 23:32:17.385878900 -0600
@@ -748,10 +748,13 @@ retrieve_url (const char *origurl, char
mynewloc = xstrdup (newloc_parsed->url);
/* Check for max. number of redirections. */
- if (++redirection_count > MAX_REDIRECTIONS)
+ if (!opt.redirections || ++redirection_count > MAX_REDIRECTIONS)
{
- logprintf (LOG_NOTQUIET, _("%d redirections exceeded.\n"),
- MAX_REDIRECTIONS);
+ if (!opt.redirections)
+ logprintf (LOG_NOTQUIET, _("redirections disabled.\n"));
+ else
+ logprintf (LOG_NOTQUIET, _("%d redirections exceeded.\n"),
+ MAX_REDIRECTIONS);
url_free (newloc_parsed);
url_free (u);
xfree (url);