]> sjero.net Git - wget/blobdiff - src/retr.c
Keep the same method on a 307 redirect
[wget] / src / retr.c
index 0d564ef69ac7bb2c7d5b18ebfe5196639407a7b0..9002b0ec01675751eff2cff0ec523db82557088a 100644 (file)
@@ -679,17 +679,20 @@ calc_rate (wgint bytes, double secs, int *units)
 
 #define SUSPEND_POST_DATA do {                  \
   post_data_suspended = true;                   \
-  saved_post_data = opt.post_data;              \
-  saved_post_file_name = opt.post_file_name;    \
-  opt.post_data = NULL;                         \
-  opt.post_file_name = NULL;                    \
+  saved_post_data = opt.body_data;              \
+  saved_post_file_name = opt.body_file;         \
+  saved_method = opt.method;                    \
+  opt.body_data = NULL;                         \
+  opt.body_file = NULL;                         \
+  opt.method = NULL;                            \
 } while (0)
 
 #define RESTORE_POST_DATA do {                          \
   if (post_data_suspended)                              \
     {                                                   \
-      opt.post_data = saved_post_data;                  \
-      opt.post_file_name = saved_post_file_name;        \
+      opt.body_data = saved_post_data;                  \
+      opt.body_file = saved_post_file_name;             \
+      opt.method = saved_method;                        \
       post_data_suspended = false;                      \
     }                                                   \
 } while (0)
@@ -720,6 +723,7 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file,
 
   bool post_data_suspended = false;
   char *saved_post_data = NULL;
+  char *saved_method = NULL;
   char *saved_post_file_name = NULL;
 
   /* If dt is NULL, use local storage.  */