Commit Graph

159 Commits (3a6f39ca7a1e0b6946c4c72f7fa37dbe6c382121)

Author SHA1 Message Date
Tatsuhiro Tsujikawa ea4d99ea08 Refactor SocketCore::getPeerInfo, getAddrInfo to return Endpoint object 2016-01-09 18:17:04 +09:00
Tatsuhiro Tsujikawa b1132d6b10 make clang-format using clang-format-3.6 2015-12-27 18:40:08 +09:00
Tatsuhiro Tsujikawa af98861aff Evict timed out pooled socket periodically
Previously we only scanned pool socket to check they are timed out
when we pooled another socket.  This means that pooled socket is not
closed long time (stays in CLOSE-WAIT state) if we don't pool any more
socket.  In this commit, we now check pooled socket periodically (30
seconds) to avoid the sockets hanging in CLOSE-WAIT state long time.

See GH-477
2015-11-11 22:31:00 +09:00
Tatsuhiro Tsujikawa 0b48bb1dbd Use user-defined literals for time units 2015-06-21 15:30:02 +09:00
Tatsuhiro Tsujikawa 99cd73c092 Replace timer facility with chrono lib 2015-06-09 02:05:34 +09:00
Tatsuhiro Tsujikawa 2807258279 Use std::make_shared and make_unique where possible, part 1 2014-09-13 00:07:21 +09:00
Nils Maier 8f2af33b6d Delay auth failures instead of PBKDF2
Closes GH-256
2014-07-22 21:58:30 +02:00
Tatsuhiro Tsujikawa adeead6f03 Revert to existing "proper" coding style
The rule is simple: don't try to change the coding style of the
existing codebase.
2014-06-03 23:41:30 +09:00
Nils Maier fd8dc921fe Initialize DownloadEngine::tokenAverageDuration_ to something. 2014-05-27 19:10:14 +02:00
Nils Maier 88b61f2eb9 Adjust RPC token processing time
Make it consume a bit less time.
2014-05-20 12:53:38 +02:00
Nils Maier 82dad90ff3 Validate token using PBKDF2-HMAC-SHA1.
This change should make token validation more resilient to:
 - timing attacks (constant time array compare)
 - brute-force/dictionary attacks (PBKDF2)

 Closes #220
2014-04-19 19:10:06 +02:00
Nils Maier cf6f58ceec More code cleanups 2013-08-21 07:32:01 +02:00
Nils Maier 8526ceeb45 Convert to autos and ranged loops 2013-08-21 05:56:17 +02:00
Nils Maier d8f44ef4f6 Convert most 0/NULL pointers to nullptr
Courtesy of llvm cpp11-migrate 3.3
2013-08-20 21:28:24 +02:00
Tatsuhiro Tsujikawa c26c1e234a Move GHR outside of function and provide ctor to suppress compiler warning
Without ctor, compiler emits warning "unused variable ghr".
2013-08-19 23:54:54 +09:00
Tatsuhiro Tsujikawa 7b04c841d6 Code cleanup 2013-08-19 23:40:28 +09:00
Nils Maier 79fcafc31f Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM 2013-08-18 06:04:20 +02:00
Tatsuhiro Tsujikawa 00e27e4fa4 DownloadEngine: Use std::unique_ptr for eventPoll_ 2013-07-06 19:39:16 +09:00
Tatsuhiro Tsujikawa f83b0fcfa3 Refactor MultiUrlRequestInfo ctor
StatCalc creation is moved to MultiUrlRequestInfo.  The summary output
is done only when PREF_QUIET is false and it is always to
global::cout(), so remove summaryOut_ and just use global::cout() in
that case. Also use std::unique_ptr for statCalc_ in DownloadEngine.
2013-07-06 19:26:30 +09:00
Tatsuhiro Tsujikawa cc3cd8a58b DownloadEngine: Use std::unique_ptr for btRegistry_ 2013-07-06 18:42:57 +09:00
Tatsuhiro Tsujikawa 3a3ac4ef9b DownloadEngine: Use std::unique_ptr for dnsCache_ 2013-07-06 18:38:18 +09:00
Tatsuhiro Tsujikawa 9130dc6776 DownloadEngine:: Use std::unique_ptr for webSocketSessionMan_
Notifier::addDownloadEventListener now takes pointer to
DownloadEventListener. Session holds unique_ptr to
ApiCallbackDownloadEventListener object.
2013-07-06 18:33:59 +09:00
Tatsuhiro Tsujikawa 68f2a33355 DownloadEngine: Use std::unique_ptr for RequestGroupMan 2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa 697c1008f7 DownloadEngine: Use std::unique_ptr for checkIntegrityMan_, fileAllocationMan_ 2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa da7400ef5c Return std::unique_ptr member as const ref
Returning raw pointer has a risk that it may be stolen by
std::shared_ptr in accident.
2013-06-26 23:56:43 +09:00
Tatsuhiro Tsujikawa a4cf50914d HttpRequest: Use raw non-owning pointer for cookieStorage_ 2013-06-25 23:01:00 +09:00
Tatsuhiro Tsujikawa 4803482a51 HttpRequest: Store non-owning raw pointer for authConfigFactory_ 2013-06-25 22:06:29 +09:00
Tatsuhiro Tsujikawa fa9f3fb5a3 Wrap Command object in std::unique_ptr 2013-06-23 21:55:52 +09:00
Tatsuhiro Tsujikawa 07d270c87e Require -std=c++11 and use std::shared_ptr instead of SharedHandle 2013-06-22 01:10:38 +09:00
Tatsuhiro Tsujikawa fc0982587b Release elements in routineCommands_ on destruction 2013-05-15 22:50:51 +09:00
Tatsuhiro Tsujikawa 1c571f196a Refactor Notifier interface to accept DownloadEventListener interface
WebSocketSessionMan now implements DownloadEventListener and is added
to Notifier. It becomes member variable of DownloadEngine.  The event
constant for download event is defined in aria2.h so that we can add
event callback API later.
2013-05-11 18:50:03 +09:00
Tatsuhiro Tsujikawa 9734fa5447 Call onEndOfRun() on oneshot == true as well 2013-04-27 01:23:54 +09:00
Tatsuhiro Tsujikawa 6fcf274f27 Add initialization function and addUri API function for libaria2 2013-04-26 23:59:48 +09:00
Tatsuhiro Tsujikawa 90abec8a36 Move initialization code in aria2::main to struct Context 2013-04-25 21:46:31 +09:00
Tatsuhiro Tsujikawa 85de8b0642 Revert DownloadEngine.cc change in 6b55f5d3 because Debian Lenny breaks 2013-03-04 22:32:51 +09:00
Tatsuhiro Tsujikawa 6b55f5d393 Do changes in 8aa1db6 in other places which include signal.h 2013-03-03 13:41:03 +09:00
Tatsuhiro Tsujikawa d68741697a Support UDP tracker
It shares UDP listening port with IPv4 DHT. At the moment, in order to
enable UDP tracker support, enable IPv4 DHT.
2013-02-25 00:56:49 +09:00
Tatsuhiro Tsujikawa 2676bbe9c6 Initialized scalar members 2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa 0ecfa19925 Reworked download/upload statistics calculation
The old implementation calculates download/upload statistics for a
RequestGroup by summing up all PeerStat objects. For global
statistics, those are summed together. This clearly incurs runtime
penalty and we introduced some kind of caching which updates
statistics every 250ms but it did not work right.

