diff options
author | Max Reitz <mreitz@redhat.com> | 2019-02-01 20:29:32 +0100 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2019-02-25 15:11:27 +0100 |
commit | 937c007b6e75ac341dd474f7e30482614a21190c (patch) | |
tree | f5d2de1bd2a24f1c227684e62311b69207155afd /block/curl.c | |
parent | 712b64e8f3736f60d1f4b3d7cfd776eea7c3deeb (diff) |
block/curl: Implement bdrv_refresh_filename()
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 20190201192935.18394-29-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/curl.c')
-rw-r--r-- | block/curl.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/block/curl.c b/block/curl.c index 2c07a694d8..606709fea4 100644 --- a/block/curl.c +++ b/block/curl.c @@ -950,6 +950,23 @@ static int64_t curl_getlength(BlockDriverState *bs) return s->len; } +static void curl_refresh_filename(BlockDriverState *bs) +{ + BDRVCURLState *s = bs->opaque; + + /* "readahead" and "timeout" do not change the guest-visible data, + * so ignore them */ + if (s->sslverify != CURL_BLOCK_OPT_SSLVERIFY_DEFAULT || + s->cookie || s->username || s->password || s->proxyusername || + s->proxypassword) + { + return; + } + + pstrcpy(bs->exact_filename, sizeof(bs->exact_filename), s->url); +} + + static const char *const curl_strong_runtime_opts[] = { CURL_BLOCK_OPT_URL, CURL_BLOCK_OPT_SSLVERIFY, @@ -978,6 +995,7 @@ static BlockDriver bdrv_http = { .bdrv_detach_aio_context = curl_detach_aio_context, .bdrv_attach_aio_context = curl_attach_aio_context, + .bdrv_refresh_filename = curl_refresh_filename, .strong_runtime_opts = curl_strong_runtime_opts, }; @@ -996,6 +1014,7 @@ static BlockDriver bdrv_https = { .bdrv_detach_aio_context = curl_detach_aio_context, .bdrv_attach_aio_context = curl_attach_aio_context, + .bdrv_refresh_filename = curl_refresh_filename, .strong_runtime_opts = curl_strong_runtime_opts, }; @@ -1014,6 +1033,7 @@ static BlockDriver bdrv_ftp = { .bdrv_detach_aio_context = curl_detach_aio_context, .bdrv_attach_aio_context = curl_attach_aio_context, + .bdrv_refresh_filename = curl_refresh_filename, .strong_runtime_opts = curl_strong_runtime_opts, }; @@ -1032,6 +1052,7 @@ static BlockDriver bdrv_ftps = { .bdrv_detach_aio_context = curl_detach_aio_context, .bdrv_attach_aio_context = curl_attach_aio_context, + .bdrv_refresh_filename = curl_refresh_filename, .strong_runtime_opts = curl_strong_runtime_opts, }; |