1 // Copyright (c) 2012 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.
5 #include "net/tools/fetch/http_session.h"
6 #include "net/tools/fetch/http_server_response_info.h"
8 HttpSession::HttpSession(const std::string
& ip
, int port
)
9 : ALLOW_THIS_IN_INITIALIZER_LIST(
10 socket_(HttpListenSocket::CreateAndListen(ip
, port
, this))) {
13 HttpSession::~HttpSession() {
16 void HttpSession::OnRequest(HttpListenSocket
* connection
,
17 HttpServerRequestInfo
* info
) {
18 // TODO(mbelshe): Make this function more interesting.
20 // Generate a 10KB sequence of data.
21 CR_DEFINE_STATIC_LOCAL(std::string
, data
, ());
22 if (data
.length() == 0) {
23 while (data
.length() < (10 * 1024))
24 data
+= 'a' + (rand() % 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();
33 connection
->Respond(&response_info
, data
);