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