Home | History | Annotate | Download | only in fetch
      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 
      8 HttpSession::HttpSession(const std::string& ip, int port)
      9     : ALLOW_THIS_IN_INITIALIZER_LIST(
     10           socket_(HttpListenSocket::Listen(ip, port, this))) {
     11 }
     12 
     13 HttpSession::~HttpSession() {
     14 }
     15 
     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