15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2009 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/tools/flip_server/spdy_util.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/tools/dump_cache/url_to_filename_encoder.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool g_need_to_encode_url = false; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Encode the URL. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string EncodeURL(std::string uri, std::string host, std::string method) { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!g_need_to_encode_url) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(mbelshe): if uri is fully qualified, need to strip protocol/host. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return std::string(method + "_" + uri); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string filename; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (uri[0] == '/') { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uri is not fully qualified. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filename = UrlToFilenameEncoder::Encode( 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "http://" + host + uri, method + "_/", false); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filename = UrlToFilenameEncoder::Encode(uri, method + "_/", false); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return filename; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 34