X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.cpp;h=2f7a3327079af265a0faf2469b9b8b29c2f9a308;hp=079b629dcaa9b601b31033c3a4c55626711f7662;hb=207ca0494024641f27537ad3cf047814d8092678;hpb=8d15ccbfc46a7f0b96a47109d8f8f2495082b8f6 diff --git a/server.cpp b/server.cpp index 079b629..2f7a332 100644 --- a/server.cpp +++ b/server.cpp @@ -571,6 +571,18 @@ int Server::parse_request(Client *client) return 400; // Bad request (empty). } + // Parse the headers, for logging purposes. + // TODO: Case-insensitivity. + multimap headers = extract_headers(lines, client->remote_addr); + multimap::const_iterator referer_it = headers.find("Referer"); + if (referer_it != headers.end()) { + client->referer = referer_it->second; + } + multimap::const_iterator user_agent_it = headers.find("User-Agent"); + if (user_agent_it != headers.end()) { + client->user_agent = user_agent_it->second; + } + vector request_tokens = split_tokens(lines[0]); if (request_tokens.size() < 2) { return 400; // Bad request (empty). @@ -598,6 +610,7 @@ int Server::parse_request(Client *client) } client->url = request_tokens[1]; + client->stream = stream; if (setsockopt(client->sock, SOL_SOCKET, SO_MAX_PACING_RATE, &client->stream->pacing_rate, sizeof(client->stream->pacing_rate)) == -1) { if (client->stream->pacing_rate != ~0U) {