|
|
|
@ -297,12 +297,16 @@ def uri(module, url, dest, body, body_format, method, headers, socket_timeout):
|
|
|
|
|
redir_info = {}
|
|
|
|
|
r = {}
|
|
|
|
|
if dest is not None:
|
|
|
|
|
# Stash follow_redirects, in this block we don't want to follow
|
|
|
|
|
# we'll reset back to the supplied value soon
|
|
|
|
|
follow_redirects = module.params['follow_redirects']
|
|
|
|
|
module.params['follow_redirects'] = False
|
|
|
|
|
dest = os.path.expanduser(dest)
|
|
|
|
|
if os.path.isdir(dest):
|
|
|
|
|
# first check if we are redirected to a file download
|
|
|
|
|
_, redir_info = fetch_url(module, url, data=body,
|
|
|
|
|
headers=headers,
|
|
|
|
|
method=method, follow_redirects=None,
|
|
|
|
|
method=method,
|
|
|
|
|
timeout=socket_timeout)
|
|
|
|
|
# if we are redirected, update the url with the location header,
|
|
|
|
|
# and update dest with the new url filename
|
|
|
|
@ -316,6 +320,9 @@ def uri(module, url, dest, body, body_format, method, headers, socket_timeout):
|
|
|
|
|
tstamp = t.strftime('%a, %d %b %Y %H:%M:%S +0000')
|
|
|
|
|
headers['If-Modified-Since'] = tstamp
|
|
|
|
|
|
|
|
|
|
# Reset follow_redirects back to the stashed value
|
|
|
|
|
module.params['follow_redirects'] = follow_redirects
|
|
|
|
|
|
|
|
|
|
resp, info = fetch_url(module, url, data=body, headers=headers,
|
|
|
|
|
method=method, timeout=socket_timeout)
|
|
|
|
|
r['redirected'] = redirected or info['url'] != url
|
|
|
|
|