• 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 "base/at_exit.h"
6 #include "base/command_line.h"
7 #include "base/message_loop.h"
8 #include "base/singleton.h"
9 #include "base/stats_counters.h"
10 #include "net/base/completion_callback.h"
11 #include "net/base/io_buffer.h"
12 #include "net/base/net_errors.h"
13 #include "net/base/winsock_init.h"
14 #include "net/http/http_network_layer.h"
15 #include "net/http/http_request_info.h"
16 #include "net/http/http_transaction.h"
17 #include "net/proxy/proxy_service.h"
18 #include "net/tools/fetch/http_server.h"
19 
usage(const char * program_name)20 void usage(const char* program_name) {
21   printf("usage: %s\n", program_name);
22   exit(-1);
23 }
24 
main(int argc,char ** argv)25 int main(int argc, char**argv) {
26   base::AtExitManager exit;
27   StatsTable table("fetchserver", 50, 1000);
28   table.set_current(&table);
29 
30 #if defined(OS_WIN)
31   net::EnsureWinsockInit();
32 #endif  // defined(OS_WIN)
33 
34   CommandLine::Init(0, NULL);
35   const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
36 
37   // Do work here.
38   MessageLoop loop;
39   HttpServer server("", 80);   // TODO(mbelshe): make port configurable
40   MessageLoop::current()->Run();
41 
42   if (parsed_command_line.HasSwitch("stats")) {
43     // Dump the stats table.
44     printf("<stats>\n");
45     int counter_max = table.GetMaxCounters();
46     for (int index=0; index < counter_max; index++) {
47       std::string name(table.GetRowName(index));
48       if (name.length() > 0) {
49         int value = table.GetRowValue(index);
50         printf("%s:\t%d\n", name.c_str(), value);
51       }
52     }
53     printf("</stats>\n");
54   }
55 
56 }
57