mirror of
https://github.com/minetest/minetest.git
synced 2024-12-03 13:03:45 +01:00
Add referer to remote media requests. (#8135)
This sends the following header to a remote media server: Referer: minetest://<server_name>:port This was verified with CTF and the Minetest Public Remove Media server. If the servername was a plain IPv6 address it will contain `:` characters and will be encapsulated in `[]` to be a valid URI.
This commit is contained in:
parent
61e5fbab72
commit
b5defcffba
@ -254,6 +254,16 @@ void ClientMediaDownloader::initialStep(Client *client)
|
|||||||
fetch_request.post_data = required_hash_set;
|
fetch_request.post_data = required_hash_set;
|
||||||
fetch_request.extra_headers.emplace_back(
|
fetch_request.extra_headers.emplace_back(
|
||||||
"Content-Type: application/octet-stream");
|
"Content-Type: application/octet-stream");
|
||||||
|
|
||||||
|
// Encapsulate possible IPv6 plain address in []
|
||||||
|
std::string addr = client->getAddressName();
|
||||||
|
if (addr.find(":", 0) != std::string::npos)
|
||||||
|
addr = '[' + addr + ']';
|
||||||
|
fetch_request.extra_headers.emplace_back(
|
||||||
|
std::string("Referer: minetest://") +
|
||||||
|
addr + ":" +
|
||||||
|
std::to_string(client->getServerAddress().getPort()));
|
||||||
|
|
||||||
httpfetch_async(fetch_request);
|
httpfetch_async(fetch_request);
|
||||||
|
|
||||||
m_httpfetch_active++;
|
m_httpfetch_active++;
|
||||||
|
Loading…
Reference in New Issue
Block a user