This change removes all these aggregation code, and instead makes
RequestGroup and RequestGroupMan objects hold NetStat object and
download/upload bytes are directly calculated by thier own NetStat.
This is far more simplar than the old way and less runtime penalty and
brings more accuracy.
2012-10-25 23:33:45 +09:00
Tatsuhiro Tsujikawa 3258614033 Removed *Handle typedef 2012-09-28 23:27:46 +09:00
Tatsuhiro Tsujikawa a20e279606 Use std::string for SocketPoolEntry::options_
Currently, we only store 1 value for FTP download. std::map is
overkill in the this situation.
2012-09-26 23:00:05 +09:00
Tatsuhiro Tsujikawa 3c39931566 Remove trailing white spaces 2012-09-02 17:40:11 +09:00
Tatsuhiro Tsujikawa 2a51949132 Catch exception from Socket::getPeerInfo() when pooling connection
Socket::getPeerInfo() may fail if its TCP connection has already
disconnected. In this case, we log this error. The success or failure
of pooling connection should not affect the later execution of the
program.
2012-09-02 17:35:50 +09:00
Tatsuhiro Tsujikawa c0dda6a0f7 Changed createSockPoolKey so that we can support IPv6 numeric address safely. 2011-11-12 21:31:14 +09:00
Tatsuhiro Tsujikawa db5cc4db27 Don't append character to std::string. 2011-11-12 21:27:24 +09:00
Tatsuhiro Tsujikawa 1d56c17225 Code cleanup. Avoid std::string temporaries. 2011-11-05 01:11:04 +09:00
Tatsuhiro Tsujikawa e8e3a6f259 wallclock is now retrieved using global::wallclock() call.
This is necessary to avoid global variable initialization order
problem.
2011-08-10 01:17:28 +09:00
Tatsuhiro Tsujikawa 891c9e60ac Use A2_DELTA_MILLIS for timing critical code. 2011-03-27 20:54:51 +09:00
Tatsuhiro Tsujikawa e95b8efc6b Fixed the bug that microsecond part of timeval overwlows in waitData(). 2011-03-20 15:00:13 +09:00
Tatsuhiro Tsujikawa 59f251ba14 Fixed rounding error in DownloadEngine::run().
This fixes the bug that executeCommand() with Command::STATUS_ALL is
not called in every interval correctly because of rounding error in
timer.
2011-02-25 22:58:51 +09:00