1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2009 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/tools/fetch/http_session.h" 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/tools/fetch/http_server_response_info.h" 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottHttpSession::HttpSession(const std::string& ip, int port) 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott : ALLOW_THIS_IN_INITIALIZER_LIST( 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott socket_(HttpListenSocket::Listen(ip, port, this))) { 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottHttpSession::~HttpSession() { 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottvoid HttpSession::OnRequest(HttpListenSocket* connection, 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott HttpServerRequestInfo* info) { 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // TODO(mbelshe): Make this function more interesting. 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott // Generate a 10KB sequence of data. 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott static std::string data; 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if (data.length() == 0) { 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott while (data.length() < (10 * 1024)) 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott data += 'a' + (rand() % 26); 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott HttpServerResponseInfo response_info; 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott response_info.protocol = "HTTP/1.1"; 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott response_info.status = 200; 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott response_info.content_type = "text/plain"; 31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott response_info.content_length = data.length(); 32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott connection->Respond(&response_info, data); 34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 35