Tatsuhiro Tsujikawa
318c804504
Use user-defined literal for k, m, and g (powers of 1024)
2015-06-21 19:29:54 +09:00
Tatsuhiro Tsujikawa
f5ff5da9da
Use constexpr for macros defined in BtConstants.h
2015-06-21 17:33:23 +09:00
Tatsuhiro Tsujikawa
0b48bb1dbd
Use user-defined literals for time units
2015-06-21 15:30:02 +09:00
Tatsuhiro Tsujikawa
b0f440e631
Rewrite Time with chrono
2015-06-09 03:15:10 +09:00
Tatsuhiro Tsujikawa
99cd73c092
Replace timer facility with chrono lib
2015-06-09 02:05:34 +09:00
Tatsuhiro Tsujikawa
2758fba10c
sftp: Add SFTP and libssh2 to feature summary, and add tests
2015-05-12 00:52:50 +09:00
Tatsuhiro Tsujikawa
9cbbe9f1bb
Split UtilTest.cc into UtilTest1.cc and UtilTest2.cc
2015-02-08 00:31:33 +09:00
Tatsuhiro Tsujikawa
4cf0bb742f
Shuffle web-seeding URIs
2015-02-07 00:38:03 +09:00
Nils Maier
de37dbf13d
Remove some left-over code from converting a test.
...
Checking once with CPPUNIT_ASSERT_MESSAGE should suffice.
2015-01-26 18:31:19 +01:00
Tatsuhiro Tsujikawa
d5d21d20d7
Support HTTP date ending "+0000" as well as "GMT".
2015-01-26 21:31:47 +09:00
Nils Maier
81bdd5f61a
Revise getRandom facilities
...
Use one of the following to provide random bytes:
- Windows CryptGenRandom
- Linux getrandom (syscall interface to urandom, without nasty corner
cases such as file descriptor exhaustion or re-linked /dev/urandom)
- std::device_random (C++ random device, which usually will be urandom)
This also equalizes util::getRandom and SimpleRandomizer (the former
will now use the latter) instead of having essentially two different
PRNG interfaces with potentially different quality.
Closes GH-320
2015-01-20 22:37:24 +01:00
Tatsuhiro Tsujikawa
1185972042
Update .gitignore
2014-10-18 19:00:02 +09:00
Tatsuhiro Tsujikawa
f55c16c7ed
Use std::unique_ptr for DHTBucketTree's left and right pointers
2014-09-13 00:49:08 +09:00
Tatsuhiro Tsujikawa
e18e8aeeaa
Support Adler32 checksum
...
Adler32 checksum is available for --checksum option and hash element
in Metalink files. Currently, we use Adler32 implementation in Zlib.
2014-09-13 00:08:07 +09:00
Tatsuhiro Tsujikawa
c0b8b471ab
Fix hash function comparator
2014-09-11 23:54:17 +09:00
Tatsuhiro Tsujikawa
ae631513f3
Replace A2_ARRAY_LEN with constexpr arraySize
2014-08-29 23:37:31 +09:00
Nils Maier
70a80b1455
Remove request pre-authorization again
2014-07-22 21:58:30 +02:00
Nils Maier
8f2af33b6d
Delay auth failures instead of PBKDF2
...
Closes GH-256
2014-07-22 21:58:30 +02:00
Tatsuhiro Tsujikawa
04caefa406
Fix test failure with --enable-libaria2
2014-07-14 00:06:32 +09:00
Tatsuhiro Tsujikawa
7fbd8a50ef
Fix compile error and warning with clang
2014-07-12 17:44:43 +09:00
Tatsuhiro Tsujikawa
3aaa5a7344
Fix file length information in RPC response when length > 2GB is unknown
...
This commit fixes the bug that aria2.tellStopped RPC method returns
total length and completedLength as 0 when file size is unknown in
advance and turns out > 2GB in the end. This commit and addresses the
performance degradation in this case.
2014-07-12 17:01:46 +09:00
Nils Maier
8587669995
Fix big endianess support in InternalMessageDigest and PBKDF2
...
- Replace sha1/md5 implementation by ones from https://github.com/nmaier/crypto
- Add endianess functionality fro https://github.com/nmaier/crypto
Closes GH-239
2014-06-24 20:45:05 +02:00
Tatsuhiro Tsujikawa
c0e4381780
util::parseIntSegments: Return SegList<int>
2014-06-04 23:21:01 +09:00
Tatsuhiro Tsujikawa
007b890fe4
bittorrent::computeFastSet: Return std::vector
2014-06-04 22:50:39 +09:00
Tatsuhiro Tsujikawa
9b54272190
FileEntry::getUris: Return std::vector<std::string>
2014-06-04 22:33:46 +09:00
Tatsuhiro Tsujikawa
4f3c526dcd
Support PREF_DIR change for Metalink files
...
Reworked previous commit adeead6f03
, and
now support changing PREF_DIR for Metalink downloads.
2014-06-04 21:45:12 +09:00
Nils Maier
b1a8df4cd9
Disable PBKDF2 load test
...
Closes #236
2014-05-31 21:32:02 +02:00
Nils Maier
a82f08765e
Fix (unknown length) downloads larger than 2GiB
...
Closes #215
2014-05-25 14:49:29 +02:00
Nils Maier
f7cc24d6cf
Internally use HMAC in http auth
...
To at least get constant time compare.
Also fix incorrect parsing of the creds (were incorrectly stripped).
Also add unit tests.
2014-05-22 15:24:20 +02:00
Nils Maier
855dfa0e2f
Authorize RPC multicalls only once.
...
Cache the auth status afterwards and just assume the token still matches
(within the same request, of course).
2014-05-20 12:53:39 +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
98ba096951
Add util::security (compare, HMAC, PBKDF2)
...
See #220
2014-04-19 19:07:38 +02:00
Nils Maier
010131161e
Remove ENABLE_MESSAGE_DIGEST, since we got the internal md, always
2014-04-17 18:02:42 +02:00
Tatsuhiro Tsujikawa
b18e62dba7
Treat 30X response without Location header field as error
...
This is required to make segmented download work.
2014-02-05 21:20:09 +09:00
Tatsuhiro Tsujikawa
ec4b729704
Better handling of 30X HTTP status codes
...
Reference: http://greenbytes.de/tech/tc/httpredirects/
2014-02-05 00:32:43 +09:00
Tatsuhiro Tsujikawa
7f6987a4b4
Implement new RPC authorization using --rpc-secret option
2014-02-02 17:34:07 +09:00
Tatsuhiro Tsujikawa
705dadb32b
Fix crash when metaurl contains unsupported URI or text
2013-12-07 01:16:47 +09:00
Tatsuhiro Tsujikawa
4d105a2686
Limit number of opened file globally with --bt-max-open-files option
...
This change changes the behavior of --bt-max-open-files. Previously,
it specifies the maximum number of opened files for each multi-file
download. Since it is more useful to limit the number globally, the
option now specifies the global limit. This change suggests that
aria2.changeOption() method now ignores --bt-max-open-files and
aria2.changeGlobalOption now reads it and dynamically change the
limit.
2013-11-17 19:33:18 +09:00
Tatsuhiro Tsujikawa
9e52483c04
Refactor DownloadHandlerFactory
2013-11-10 18:19:02 +09:00
Tatsuhiro Tsujikawa
2aa8e01836
Fix typo
2013-11-06 23:40:59 +09:00
Tatsuhiro Tsujikawa
95843a5fe6
TimeTest: Fix testElapsed() fail occasionally
2013-10-20 22:57:12 +09:00
Tatsuhiro Tsujikawa
c2ae77dff4
test: Fix stack overflow
2013-10-06 21:08:20 +09:00
Tatsuhiro Tsujikawa
3080af7370
Request: Remove previousUri_
...
Historically, the previousUri_ has different meaning from referer_,
but in the course of development, they have the same value. This
change remove previousUri_ in favor of referer_.
2013-10-01 21:53:28 +09:00
Tatsuhiro Tsujikawa
b772aa6a5e
util::percentEncodeMini: Fix regression bug removed unsignedness
...
srange-based for around std::string is convenient but several
functions depend unsigned char for correctness and readability.
2013-09-30 21:32:57 +09:00
Tatsuhiro Tsujikawa
6f6a17bff7
Randomizer: Remove unused interfaces
2013-09-28 22:55:05 +09:00
Nils Maier
99f170b888
Provide internal ARC4 implementation
...
Now you can build bittorrent support without without external
libraries, meaning you can skip libnettle, libgmp, libgcrypt, GnuTLS and
OpenSSL on OSX (for now).
2013-09-24 19:11:26 +02:00
Nils Maier
08e2e412dc
Add some md5 tests
2013-09-20 23:07:11 +02:00
Nils Maier
38bdea4e06
Add internal md5 and sha1 message digests
2013-09-20 23:06:50 +02:00
Tatsuhiro Tsujikawa
9e7579b475
Set old cookie's creation-time to new cookie on replacement
...
As described in http://tools.ietf.org/html/rfc6265#section-5.3
2013-09-20 00:24:03 +09:00
Tatsuhiro Tsujikawa
fa09dc9115
Clean up if defined style
2013-09-17 23:17:08 +09: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
41121e09f7
Use std::unique_ptr for Metalink objects
2013-07-12 23:09:23 +09:00
Tatsuhiro Tsujikawa
7c06b903f3
Use std::unique_ptr for ValueBase object hierarchy
2013-07-11 21:09:51 +09:00
Tatsuhiro Tsujikawa
7a57ecc5f8
DefaultBtMessageDispatcher: Remove unused members peerStorage_, pieceStorage_
2013-07-07 23:28:51 +09:00
Tatsuhiro Tsujikawa
00e27e4fa4
DownloadEngine: Use std::unique_ptr for eventPoll_
2013-07-06 19:39:16 +09:00
Tatsuhiro Tsujikawa
162c138362
BtRegistry: Use std::unique_ptr for BtObject
2013-07-06 19:09:39 +09:00
Tatsuhiro Tsujikawa
81f46fbf92
Use CXX11_OVERRIDE
2013-07-06 18:15:09 +09:00
Tatsuhiro Tsujikawa
68f2a33355
DownloadEngine: Use std::unique_ptr for RequestGroupMan
2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa
6b397c8125
Use std::unique_ptr for CheckIntegrityEntry and FileAllocationEntry
2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa
ae84ff26e2
AbstractSingleDiskAdaptor: Use std::unique_ptr for diskWriter_
2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa
f000fd0cab
MultiDiskAdaptor: Use std::unique_ptr for DiskWriterEntry and DiskWriter
...
MultiFileAllocationIterator is also rewritten so that it does not
requre copying DiskWriterEntry objects.
2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa
e823fe8bb5
Set log level DEBUG for unittests
2013-07-06 15:56:08 +09:00
Tatsuhiro Tsujikawa
28d5c7408f
Check that C++ compiler supports override keyword
...
If the compiler supports override, define CXX11_OVERRIDE as override,
otherwise define it as empty. Use CXX11_OVERRIDE instead of override.
2013-07-06 15:54:03 +09:00
Tatsuhiro Tsujikawa
0cdeaa8177
Return nullptr directly where std::shared_ptr is expected
...
The constructor of std::shared_ptr which takes nullptr is not explicit
so we can return nullptr directly.
2013-07-04 21:44:09 +09:00
Tatsuhiro Tsujikawa
107de58997
Return nullptr directly where std::unique_ptr is expected
...
The constructor of std::unique_ptr which takes nullptr is not explicit
so we can return nullptr directly.
2013-07-04 21:33:36 +09:00
Tatsuhiro Tsujikawa
128783cf86
Use std::unique_ptr for PieceSelector instead of std::shared_ptr
2013-07-04 01:38:24 +09:00
Tatsuhiro Tsujikawa
a479473949
Use std::unique_ptr for URISelector instead of std::shared_ptr
2013-07-04 01:16:48 +09:00
Tatsuhiro Tsujikawa
c36370ef60
Use std::unique_ptr for LpdMessage instead of std::shared_ptr
2013-07-04 00:56:29 +09:00
Tatsuhiro Tsujikawa
57f1902ee1
Use std::unique_ptr for StreamFilter instead of std::shared_ptr
2013-07-04 00:39:11 +09:00
Tatsuhiro Tsujikawa
cb205a207c
Use std::unique_ptr for HttpRequest instead of std::shared_ptr
2013-07-04 00:13:15 +09:00
Tatsuhiro Tsujikawa
7e6db8d801
Use std::unique_ptr instead of array_ptr
2013-07-03 23:23:22 +09:00
Tatsuhiro Tsujikawa
df0034f1cd
Add countSetBitSlow tests
2013-07-03 23:22:40 +09:00
Tatsuhiro Tsujikawa
74d6d64271
Use std::unique_ptr for MessageDigest
2013-07-03 01:13:13 +09:00
Tatsuhiro Tsujikawa
f022402dc9
Use std::unique_ptr in DHTRegistry
2013-07-02 23:52:40 +09:00
Tatsuhiro Tsujikawa
1a5d75e819
Use std::unique_ptr to store DHTMessages instead of std::shared_ptr
2013-07-02 22:58:20 +09:00
Tatsuhiro Tsujikawa
529b9fdceb
Use std::unique_ptr for ExtensionMessage
2013-07-01 21:42:51 +09:00
Tatsuhiro Tsujikawa
098f1571be
Wrap BtMessage objects by std::unique_ptr instead of std::shared_ptr
2013-06-30 22:55:43 +09:00
Tatsuhiro Tsujikawa
03ae308faa
Use RequestSlot as pointer to avoid copying
2013-06-30 00:31:50 +09:00
Tatsuhiro Tsujikawa
5a223115e0
Rewrite CookieStorage
2013-06-29 23:09:09 +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
47402c5f29
Refactor HttpConnection and its neighbor objects
2013-06-26 23:19:15 +09:00
Tatsuhiro Tsujikawa
d485c8e767
Rewrite AuthConfig objects using std::unique_ptr
2013-06-26 21:45:29 +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
2761301dfb
Rewrite util::divide
2013-06-25 00:07:15 +09:00
Tatsuhiro Tsujikawa
10cdc59297
Remove vbegin and vend in favor of std::begin and std::end
2013-06-24 21:46:42 +09:00
Tatsuhiro Tsujikawa
23086b6e21
AbstractBtMessage: Use std::unique_ptr for validator
2013-06-23 16:12:19 +09:00
Tatsuhiro Tsujikawa
85f5134626
DefaultBtMessageDispatcher: Use raw pointers for non-owning objects
2013-06-23 12:25:58 +09:00
Tatsuhiro Tsujikawa
9db01bed71
DefaultBtAnnounce: Use non-owning raw pointer for downloadContext_
2013-06-23 12:14:17 +09:00
Tatsuhiro Tsujikawa
bfb732c5d4
DefaultBtRequestFactory: Use raw pointer for pieceStorage_
2013-06-23 12:02:36 +09:00
Tatsuhiro Tsujikawa
bef6236da8
DownloadContext::attrs_ now holds std::unique_ptr
...
DownloadContext::getAttribute() returns a raw pointer.
2013-06-23 00:59:55 +09:00
Tatsuhiro Tsujikawa
1a299c4d7c
Use raw pointers to PieceStorage, PeerStorage and DownloadContxt for BtMessages
2013-06-23 00:01:40 +09:00
Tatsuhiro Tsujikawa
09c597fbb8
ParameterOptionHandler: Use initializer lists for params
2013-06-22 23:19:54 +09:00
Tatsuhiro Tsujikawa
286bb2840e
Remove Triplet, use std::tuple instead
2013-06-22 21:08:50 +09:00
Tatsuhiro Tsujikawa
5cb7ae0b86
Use std::unique_ptr in SingletonHolder
2013-06-22 19:36:42 +09:00
Tatsuhiro Tsujikawa
05d85e2965
Remove auto_delete in favor of std::unique_ptr
2013-06-22 18:51:29 +09:00
Tatsuhiro Tsujikawa
e791eb9ca3
Cleanup a2functional.h
...
Remove mem_fun_sh in favor of std::mem_fun. Remove unused functions.
Use std::mem_fn instead of mem_fun_sh
2013-06-22 17:53:39 +09:00
Tatsuhiro Tsujikawa
50dcd6394c
Use std::unique_ptr instead of std::shared_ptr
2013-06-22 15:49:41 +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
126a4bde61
Rewrite URI path component normalization
2013-06-19 00:15:37 +09:00