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.master
parent
61e5fbab72
commit
b5defcffba
|
@ -254,6 +254,16 @@ void ClientMediaDownloader::initialStep(Client *client)
|
|||
fetch_request.post_data = required_hash_set;
|
||||
fetch_request.extra_headers.emplace_back(
|
||||
"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);
|
||||
|
||||
m_httpfetch_active++;
|
||||
|
|
Loading…
Reference in New Issue