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