From 0742e3921f185613f98c2b31cd03182d8aa1d6f5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 25 Jan 2009 09:58:40 +0000 Subject: 2009-01-25 Tatsuhiro Tsujikawa Added experimental built-in HTTP server. Currently, when a client accesses to the server, it responds with the current download progress. By default, it is disabled. To enable the server, give --enable-http-server option. To change the default port number for the server to listen to, use --http-server-listen-port option. The response HTML is very simple and refreshes it self each 1 second. Because of this refresh, you see flicker in normal web browser such as Firefox. I recommend to use console-based browser such as elinks, w3m. To connect to the server, run 'elinks http://localhost:6800/' while running aria2. Please replace port number '6800'(which is default) with your preference. * src/DownloadEngineFactory.cc * src/HttpHeader.cc * src/HttpHeader.h * src/HttpHeaderProcessor.cc * src/HttpHeaderProcessor.h * src/HttpListenCommand.cc * src/HttpListenCommand.h * src/HttpServer.cc * src/HttpServer.h * src/HttpServerCommand.cc * src/HttpServerCommand.h * src/HttpServerResponseCommand.cc * src/HttpServerResponseCommand.h * src/Makefile.am * src/OptionHandlerFactory.cc * src/Util.cc * src/Util.h * src/help_tags.h * src/option_processing.cc * src/prefs.cc * src/prefs.h * src/usage_text.h * test/HttpHeaderProcessorTest.cc * test/UtilTest.cc --- src/HttpServerCommand.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/HttpServerCommand.h (limited to 'src/HttpServerCommand.h') diff --git a/src/HttpServerCommand.h b/src/HttpServerCommand.h new file mode 100644 index 00000000..cfb42168 --- /dev/null +++ b/src/HttpServerCommand.h @@ -0,0 +1,65 @@ +/* */ +#ifndef _D_HTTP_SERVER_COMMAND_H_ +#define _D_HTTP_SERVER_COMMAND_H_ + +#include "Command.h" +#include "SharedHandle.h" +#include "TimeA2.h" + +namespace aria2 { + +class DownloadEngine; +class SocketCore; +class HttpServer; + +class HttpServerCommand : public Command { +private: + DownloadEngine* _e; + SharedHandle _socket; + SharedHandle _httpServer; + Time _timeout; +public: + HttpServerCommand(int32_t cuid, DownloadEngine* e, + const SharedHandle& socket); + + virtual ~HttpServerCommand(); + + virtual bool execute(); +}; + +} // namespace aria2 + +#endif // _D_HTTP_SERVER_COMMAND_H_ -- cgit