Tatsuhiro Tsujikawa
a49397ed19
Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
2013-02-25 21:42:54 +09:00
Tatsuhiro Tsujikawa
2aeb7137d0
Log host and port when unexpected or unknown UDP tracker reply is received
2013-02-25 01:14:27 +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
b782a56b1c
Show correct end byte in error message when HTTP response range is not ok
...
Previously, unless HTTP pipelining is enabled, end byte in that
message is always 0. With this change, it shows correct end byte sent
to the HTTP server.
2013-02-23 15:37:35 +09:00
Tatsuhiro Tsujikawa
73f4db883c
Update copyright year in version text
2013-02-21 01:39:08 +09:00
Tatsuhiro Tsujikawa
b3acf4d393
Rewrite cookie_helper::reverseDomainLevel()
2013-02-16 22:51:58 +09:00
Tatsuhiro Tsujikawa
61665d2c26
Set sa_mask when setting signal handler
2013-02-14 21:51:30 +09:00
Tatsuhiro Tsujikawa
8e3ae3b76c
Use _exit() instead of exit() where appropriate
2013-02-14 01:01:06 +09:00
Tatsuhiro Tsujikawa
3fc45edaa7
Fix bug that active downloads are not saved with --save-session-interval
2013-02-04 21:50:09 +09:00
Tatsuhiro Tsujikawa
98e7018599
Fix failure to set TCP_NODELAY on Windows
...
On Windows setting TCP_NODELAY after non-blocking connect fails
at least on Windows 7.
2013-02-03 19:09:06 +09:00
Tatsuhiro Tsujikawa
1c9cfccac4
Fix invalid iterator handling when deleting RequestGroup
2013-02-03 18:18:28 +09:00
Tatsuhiro Tsujikawa
85cd65a664
Add debug log for aligned cache write
2013-02-02 21:28:52 +09:00
Tatsuhiro Tsujikawa
561f0b3e29
Use std::deque instead of std::list in IndexedList
...
We choose faster iteration over rare slower deletion in the middle.
2013-02-01 00:03:47 +09:00
Tatsuhiro Tsujikawa
de9697fc47
Fix compiler warning
2013-01-29 21:38:58 +09:00
Tatsuhiro Tsujikawa
e583717144
Increase MAX_PEER_LIST_SIZE to 512
...
We definitely need some tests to determine this value.
2013-01-28 21:36:52 +09:00
Tatsuhiro Tsujikawa
988878930e
Check SSL_OP_NO_COMPRESSION is available before using it
2013-01-27 17:32:06 +09:00
Tatsuhiro Tsujikawa
a722500d62
Make DefaultPeerStorage::droppedPeers_ distinct
2013-01-26 19:00:03 +09:00
Tatsuhiro Tsujikawa
3a19b65dd7
Rename /BadCondition/ in Peer to /Drop/
2013-01-26 18:50:48 +09:00
Tatsuhiro Tsujikawa
91b26ab2a8
DefaultPeerStorage::addBadPeer: Updating eoi is not required after erasure
2013-01-26 18:41:43 +09:00
Tatsuhiro Tsujikawa
1e4f301ec1
Remove PeerStorage::getActivePeers() and add getUsedPeers() instead
...
PeerStorage::getUsedPeers() returns non-active peers, so caller must
call Peer::isActive() to get active peers.
2013-01-26 18:36:09 +09:00
Tatsuhiro Tsujikawa
ba69f5c0c3
Refactor peer list management in DefaultPeerStorage
...
Peer list is now divided into 2: unusedPeers_ and usedPeers_.
Duplicate check is done using std::set by comparing pair of IP address
and port. For this, only IP address and port given to the Peer
constructor are used. In other words, TCP port received from extended
message is not used for this purpose.
2013-01-26 17:50:06 +09:00
Tatsuhiro Tsujikawa
8524ac3806
Code cleanup
2013-01-25 00:10:11 +09:00
Tatsuhiro Tsujikawa
de394bbf61
DefaultPeerStorage::addPeer: Remove unnecessary '='
2013-01-25 00:08:49 +09:00
Tatsuhiro Tsujikawa
550ac8c074
Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY
...
In InitiatorMSEHandshakeCommand, when aborting connection, we must
return peer to the PeerStorage. But it is not done if sequence_ is
INITIATOR_SEND_KEY. This causes stale Peer objects whose usedBy()
returns true eventually occupies peer list and aria2 cannot make any
connections.
2013-01-25 00:01:43 +09:00
Tatsuhiro Tsujikawa
32a3c441af
Fix bug: wrong parenthesis position in the condition
2013-01-24 00:04:58 +09:00
Tatsuhiro Tsujikawa
3b7566faf1
Rewritten util::uitos()
2013-01-16 23:30:02 +09:00
Tatsuhiro Tsujikawa
1c72b80aa5
Revert 53dde0a9
...
Reverted to the original strategy, but some values are tweaked.
Without TCP_NODELAY, 53dde0a9
does not work well.
2013-01-15 23:50:12 +09:00
Tatsuhiro Tsujikawa
bf4ea63a66
Disable TCP_NODELAY for BitTorrent
...
To make Request messages more often packed into 1 packet.
2013-01-15 23:17:21 +09:00
Tatsuhiro Tsujikawa
e6b0274685
Remove reqNumToCreate constraint when creating request
...
It really degrades download speed.
2013-01-15 23:07:08 +09:00
Tatsuhiro Tsujikawa
df0be5e7f0
Cosmetic change
2013-01-15 21:57:35 +09:00
Tatsuhiro Tsujikawa
88580da587
Remove Append and StringAppend
2013-01-15 21:46:03 +09:00
Tatsuhiro Tsujikawa
6a976a4118
Accept k and m as well as K and M in util::getRealSize()
2013-01-15 21:36:25 +09:00
Tatsuhiro Tsujikawa
851eb137c1
Reverted UB_MAX_OUTSTANDING_REQUEST to 256
2013-01-15 00:33:40 +09:00
Tatsuhiro Tsujikawa
53dde0a9ae
Download rate based strategy to increase outstanding request
...
This strategy performs better than old one in high latency
environment.
2013-01-15 00:02:40 +09:00
Tatsuhiro Tsujikawa
d05ef28104
Avoid tiny packet for Have and Request message
2013-01-14 21:02:58 +09:00
Tatsuhiro Tsujikawa
d8f5887bbe
Increase amount to 24K to pack Piece header and payload; fix missing goto
2013-01-14 21:01:08 +09:00
Tatsuhiro Tsujikawa
63b6075c91
Pack Piece message header and body into one chunk
2013-01-14 18:09:40 +09:00
Tatsuhiro Tsujikawa
36fcccbbdf
Reverted accidental change to CHOKE_ROUND_INTERVAL
2013-01-11 23:30:26 +09:00
Tatsuhiro Tsujikawa
1ad815061b
Rewritten SpeedCalc
2013-01-11 23:29:58 +09:00
Tatsuhiro Tsujikawa
c893d82867
Removed BtMessage::isSendingProgress()
...
DefaultBtMessageDispatcher::isSendingInProgress() now checks the
number of buffer entry in PeerConnection.
2013-01-11 20:26:31 +09:00
Tatsuhiro Tsujikawa
c04df672d1
Buffer up at most A2_IOV_MAX buffer entries for BtMessages
2013-01-11 18:46:36 +09:00
Tatsuhiro Tsujikawa
e0ea88ebcf
mingw32: Make NTFS sparse file on --file-allocation=trunc
2013-01-11 18:35:54 +09:00
Tatsuhiro Tsujikawa
357e4b1a77
Made SocketCore::readData() and readDataFrom() take void*
2013-01-11 17:03:59 +09:00
Tatsuhiro Tsujikawa
8ba0d58ee1
Vectorized write for SocketBuffer to avoid small packet
2013-01-11 16:50:04 +09:00
Tatsuhiro Tsujikawa
8e63bad2da
Added --save-session-interval option
...
--save-session-interval option saves error/unfinished downloads to a
file specified by --save-session option every SEC seconds. If 0 is
given, file will be saved only when aria2 exits.
2013-01-10 00:15:30 +09:00
Tatsuhiro Tsujikawa
87af7c32c6
Use request URI as referer if --referer="*" is given
2013-01-08 21:42:42 +09:00
Tatsuhiro Tsujikawa
08bed3f77f
Log warn if unknown option is found in config file or -i file
2013-01-07 22:42:28 +09:00
Tatsuhiro Tsujikawa
d6000024c0
Added --console-log-level option
...
--console-log-level option sets log level to output to console.
2013-01-05 18:48:09 +09:00
Tatsuhiro Tsujikawa
f019eae5df
mingw32: Use LANG_ENGLISH for error message
2012-12-27 00:53:22 +09:00
Tatsuhiro Tsujikawa
247084f9c3
Fixed bug that USR_BASENAME is not defined
...
In some cases, if the dirname is only "/", the basename will not be
defined (e.g., "/f"). This change fixes this bug.
2012-12-27 00:03:37 +09:00
Tatsuhiro Tsujikawa
bd671403bc
Fix compiler warning
2012-12-26 23:10:32 +09:00
Tatsuhiro Tsujikawa
c09a5a95f4
mingw32: Re-open files with read-only mode enabled on seeding
...
On Mingw32 build, if aria2 opens file with GENERIC_WRITE access right,
some programs cannot open the file aria2 is seeding. To avoid this
situation, re-open files with read-only enabled when seeding is about
to begin.
2012-12-24 23:03:19 +09:00
Tatsuhiro Tsujikawa
d13aa3a0b3
Added missing IndexedList.h to SRCS
2012-12-24 21:23:52 +09:00
Tatsuhiro Tsujikawa
616cd9e75f
Simplified RequestGroupMan::fillRequestGroupFromReserver
2012-12-22 23:37:44 +09:00
Tatsuhiro Tsujikawa
b017e80438
Changed threshold of using upper unit for abbrevSize
2012-12-19 23:58:24 +09:00
Tatsuhiro Tsujikawa
07bb779eb0
Faster deletion of RequestGroup and DownloadResult lists
2012-12-19 23:03:48 +09:00
Tatsuhiro Tsujikawa
c8565360b0
Removed unused variables
2012-12-17 00:43:13 +09:00
Tatsuhiro Tsujikawa
77a4ee4de0
Save gid option with --save-session option
2012-12-17 00:33:11 +09:00
Tatsuhiro Tsujikawa
0a4ce4fdb5
Use map to make DownloadResult lookup fast
2012-12-16 18:50:45 +09:00
Tatsuhiro Tsujikawa
0001f4cfbd
Added --gid option
...
This option sets GID manually. aria2 identifies each download by the
ID called GID. The GID must be hex string of 16 characters, thus
[0-9a-zA-Z] are allowed and leading zeros must not be stripped. The
GID all 0 is reserved and must not be used. The GID must be unique,
otherwise error is reported and the download is not added. This
option is useful when restoring the sessions saved using
--save-session option. If this option is not used, new GID is
generated by aria2.
2012-12-16 18:22:13 +09:00
Tatsuhiro Tsujikawa
b9da9d4ed3
Use 64 bits random bytes as GID
...
This change replaces the current 64 bit sequential GID with 64 bits
random bytes GID in an attempt to support persistent GID. Internally,
the GID is stored as uint64_t. For human representation and RPC
interface, GID is represented as 16 bytes hex string. For console
readout, 16 bytes are too long, so it is abbreviated to first 6 bytes.
When querying GID in RPC calls, user can speicfy the prefix of GID as
long as the prefix is shared by more than 1 GID entries.
2012-12-16 17:29:01 +09:00
Tatsuhiro Tsujikawa
04586f50b1
Fixed BitfieldMan::getOffsetCompletedLength overflow on 32-bit systems
2012-12-16 17:26:01 +09:00
Tatsuhiro Tsujikawa
de1ca6d6b8
mingw32: Use HANDLE only for MinGW32 build
2012-12-15 18:28:46 +09:00
Tatsuhiro Tsujikawa
2235743de3
Changed console readout, making it more compact
...
"SIZE:" is removed because it is obvious. SEEDING, SEED, SPD and UP
are now replaced with SEED, SD, DL and UL respectively.
2012-12-12 23:22:04 +09:00
Tatsuhiro Tsujikawa
4fdd5da27d
Compact readout when more than 1 simultaneous downloads are going on
...
If more than 1 simultaneous downloads are going on, use more compact
format in readout. Currently, at most 5 download stats are displayed.
util::abbrevSize() is rewritten to support "Gi" unit and provides more
compact abbreviation.
2012-12-11 23:40:06 +09:00
Tatsuhiro Tsujikawa
79fce29bda
Fixed segmentation fault if fp_ is NULL
2012-12-11 23:39:12 +09:00
Tatsuhiro Tsujikawa
e86fd44dc5
Console color output
...
Log level and download result string is now colored.
2012-12-08 21:48:18 +09:00
Tatsuhiro Tsujikawa
9a5fff0de0
Logger: Simplified console output and change level format in log
...
The date and time are now removed from console output. The log level
is now formatted as "[LEVEL]".
2012-12-08 19:13:59 +09:00
Tatsuhiro Tsujikawa
2364f809c3
Code cleanup: Merged successive string literals in readout
2012-12-08 19:09:03 +09:00
Tatsuhiro Tsujikawa
bf56f3c299
Check the output file is terminal or not in ctor
2012-12-08 18:38:30 +09:00
Tatsuhiro Tsujikawa
9d7bb9d01a
Release statically allocated resources for prefs and options
...
Not realeasing these resources does not hurt the correctness of the
program, but memory leak detection tool, such as valgrind, reports it
as potential memory leak. It is better to distinguish it from the real
ones.
2012-12-08 17:52:10 +09:00
Tatsuhiro Tsujikawa
901227db9b
Updated usage of --disk-cache
2012-12-07 00:44:42 +09:00
Tatsuhiro Tsujikawa
7a02177698
Start to find faster host before the number of missing segments becomes 1
...
The old implementation starts to find faster host when the number of
missing segment becomes 1. Because of --min-split-size option, before
the number of missing segment becomes 1, the number of connection
becomes 1 and it can be slow. In this case, we have to wait until the
last segment is reached. The new implementation starts to find faster
host when the remaining length is less than --min-split-size * 2, to
mitigate the problem stated above.
2012-12-07 00:32:44 +09:00
Tatsuhiro Tsujikawa
5683f2fb3e
Removed unused staticSHA1Digest
2012-12-07 00:12:22 +09:00
Tatsuhiro Tsujikawa
bec0f6dc11
Removed warning when --file-allocation=falloc is used in MinGW32 build
...
The warning was just a mistake. SetFilePointerEx + SetEndOfFile
actually allocate disk space.
2012-12-06 22:48:46 +09:00
Tatsuhiro Tsujikawa
a6b18c868b
Log size before flush
2012-12-06 03:04:41 +09:00
Tatsuhiro Tsujikawa
df5f1fe77f
Fixed bug that size_ is not updated when WrDiskCacheEntry::append is called
2012-12-06 03:04:05 +09:00
Tatsuhiro Tsujikawa
838949ab85
Append new data to the contagious cache data
...
If we receive small data (e.g., 1 or 2 bytes), cache entry becomes a
headache. To mitigate this problem, we allocate cache buffer at least
4KiB and append the data to the contagious cache data.
2012-12-06 02:23:32 +09:00
Tatsuhiro Tsujikawa
2c5e77f422
Flush cached data on checkout/cancel Segment
...
This change prevents the cached data from overlap because of BT peers.
2012-12-06 01:16:28 +09:00
Tatsuhiro Tsujikawa
56c498bcbf
Clear write cache on Segment::clear and Piece::clearAllBlock
2012-12-06 00:39:14 +09:00
Tatsuhiro Tsujikawa
9ed8502e74
Write data in 4K aligned offset in write with disk cache enabled
...
This greatly reduces disk activity especially on Win + NTFS. Not so
much difference on Linux.
2012-12-06 00:17:11 +09:00
Tatsuhiro Tsujikawa
911851debb
mingw32: Removed FSCTL_SET_SPARSE set
2012-12-03 23:07:05 +09:00
Tatsuhiro Tsujikawa
f314719618
Added --disk-cache option
...
This option enables disk cache. If SIZE is 0, the disk cache is
disabled. This feature caches the downloaded data in memory, which
grows to at most SIZE bytes. The cache storage is created for aria2
instance and shared by all downloads. The one advantage of the disk
cache is reduce the disk seek time because the data is written in
larger unit and it is reordered by the offset of the file. If the
underlying file is heavily fragmented it is not the case.
2012-12-03 01:39:10 +09:00
Tatsuhiro Tsujikawa
8ac433a8e9
Fixed compile error without SSL/TLS lib
2012-12-01 23:37:57 +09:00
Tatsuhiro Tsujikawa
2cbdd8b845
Fixed compile error without BitTorrent support
2012-12-01 21:33:25 +09:00
Tatsuhiro Tsujikawa
7e59e2dbb5
mingw32: Open file using _wsopen and added --enable-mmap support
...
I tried CreateFile but the subsequent ReadFile fails with Access
Denied if sparse file is read on NTFS. I mostly reverted previous
changes and use _wsopen with read/write share enabled instead of
CreateFile.
This change also includes --enable-mmap support for MinGW32
build. Memory mapped file may be useful for 64-bits OS and lots of
RAM. Currently, FlushViewOfFile is not called during the download, so
it is slightly vulnerable against sudden power loss. I found lots of
read when resuming download due to page fault. So for now it is useful
for the initial download. I recommend not to use
--file-allocation=prealloc with --enable-mmap for MinGW32, because it
triggers page faults even in the initial download. Anyway, the option
is experimental.
2012-12-01 19:38:30 +09:00
Tatsuhiro Tsujikawa
b95f15b462
Use Win32 API for file I/O in AbstractDiskWriter
...
Now file has been opened by aria2 is now readable by other processes.
2012-11-30 01:20:49 +09:00
Tatsuhiro Tsujikawa
74520b03f8
Set F_GLOBAL_NOCACHE for Mac OS X
2012-11-28 21:47:55 +09:00
Tatsuhiro Tsujikawa
506a9358e1
Refactored file open code
2012-11-28 21:46:44 +09:00
Tatsuhiro Tsujikawa
16e25ef4e1
Enabled TCP_NODELAY in SocketCore::establishConnection and acceptConnection
2012-11-28 00:20:43 +09:00
Tatsuhiro Tsujikawa
e781e6eac1
Made socket non-blocking mode in SocketCore::beginListen()
2012-11-28 00:15:03 +09:00
Tatsuhiro Tsujikawa
438f95abae
Made socket non-blocking mode in SocketCore::acceptConnection()
2012-11-28 00:10:32 +09:00
Tatsuhiro Tsujikawa
e0dcb942b2
Added --force-save option.
...
--force-save option saves download with --save-session option even if
the download is completed or removed. This may be useful to save
BitTorrent seeding which is recognized as completed state. The
default value is false.
2012-11-17 15:33:44 +09:00
Tatsuhiro Tsujikawa
2ee4361848
Removed unused static function util::parseParam
2012-11-17 14:38:55 +09:00
Tatsuhiro Tsujikawa
9c1fe4addd
Use array_ptr to remove try block
2012-11-15 22:05:59 +09:00
Tatsuhiro Tsujikawa
6b2f5ab1f5
SocketCore::bind now accepts const char* host instead of std::string
2012-11-15 21:09:10 +09:00
Tatsuhiro Tsujikawa
b2893f1e31
Get the correct uploaded data size
...
Subtract msgHdrLen_ from writtenLength to get the uploaded data size.
Without this correction, the seeder assumes it has uploaded more data
than it actually has.
2012-11-04 16:49:39 +09:00
Tatsuhiro Tsujikawa
31189b1222
Made return type of util::parse_content_disposition ssize_t
2012-11-01 22:54:32 +09:00
Tatsuhiro Tsujikawa
08cd68ec95
Removed Socket.h from SRCS
2012-10-31 19:07:08 +09:00
Tatsuhiro Tsujikawa
bf342a2827
Fixed compile error with mingw
2012-10-31 17:10:49 +09:00
Tatsuhiro Tsujikawa
d4e7b51eb9
Made --http-no-cache false by default
2012-10-31 16:44:28 +09:00
Tatsuhiro Tsujikawa
49e9f66c16
Use len formal parameter of util::parse_content_disposition
2012-10-31 01:24:10 +09:00
Tatsuhiro Tsujikawa
5dfd1a5af7
Fixed memory leak
2012-10-29 23:43:35 +09:00
Tatsuhiro Tsujikawa
00e3151110
Initialized member
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
f60b956a48
Removed always-true condition
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
2676bbe9c6
Initialized scalar members
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
feb548e174
Removed unused members
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
6fddbc845c
Removed dead code
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
f42199b46d
Fixed resource leak
2012-10-29 23:42:58 +09:00
Tatsuhiro Tsujikawa
8566d050ff
Reset stream format state
2012-10-29 22:39:09 +09:00
Tatsuhiro Tsujikawa
d6f73292fa
gnutls: Added more status checking when verifying peer
2012-10-27 17:46:53 +09:00
Tatsuhiro Tsujikawa
118aed9c24
Content-Disposition parser conforming to RFC 6266.
...
RFC 2231 Continuation is not supported.
2012-10-27 14:51:07 +09:00
Tatsuhiro Tsujikawa
21c3903af0
Simplified TransferStat struct
2012-10-26 00:16:20 +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
46bdaf0e8d
Made HTTP/FTP download speed limiter more accurate
...
We have to do the same thing for BitTorrent.
2012-10-24 01:05:41 +09:00
Tatsuhiro Tsujikawa
da8086cbc9
Updated doc
2012-10-16 22:55:14 +09:00
Tatsuhiro Tsujikawa
a9c76ed35e
Added --rpc-save-upload-metadata option
...
If true is given, which is default, save the uploaded torrent or
metalink metadata in the directory specified by --dir option. The
filename consists of SHA1-hash hex string of metadata plus
extension. For torrent, the extension is '.torrent'. For metalink, it
is '.meta4'. If false is given to this option, the downloads added by
aria2.addTorrent or aria2.addMetalink will not be saved by
--save-session option.
2012-10-16 00:18:34 +09:00
Tatsuhiro Tsujikawa
4a4fec2c8c
Removed socket readability check from checkIfConnectionEstablished()
2012-10-15 23:27:51 +09:00
Tatsuhiro Tsujikawa
841395f332
Perform SSL/TLS handshake after checking whether connection is established
2012-10-15 23:26:51 +09:00
Tatsuhiro Tsujikawa
c904aa50fe
Use uri_split instead of uri::parse where appropriate
2012-10-14 18:05:34 +09:00
Tatsuhiro Tsujikawa
692f978978
Rewritten URI parser
2012-10-14 00:14:50 +09:00
Tatsuhiro Tsujikawa
5367c34de3
Fixed bug that mmap won't work if MultiDiskAdaptor is used
2012-10-08 19:13:01 +09:00
Tatsuhiro Tsujikawa
71620854c7
Moved bool members to the last to reduce structure size
2012-10-07 22:14:06 +09:00
Tatsuhiro Tsujikawa
8b0c701266
Removed trailing spaces
2012-10-01 23:52:22 +09:00
Tatsuhiro Tsujikawa
7c878d3c81
Moved implementation of SharedCount and WeakCount to cc file
2012-09-30 18:14:59 +09:00
Tatsuhiro Tsujikawa
e34d0e7ffa
Dont' return SharedHandle from HttpHeader::getRange()
2012-09-30 17:30:35 +09:00
Tatsuhiro Tsujikawa
90515dfa50
RPC over SSL/TLS transport
...
To enable RPC over SSL/TLS, specify server certificate and private key
using --rpc-certificate and --rpc-private-key options and enable
--rpc-secure option. After the encryption is enabled, use https and
wss scheme to access RPC server.
2012-09-30 00:50:14 +09:00
Tatsuhiro Tsujikawa
4b94ede268
Return ExtensionMessage subclass create return raw pointer
2012-09-28 23:40:44 +09:00
Tatsuhiro Tsujikawa
3258614033
Removed *Handle typedef
2012-09-28 23:27:46 +09:00
Tatsuhiro Tsujikawa
1c57a3ff9f
Code cleanup
2012-09-28 22:00:46 +09:00
Tatsuhiro Tsujikawa
1fdc6e0a33
Code cleanup
2012-09-28 00:26:34 +09:00
Tatsuhiro Tsujikawa
c6b76f1d32
Don't instantiate SharedHandle for DHT{Query, Response}Message subclass
2012-09-28 00:13:08 +09:00
Tatsuhiro Tsujikawa
5323afa5b2
Removed instantiation of unused BtMessageValidator
2012-09-27 23:46:34 +09:00
Tatsuhiro Tsujikawa
215d1d3d0b
Made static create function of BtMessage subclass return raw pointer
2012-09-27 23:40:25 +09:00
Tatsuhiro Tsujikawa
ae2e4cb7ff
Handle OptionHandlers as raw pointer
2012-09-27 22:45:31 +09:00
Tatsuhiro Tsujikawa
8fc5cdea02
Removed unused functions
2012-09-27 01:03:39 +09:00
Tatsuhiro Tsujikawa
89f18dde85
Use nothrow version of parseInt, parseUInt and parseLLInt
2012-09-27 00:45:32 +09:00
Tatsuhiro Tsujikawa
a879d75aaa
Don't use parseInt in cookie_helper
2012-09-27 00:16:22 +09:00
Tatsuhiro Tsujikawa
f75402739b
Rewritten ServerStatMan::load() using nothrow version of parseInt
2012-09-27 00:07:15 +09:00
Tatsuhiro Tsujikawa
8f2030da09
Removed HttpHeader::findAs{LL}Int and unused HttpResponse::{has,get}RetryAfter
2012-09-26 23:58:59 +09:00
Tatsuhiro Tsujikawa
b9f972665b
Rewritten LpdMessageReceiver::receiveMessage()
2012-09-26 23:45:58 +09:00
Tatsuhiro Tsujikawa
3a917ff695
Rewritten FtpConnection::receiveMdtmResponse without util::parseInt
2012-09-26 23:14:49 +09:00
Tatsuhiro Tsujikawa
10a68061f7
Code cleanup
2012-09-26 23:03:25 +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
c13dc166de
Rewritten ExtensionMessageRegistry
2012-09-26 22:02:48 +09:00
Tatsuhiro Tsujikawa
f0000a8754
Made ExtensionMessage's NAME const char[]
2012-09-26 00:01:41 +09:00
Tatsuhiro Tsujikawa
c522d79d89
Code cleanup
2012-09-25 23:48:35 +09:00
Tatsuhiro Tsujikawa
f133091a9e
Made BufferedFile ctor take const char* args
2012-09-25 23:44:41 +09:00
Tatsuhiro Tsujikawa
c63af24c63
Made BtMessage's NAME const char[]
2012-09-25 23:28:24 +09:00
Tatsuhiro Tsujikawa
9a510ddac0
Made MetalinkMetaurl::MEDIATYPE_TORRENT const char[]
2012-09-25 23:07:23 +09:00
Tatsuhiro Tsujikawa
8788cae7e3
Removed MetalinkResource static strings
2012-09-25 23:03:19 +09:00
Tatsuhiro Tsujikawa
be77d1394e
Removed Request::PROTO_*
2012-09-25 22:41:03 +09:00
Tatsuhiro Tsujikawa
c186e93488
Code cleanup
2012-09-25 22:02:58 +09:00
Tatsuhiro Tsujikawa
c16cebbc9a
Code cleanup
2012-09-25 22:00:56 +09:00
Tatsuhiro Tsujikawa
41cb774374
Made getMethodName() of RpcMethod subclass return const char*
2012-09-25 21:57:08 +09:00
Tatsuhiro Tsujikawa
260a0b8bcb
Rewritten AnnounceList::getEventString()
2012-09-25 00:07:14 +09:00
Tatsuhiro Tsujikawa
b640b830a2
Made STATUS_STRING const char*[]
2012-09-25 00:01:00 +09:00
Tatsuhiro Tsujikawa
a8c0794640
Made DEFAULT_STRIP_CHARSET const char[]
2012-09-24 23:54:41 +09:00
Tatsuhiro Tsujikawa
656a766bb0
Rewritten ServerStatMan::load()
2012-09-24 23:35:41 +09:00
Tatsuhiro Tsujikawa
d8c44fe9e8
Use const char* instead of static const std::string
2012-09-24 23:20:43 +09:00
Tatsuhiro Tsujikawa
0144397e4b
Rewritten File::getPathSeparators()
2012-09-24 23:04:42 +09:00
Tatsuhiro Tsujikawa
d95a179876
Removed A2STR strings other than NIL
2012-09-24 23:01:08 +09:00
Tatsuhiro Tsujikawa
4423ece43d
Moved GZipDecoder to test
2012-09-24 22:38:59 +09:00
Tatsuhiro Tsujikawa
dc74ebeced
Removed unused code
2012-09-24 21:46:26 +09:00
Tatsuhiro Tsujikawa
8d8ba403fe
Removed proxy-connection from InterestingHeader
2012-09-23 22:33:15 +09:00
Tatsuhiro Tsujikawa
8b0bdacace
Don't send Proxy-Connection header field
...
It was deprecated long ago.
2012-09-23 21:51:53 +09:00
Tatsuhiro Tsujikawa
54665ff409
Removed static std::string constant in HttpHeader
...
This change also removes inspection of Proxy-Connection header field
when checking whether the remote endpoint keeps connection open.
2012-09-23 21:46:01 +09:00
Tatsuhiro Tsujikawa
dd7014a612
Store only interesting HTTP headers in HttpHeader
...
In this change, we defined HTTP header fields we are interested in.
We only store those headers in HttpHeader object. Accessing HTTP
headers in HttpHeader object is now done through enum values.
2012-09-23 20:59:34 +09:00
Tatsuhiro Tsujikawa
0b4dec0250
Increased shreshold of command-line option suggestion
2012-09-23 15:06:39 +09:00
Tatsuhiro Tsujikawa
295a62f538
Rewritten help tags and various internal flag handling in OptionHandler
...
Now help tags are defined as enum values to avoid vector of strings.
The internal flags are represented by bitmask to shrink size.
2012-09-23 14:59:05 +09:00
Tatsuhiro Tsujikawa
461a542c5e
Rewritten DownloadHandlerConstants
...
DownloadHandlerConstants was simplified. MIME type handling in Accept
header was also reworked. DownloadContext's metalinkServerContacted_
is replaced with acceptMetalink_ and its boolean value is reverted.
RequestGroup and HttpRequest now do not hold vector of accepting
types. HttpRequest has the flag acceptMetalink_ which will be set by
the same value of DownloadContext::accpetMetalink_ and if it is true,
Metalink MIME types are added to Accept header field.
2012-09-22 23:19:41 +09:00
Tatsuhiro Tsujikawa
9d294741fd
Rewritten FeatureConfig into set of functions
2012-09-22 20:56:39 +09:00
Tatsuhiro Tsujikawa
e2340efe27
Use std::vector instead of std::map for ContextAttribute objects
...
Now key for ContextAttribute object store is int instead of string.
2012-09-22 17:37:30 +09:00
Tatsuhiro Tsujikawa
0030025bb6
Don't set SNI hostname if it does not include "." for GNUTLS
2012-09-15 01:14:21 +09:00
Tatsuhiro Tsujikawa
393d0d9fbc
Disable SSL/TLS compression with OpenSSL
2012-09-15 01:13:52 +09:00
Tatsuhiro Tsujikawa
d0703a2f26
Code cleanup
2012-09-07 21:45:36 +09:00
Tatsuhiro Tsujikawa
763c7a0aa0
Pause download even if download is completed
...
This allows to pause and unpause BitTorrent seed.
2012-09-07 01:40:40 +09:00
Tatsuhiro Tsujikawa
f6c7aaa1cd
Use execlp() instead of execl()
2012-09-07 01:28:53 +09:00
Tatsuhiro Tsujikawa
2148cbaf1d
Fixed compile error without XML library
2012-09-02 21:04:36 +09:00
Tatsuhiro Tsujikawa
e2bf627b17
Ensure that num of commands is 0 before processing tracker response
2012-09-02 17:43:26 +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
9840955798
Removed trailing white spaces
2012-09-01 20:54:07 +09:00
Tatsuhiro Tsujikawa
086c5701e1
Updated doc
2012-09-01 20:53:38 +09:00
Tatsuhiro Tsujikawa
ce5c016066
Cleared pre and post download handlers from BitTorrent tracker request
2012-09-01 00:53:30 +09:00
Tatsuhiro Tsujikawa
b336725ca0
Don't check control file existence if isPreLocalFileCheckEnabled() == false
2012-08-31 23:40:32 +09:00
Tatsuhiro Tsujikawa
0bbda43385
Fixed assertion error if --retry-wait is used
...
In CreateRequestCommand, if Request object returned from getRequest()
is still sleeping, CreateRequestCommand pools it back but still holds
its reference. This makes assertion error in
UnknownLengthPieceStroage::hasMissingUnusedPiece() from
AbstractCommand::execute().
2012-08-31 22:31:31 +09:00
Tatsuhiro Tsujikawa
d734ff7d29
Added new file allocation method called 'trunc'
...
--file-allocation option can now take new value 'trunc'. 'trunc' uses
ftruncate() system call or platform-specific counterpart to truncate a
file to a specified length.
2012-08-12 16:52:53 +09:00
Tatsuhiro Tsujikawa
e2fcd6d72c
Use enum to select file allocation method
2012-08-11 23:38:58 +09:00
Tatsuhiro Tsujikawa
8f1049c15f
Fixed assertion in removeRequestGroupIndex()
2012-08-03 00:27:03 +09:00
Tatsuhiro Tsujikawa
2795176d79
Add GID => RequestGroup index for faster access to RequestGroup
2012-07-31 23:55:51 +09:00
Tatsuhiro Tsujikawa
329a17b3f9
Removed tailing whitespaces
2012-07-31 21:26:59 +09:00
Tatsuhiro Tsujikawa
3465906969
Added missing sources to SRCS
2012-07-30 22:31:09 +09:00
Tatsuhiro Tsujikawa
c1ddf34e4b
Specify torrent file explicitly in createRequestGroupForBitTorrent()
2012-07-26 21:20:08 +09:00
Tatsuhiro Tsujikawa
01e1fdaf49
Parse torrent file on the fly if --follow-torrent=mem is given
...
In this changes, Bencode parser in bencode2 is removed and the request
is delegated to BencodeParser.
2012-07-26 21:07:10 +09:00
Tatsuhiro Tsujikawa
7176107414
BencodeParser: fixed parser failure due to the uninitialized variables
2012-07-26 20:42:02 +09:00
Tatsuhiro Tsujikawa
8311d6ef87
Added stream Bencode parser
2012-07-24 23:50:06 +09:00
Tatsuhiro Tsujikawa
9620bb0a6d
Fix off by 1 error in JsonParser::parseUpdate() return value
2012-07-24 23:47:18 +09:00
Tatsuhiro Tsujikawa
2684db766d
Fix Android build
2012-07-24 00:05:18 +09:00
Tatsuhiro Tsujikawa
f6b2c3c080
Rewritten ExpatXmlParser
...
Put common elements in both Xml2XmlParser and ExpatXmlParser in
XmlParser.
2012-07-23 23:41:33 +09:00