2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

To cache resolved hostname:
	* src/AbstractCommand.h, src/AbstractCommand.cc
	(resolveHostname): Put outside #ifdef ENABLE_ASYNC_DNS clause.
	Added dns cache.
	* src/FtpInitiateConnectionCommand.cc
	(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS.
	* src/NameResolver.h, src/NameResolver.cc: Added synchronized
	NameResolver working without ares.
	* src/TorrentRequestInfo.cc
	(execute): Don't cache dns in torrent download.
	* src/HttpInitiateConnectionCommand.cc
	(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS
	* src/DNSCache.h: New class.
	* src/UrlRequestInfo.cc
	(execute): Use dns cache
pull/1/head
Tatsuhiro Tsujikawa 2007-03-28 15:08:22 +00:00
parent 843e641483
commit 24d199632b
31 changed files with 1470 additions and 1098 deletions

View File

@ -1,3 +1,21 @@
2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To cache resolved hostname:
* src/AbstractCommand.h, src/AbstractCommand.cc
(resolveHostname): Put outside #ifdef ENABLE_ASYNC_DNS clause.
Added dns cache.
* src/FtpInitiateConnectionCommand.cc
(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS.
* src/NameResolver.h, src/NameResolver.cc: Added synchronized
NameResolver working without ares.
* src/TorrentRequestInfo.cc
(execute): Don't cache dns in torrent download.
* src/HttpInitiateConnectionCommand.cc
(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS
* src/DNSCache.h: New class.
* src/UrlRequestInfo.cc
(execute): Use dns cache.
2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add the command-line option which disables netrc support:

2
TODO
View File

@ -17,8 +17,6 @@
* Add a version header to .aria2 file to check the compatibiliy.
* Use SharedHandle where it is useful.
* Rewrite Util::countBit
* Add Turkish translation.
* Add the message like "you can resume the transfer by invoking aria2 again" when the download stops.
* Add --bt-timeout command line option.
* Fix DefaultBtProgressInfoFile.cc: save(), load()
* remove blockIndex

5
doc/README.txt Normal file
View File

@ -0,0 +1,5 @@
To produce aria2c.1:
a2x -f manpage aria2c.1.txt
You may have to insert line break before '.sp' in output file.

View File

@ -1,11 +1,11 @@
.\" Title: aria2c
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.70.1 <http://docbook.sf.net/>
.\" Date: 01/28/2007
.\" Generator: DocBook XSL Stylesheets v1.71.0 <http://docbook.sf.net/>
.\" Date: 03/28/2007
.\" Manual:
.\" Source:
.\"
.TH "ARIA2C" "1" "01/28/2007" "" ""
.TH "ARIA2C" "1" "03/28/2007" "" ""
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
@ -27,22 +27,31 @@ aria2 is a utility for downloading files. It has completely new design concept f
Please visit the project web site at http://aria2.sourceforge.net
.sp
.SH "OPTIONS"
.TP 3n
.PP
\-d, \-\-dir=DIR
.RS 3n
The directory to store downloaded file.
.TP 3n
.RE
.PP
\-o, \-\-out=FILE
.RS 3n
The file name for downloaded file.
.TP 3n
.RE
.PP
\-l, \-\-log=LOG
.RS 3n
The file path to store log. If
\fI\-\fR
is specified, log is written to stdout.
.TP 3n
.RE
.PP
\-D, \-\-daemon
.RS 3n
Run as daemon.
.TP 3n
.RE
.PP
\-s, \-\-split=N
.RS 3n
Download a file using
\fIN\fR
connections.
@ -54,40 +63,58 @@ and
\fIN\fR
connections. Default:
\fI1\fR
.TP 3n
.RE
.PP
\-\-retry\-wait=SEC
.RS 3n
Set amount of time in second between requests for errors. Specify a value between
\fI0\fR
and
\fI60\fR. Default:
\fI5\fR
.TP 3n
.RE
.PP
\-t, \-\-timeout=SEC
.RS 3n
Set timeout in second. Default:
\fI60\fR
.TP 3n
.RE
.PP
\-m, \-\-max\-tries=N
.RS 3n
Set number of tries.
\fI0\fR
means unlimited. Default:
\fI5\fR
.TP 3n
.RE
.PP
\-\-http\-proxy=HOST:PORT
.RS 3n
Use HTTP proxy server. This affects to all URLs.
.TP 3n
.RE
.PP
\-\-http\-user=USER
.RS 3n
Set HTTP user. This affects to all URLs.
.TP 3n
.RE
.PP
\-\-http\-passwd=PASSWD
.RS 3n
Set HTTP password. This affects to all URLs.
.TP 3n
.RE
.PP
\-\-http\-proxy\-user=USER
.RS 3n
Set HTTP proxy user. This affects to all URLs
.TP 3n
.RE
.PP
\-\-http\-proxy\-passwd=PASSWD
.RS 3n
Set HTTP proxy password. This affects to all URLs.
.TP 3n
.RE
.PP
\-\-http\-proxy\-method=METHOD
.RS 3n
Set the method to use in proxy request.
\fIMETHOD\fR
is either
@ -95,35 +122,49 @@ is either
or
\fItunnel\fR. Default:
\fItunnel\fR
.TP 3n
.RE
.PP
\-\-http\-auth\-scheme=SCHEME
.RS 3n
Set HTTP authentication scheme. Currently,
\fIbasic\fR
is the only supported scheme. Default:
\fIbasic\fR
.TP 3n
.RE
.PP
\-\-referer=REFERER
.RS 3n
Set Referer. This affects to all URLs.
.TP 3n
.RE
.PP
\-\-ftp\-user=USER
.RS 3n
Set FTP user. This affects to all URLs. Default:
\fIanonymous\fR
.TP 3n
.RE
.PP
\-\-ftp\-passwd=PASSWD
.RS 3n
Set FTP password. This affects to all URLs. Default:
\fIARIA2USER@\fR
.TP 3n
.RE
.PP
\-\-ftp\-type=TYPE
.RS 3n
Set FTP transfer type. TYPE is either
\fIbinary\fR
or
\fIascii\fR. Default:
\fIbinary\fR
.TP 3n
.RE
.PP
\-p, \-\-ftp\-pasv
.RS 3n
Use passive mode in FTP.
.TP 3n
.RE
.PP
\-\-ftp\-via\-http\-proxy=METHOD
.RS 3n
Use HTTP proxy in
\fIFTP\fR.
\fIMETHOD\fR
@ -132,15 +173,19 @@ is either
or
\fItunnel\fR. Default:
\fItunnel\fR
.TP 3n
.RE
.PP
\-\-lowest\-speed\-limit=SPEED
.RS 3n
Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not care lowest speed limit. You can append
\fIK\fR
or
\fIM\fR(1K = 1024, 1M = 1024K). This option does not affect BitTorrent download. Default:
\fI0\fR
.TP 3n
.RE
.PP
\-\-max\-download\-limit=SPEED
.RS 3n
Set max download speed in bytes per sec.
\fI0\fR
means unrestricted. You can append
@ -148,8 +193,10 @@ means unrestricted. You can append
or
\fIM\fR(1K = 1024, 1M = 1024K). Default:
\fI0\fR
.TP 3n
.RE
.PP
\-\-file\-allocation=METHOD
.RS 3n
Specify file allocation method.
\fIMETHOD\fR
is either
@ -161,42 +208,75 @@ doesn't pre\-allocate file space.
\fIprealloc\fR
pre\-allocates file space before download begins. This may take some time depending on the size of file. Default:
\fInone\fR
.TP 3n
.RE
.PP
\-\-allow\-overwrite=true|false
.RS 3n
If this option set to
\fIfalse\fR, aria2 doesn't download a file which already exists in the file system but its corresponding .aria2 file doesn't exist. Default:
\fIfalse\fR
.TP 3n
\-\-check\-integiry=true|false
Check file integiry by validating piece hash. This option makes effect in BitTorrent download and Metalink with chunk checksums. Use this option to redownload a damaged portion of file. You may need to specify
.RE
.PP
\-\-check\-integrity=true|false
.RS 3n
Check file integrity by validating piece hash. This option makes effect in BitTorrent download and Metalink with chunk checksums. Use this option to redownload a damaged portion of file. You may need to specify
\fI\-\-allow\-overwrite=true\fR
option if .aria2 file doesn't exist. Default:
\fIfalse\fR
.TP 3n
.RE
.PP
\-\-realtime\-chunk\-checksum=true|false
.RS 3n
Validate chunk checksum while downloading a file in Metalink mode. This option makes effect in Metalink with chunk checksums. Default:
\fItrue\fR
.TP 3n
.RE
.PP
\-c, \-\-continue
.RS 3n
Continue downloading a partially downloaded file. Use this option to resume a download started by web browsers or another programs which download files sequentially from the beginning. Currently this option is applicable to http(s)/ ftp downloads.
.RE
.PP
\-U, \-\-user\-agent=USER_AGENT
.RS 3n
Set user agent for http(s) downloads.
.RE
.PP
\-n, \-\-no\-netrc
.RS 3n
Disables netrc support.
.RE
.PP
\-T, \-\-torrent\-file=TORRENT_FILE
.RS 3n
The file path to .torrent file.
.TP 3n
.RE
.PP
\-\-follow\-torrent=true|false
.RS 3n
Setting this option to
\fIfalse\fR
prevents aria2 to enter BitTorrent mode even if the filename of downloaded file ends with .torrent. Default:
\fItrue\fR
.TP 3n
.RE
.PP
\-S, \-\-show\-files
.RS 3n
Print file listing of .torrent file and exit.
.TP 3n
.RE
.PP
\-\-direct\-file\-mapping=true|false
.RS 3n
Directly read from and write to each file mentioned in .torrent file. Default:
\fItrue\fR
.TP 3n
.RE
.PP
\-\-listen\-port=PORT
.RS 3n
Set port number to listen to for peer connection.
.TP 3n
.RE
.PP
\-\-max\-upload\-limit=SPEED
.RS 3n
Set max upload speed in bytes per sec.
\fI0\fR
means unrestricted. You can append
@ -204,8 +284,10 @@ means unrestricted. You can append
or
\fIM\fR(1K = 1024, 1M = 1024K). Default:
\fI0\fR
.TP 3n
.RE
.PP
\-\-select\-file=INDEX\&...
.RS 3n
Set file to download by specifing its index. You can know file index through
\fI\-\-show\-files\fR
option. Multiple indexes can be specified by using
@ -217,96 +299,151 @@ to specify rangelike "1\-5".
and
\fI\-\fR
can be used together.
.TP 3n
.RE
.PP
\-\-seed\-time=MINUTES
.RS 3n
Specify seeding time in minutes. See also
\fI\-\-seed\-ratio\fR
option.
.TP 3n
.RE
.PP
\-\-seed\-ratio=RATIO
.RS 3n
Specify share ratio. Seed completed torrents until share ratio reaches
\fIRATIO\fR.
\fI1.0\fR
is encouraged. If
\fI\-\-seed\-time\fR
option is specified along with this option, seeding ends when at least one of the conditions is satisfied.
.TP 3n
.RE
.PP
\-M, \-\-metalink\-file=METALINK_FILE
.RS 3n
The file path to .metalink file.
.TP 3n
.RE
.PP
\-C, \-\-metalink\-servers=NUM_SERVERS
.RS 3n
The number of servers to connect to simultaneously. If more than one connection per server is required, use
\fI\-s\fR
option. Default:
\fI15\fR
.TP 3n
.RE
.PP
\-\-metalink\-version=VERSION
.RS 3n
The version of file to download.
.TP 3n
.RE
.PP
\-\-metalink\-language=LANGUAGE
.RS 3n
The language of file to download.
.TP 3n
.RE
.PP
\-\-metalink\-os=OS
.RS 3n
The operating system the file is targeted.
.TP 3n
.RE
.PP
\-\-metalink\-location=LOCATION
.RS 3n
The location of the prefered server.
.TP 3n
.RE
.PP
\-\-follow\-metalink=true|false
.RS 3n
Setting this option to
\fIfalse\fR
prevents aria2 to enter Metalink mode even if the filename of downloaded file ends with .metalink. Default:
\fItrue\fR
.TP 3n
.RE
.PP
\-v, \-\-version
.RS 3n
Print the version number and exit.
.TP 3n
.RE
.PP
\-h, \-\-help
.RS 3n
Print this message and exit.
.TP 3n
.RE
.PP
URL
.RS 3n
You can specify multiple URLs. All URLs must point to the same file or downloading fails.
.TP 3n
.RE
.PP
FILE
.RS 3n
Specify files in multi\-file torrent to download. Use conjunction with
\fI\-T\fR
option. This arguments are ignored if you specify
\fI\-\-select\-file\fR
option.
.RE
.SH "EXAMPLES"
.TP 3n
.PP
Download a file by 1 connection
.RS 3n
aria2c http://AAA.BBB.CCC/file.zip
.TP 3n
.RE
.PP
Download a file by 2 connections
.RS 3n
aria2c \-s 2 http://AAA.BBB.CCC/file.zip
.TP 3n
.RE
.PP
Download a file by 2 connections, each connects to a different server
.RS 3n
aria2c http://AAA.BBB.CCC/file.zip http://DDD.EEE.FFF/GGG/file.zip
.TP 3n
.RE
.PP
You can mix up different protocols
.RS 3n
aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip
.TP 3n
.RE
.PP
Download a torrent
.RS 3n
aria2c \-o test.torrent http://AAA.BBB.CCC/file.torrent
.TP 3n
.RE
.PP
Download a torrent using local .torrent file
.RS 3n
aria2c \-T test.torrent
.TP 3n
.RE
.PP
Download only selected files
.RS 3n
aria2c \-T test.torrent dir/file1.zip dir/file2.zip
.TP 3n
.RE
.PP
Print file listing of .torrent file
.RS 3n
aria2c \-T test.torrent \-S
.TP 3n
.RE
.PP
Metalink downloading
.RS 3n
aria2c \-\-lowest\-speed\-limit 10K http://AAA.BBB.CCC/file.metalink
.TP 3n
.RE
.PP
Download a file using local .metalink file
.RS 3n
aria2c \-M test.metalink
.TP 3n
.RE
.PP
Metalink downloading with preferences
.RS 3n
aria2c \-M test.metalink \-\-metalink\-version=1.1.1 \-\-metalink\-language=en\-US
.RE
.SH "FILES"
.PP
aria2.conf
.RS 3n
User configuration file. Must be placed under ~/.aria2 directory.
.RE
.SH "REPORTING BUGS"
Report bugs to Tatsuhiro Tsujikawa <t\-tujikawa@users.sourceforge.net>
.sp

View File

@ -140,8 +140,8 @@ OPTIONS
exist.
Default: 'false'
--check-integriy=true|false::
Check file integriy by validating piece hash.
--check-integrity=true|false::
Check file integrity by validating piece hash.
This option makes effect in BitTorrent download
and Metalink with chunk checksums.
Use this option to redownload a damaged portion of
@ -156,6 +156,20 @@ OPTIONS
in Metalink with chunk checksums.
Default: 'true'
-c, --continue::
Continue downloading a partially downloaded
file. Use this option to resume a download started by web browsers or another programs
which download files sequentially from the beginning.
Currently this option is applicable to http(s)/
ftp downloads.
-U, --user-agent=USER_AGENT::
Set user agent for http(s) downloads.
-n, --no-netrc::
Disables netrc support.
-T, --torrent-file=TORRENT_FILE::
The file path to .torrent file.
@ -270,6 +284,11 @@ EXAMPLES
Metalink downloading with preferences::
aria2c -M test.metalink --metalink-version=1.1.1 --metalink-language=en-US
FILES
-----
aria2.conf::
User configuration file. Must be placed under ~/.aria2 directory.
REPORTING BUGS
--------------
Report bugs to Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

7
doc/makeman Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
a2x -f manpage aria2c.1.txt
sed 's/\(.\)\.sp/\1\n\.sp/g' aria2c.1 > aria2c.1.tmp
mv aria2c.1.tmp aria2c.1

View File

@ -9,7 +9,7 @@
# General Public License and is *not* in the public domain.
PACKAGE = aria2c
VERSION = 0.10.1
VERSION = 0.10.2
SHELL = /bin/sh

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://aria2.sourceforge.net/\n"
"POT-Creation-Date: 2007-01-29 00:10+0900\n"
"POT-Creation-Date: 2007-03-29 00:07+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -135,217 +135,221 @@ msgstr ""
msgid "The segment file was loaded successfully."
msgstr ""
#: src/message.h:68
msgid "Timeout."
#: src/message.h:67
msgid "No URI to download. Download aborted."
msgstr ""
#: src/message.h:69
msgid "Invalid chunk size."
msgid "Timeout."
msgstr ""
#: src/message.h:70
msgid "Invalid chunk size."
msgstr ""
#: src/message.h:71
#, c-format
msgid "Too large chunk. size=%d"
msgstr ""
#: src/message.h:71
#: src/message.h:72
msgid "Invalid header."
msgstr ""
#: src/message.h:72
#: src/message.h:73
msgid "Invalid response."
msgstr ""
#: src/message.h:73
#: src/message.h:74
msgid "No header found."
msgstr ""
#: src/message.h:74
#: src/message.h:75
msgid "No status header."
msgstr ""
#: src/message.h:75
#: src/message.h:76
msgid "Proxy connection failed."
msgstr ""
#: src/message.h:76
#: src/message.h:77
msgid "Connection failed."
msgstr ""
#: src/message.h:77
#: src/message.h:78
#, c-format
msgid ""
"The requested filename and the previously registered one are not same. %s != "
"%s"
msgstr ""
#: src/message.h:78
#: src/message.h:79
#, c-format
msgid "The response status is not successful. status=%d"
msgstr ""
#: src/message.h:79
#: src/message.h:80
#, c-format
msgid "Too large file size. size=%lld"
msgstr ""
#: src/message.h:80
#: src/message.h:81
#, c-format
msgid "Transfer encoding %s is not supported."
msgstr ""
#: src/message.h:81
#: src/message.h:82
msgid "SSL initialization failed."
msgstr ""
#: src/message.h:82
#: src/message.h:83
#, c-format
msgid "Size mismatch %lld != %lld"
msgstr ""
#: src/message.h:83
#: src/message.h:84
msgid "Authorization failed."
msgstr ""
#: src/message.h:84
#: src/message.h:85
msgid "Got EOF from the server."
msgstr ""
#: src/message.h:85
#: src/message.h:86
msgid "Got EOF from peer."
msgstr ""
#: src/message.h:86
#: src/message.h:87
msgid "Malformed meta info."
msgstr ""
#: src/message.h:88
#, c-format
msgid "Failed to open the file %s, cause: %s"
msgstr ""
#: src/message.h:89
#, c-format
msgid "Failed to write into the file %s, cause: %s"
msgid "Failed to open the file %s, cause: %s"
msgstr ""
#: src/message.h:90
#, c-format
msgid "Failed to read from the file %s, cause: %s"
msgid "Failed to write into the file %s, cause: %s"
msgstr ""
#: src/message.h:91
#, c-format
msgid "Failed to calculate SHA1 digest of or a part of the file %s, cause: %s"
msgid "Failed to read from the file %s, cause: %s"
msgstr ""
#: src/message.h:92
#, c-format
msgid "Failed to seek the file %s, cause: %s"
msgid "Failed to calculate SHA1 digest of or a part of the file %s, cause: %s"
msgstr ""
#: src/message.h:93
#, c-format
msgid "The offset is out of range, offset=%lld"
msgid "Failed to seek the file %s, cause: %s"
msgstr ""
#: src/message.h:94
#, c-format
msgid "%s is not a directory."
msgid "The offset is out of range, offset=%lld"
msgstr ""
#: src/message.h:95
#, c-format
msgid "Failed to make the directory %s, cause: %s"
msgid "%s is not a directory."
msgstr ""
#: src/message.h:96
#, c-format
msgid "Failed to open the segment file %s, cause: %s"
msgid "Failed to make the directory %s, cause: %s"
msgstr ""
#: src/message.h:97
#, c-format
msgid "Failed to write into the segment file %s, cause: %s"
msgid "Failed to open the segment file %s, cause: %s"
msgstr ""
#: src/message.h:98
#, c-format
msgid "Failed to read from the segment file %s, cause: %s"
msgid "Failed to write into the segment file %s, cause: %s"
msgstr ""
#: src/message.h:100
#: src/message.h:99
#, c-format
msgid "Failed to open a socket, cause: %s"
msgid "Failed to read from the segment file %s, cause: %s"
msgstr ""
#: src/message.h:101
#, c-format
msgid "Failed to set a socket option, cause: %s"
msgid "Failed to open a socket, cause: %s"
msgstr ""
#: src/message.h:102
#, c-format
msgid "Failed to bind a socket, cause: %s"
msgid "Failed to set a socket option, cause: %s"
msgstr ""
#: src/message.h:103
#, c-format
msgid "Failed to listen to a socket, cause: %s"
msgid "Failed to bind a socket, cause: %s"
msgstr ""
#: src/message.h:104
#, c-format
msgid "Failed to accept a peer connection, cause: %s"
msgid "Failed to listen to a socket, cause: %s"
msgstr ""
#: src/message.h:105
#, c-format
msgid "Failed to get the name of socket, cause: %s"
msgid "Failed to accept a peer connection, cause: %s"
msgstr ""
#: src/message.h:106
#, c-format
msgid "Failed to get the name of connected peer, cause: %s"
msgid "Failed to get the name of socket, cause: %s"
msgstr ""
#: src/message.h:107
#, c-format
msgid "Failed to resolve the hostname %s, cause: %s"
msgid "Failed to get the name of connected peer, cause: %s"
msgstr ""
#: src/message.h:108
#, c-format
msgid "Failed to connect to the host %s, cause: %s"
msgid "Failed to resolve the hostname %s, cause: %s"
msgstr ""
#: src/message.h:109
#, c-format
msgid "Failed to check whether the socket is writable, cause: %s"
msgid "Failed to connect to the host %s, cause: %s"
msgstr ""
#: src/message.h:110
#, c-format
msgid "Failed to check whether the socket is readable, cause: %s"
msgid "Failed to check whether the socket is writable, cause: %s"
msgstr ""
#: src/message.h:111
#, c-format
msgid "Failed to send data, cause: %s"
msgid "Failed to check whether the socket is readable, cause: %s"
msgstr ""
#: src/message.h:112
#, c-format
msgid "Failed to receive data, cause: %s"
msgid "Failed to send data, cause: %s"
msgstr ""
#: src/message.h:113
#, c-format
msgid "Failed to peek data, cause: %s"
msgid "Failed to receive data, cause: %s"
msgstr ""
#: src/message.h:114
#, c-format
msgid "Failed to peek data, cause: %s"
msgstr ""
#: src/message.h:115
#, c-format
msgid ""
"File %s exists, but %s does not exist. The download was canceled in order to "
"prevent your file from being truncated to 0. If you are sure to download "
@ -353,17 +357,17 @@ msgid ""
"restart aria2."
msgstr ""
#: src/message.h:115
#: src/message.h:116
#, c-format
msgid "Invalid payload size for %s, size=%d. It should be %d."
msgstr ""
#: src/message.h:116
#: src/message.h:117
#, c-format
msgid "Invalid ID=%d for %s. It should be %d."
msgstr ""
#: src/message.h:117
#: src/message.h:118
#, c-format
msgid ""
"Chunk checksum validation failed. checksumIndex=%d, offset=%lld, length=%d, "
@ -375,20 +379,20 @@ msgstr ""
msgid "Errors occurred while binding port.\n"
msgstr ""
#: src/TorrentRequestInfo.cc:120
#: src/TorrentRequestInfo.cc:126
msgid "Files:"
msgstr ""
#: src/UrlRequestInfo.cc:110
#: src/UrlRequestInfo.cc:117
#, c-format
msgid "Unrecognized URL or unsupported protocol: %s\n"
msgstr ""
#: src/main.cc:79
#: src/main.cc:81
msgid " version "
msgstr ""
#: src/main.cc:86
#: src/main.cc:88
msgid ""
"This program is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
@ -406,50 +410,50 @@ msgid ""
"USA\n"
msgstr ""
#: src/main.cc:100
#: src/main.cc:102
#, c-format
msgid "Contact Info: %s\n"
msgstr ""
#: src/main.cc:106
#: src/main.cc:108
#, c-format
msgid "Usage: %s [options] URL ...\n"
msgstr ""
#: src/main.cc:108
#: src/main.cc:110
#, c-format
msgid " %s [options] -T TORRENT_FILE FILE ...\n"
msgstr ""
#: src/main.cc:111
#: src/main.cc:113
#, c-format
msgid " %s [options] -M METALINK_FILE\n"
msgstr ""
#: src/main.cc:114
#: src/main.cc:116
msgid "Options:"
msgstr ""
#: src/main.cc:115
#: src/main.cc:117
msgid " -d, --dir=DIR The directory to store downloaded file."
msgstr ""
#: src/main.cc:116
#: src/main.cc:118
msgid " -o, --out=FILE The file name for downloaded file."
msgstr ""
#: src/main.cc:117
#: src/main.cc:119
msgid ""
" -l, --log=LOG The file path to store log. If '-' is "
"specified,\n"
" log is written to stdout."
msgstr ""
#: src/main.cc:119
#: src/main.cc:121
msgid " -D, --daemon Run as daemon."
msgstr ""
#: src/main.cc:120
#: src/main.cc:122
msgid ""
" -s, --split=N Download a file using N connections. N must "
"be\n"
@ -460,57 +464,57 @@ msgid ""
" Default: 1"
msgstr ""
#: src/main.cc:125
#: src/main.cc:127
msgid ""
" --retry-wait=SEC Set amount of time in second between requests\n"
" for errors. Specify a value between 0 and 60.\n"
" Default: 5"
msgstr ""
#: src/main.cc:128
#: src/main.cc:130
msgid " -t, --timeout=SEC Set timeout in second. Default: 60"
msgstr ""
#: src/main.cc:129
#: src/main.cc:131
msgid ""
" -m, --max-tries=N Set number of tries. 0 means unlimited.\n"
" Default: 5"
msgstr ""
#: src/main.cc:137
#: src/main.cc:139
msgid ""
" --http-proxy=HOST:PORT Use HTTP proxy server. This affects to all\n"
" URLs."
msgstr ""
#: src/main.cc:139
#: src/main.cc:141
msgid " --http-user=USER Set HTTP user. This affects to all URLs."
msgstr ""
#: src/main.cc:140
#: src/main.cc:142
msgid ""
" --http-passwd=PASSWD Set HTTP password. This affects to all URLs."
msgstr ""
#: src/main.cc:141
#: src/main.cc:143
msgid ""
" --http-proxy-user=USER Set HTTP proxy user. This affects to all URLs"
msgstr ""
#: src/main.cc:142
#: src/main.cc:144
msgid ""
" --http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all "
"URLs."
msgstr ""
#: src/main.cc:143
#: src/main.cc:145
msgid ""
" --http-proxy-method=METHOD Set the method to use in proxy request.\n"
" METHOD is either 'get' or 'tunnel'.\n"
" Default: tunnel"
msgstr ""
#: src/main.cc:146
#: src/main.cc:148
msgid ""
" --http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, "
"basic\n"
@ -518,23 +522,23 @@ msgid ""
" Default: basic"
msgstr ""
#: src/main.cc:149
#: src/main.cc:151
msgid " --referer=REFERER Set Referer. This affects to all URLs."
msgstr ""
#: src/main.cc:150
#: src/main.cc:152
msgid ""
" --ftp-user=USER Set FTP user. This affects to all URLs.\n"
" Default: anonymous"
msgstr ""
#: src/main.cc:152
#: src/main.cc:154
msgid ""
" --ftp-passwd=PASSWD Set FTP password. This affects to all URLs.\n"
" Default: ARIA2USER@"
msgstr ""
#: src/main.cc:154
#: src/main.cc:156
msgid ""
" --ftp-type=TYPE Set FTP transfer type. TYPE is either "
"'binary'\n"
@ -542,11 +546,11 @@ msgid ""
" Default: binary"
msgstr ""
#: src/main.cc:157
#: src/main.cc:159
msgid " -p, --ftp-pasv Use passive mode in FTP."
msgstr ""
#: src/main.cc:158
#: src/main.cc:160
msgid ""
" --ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either 'get' "
"or\n"
@ -554,7 +558,7 @@ msgid ""
" Default: tunnel"
msgstr ""
#: src/main.cc:161
#: src/main.cc:163
msgid ""
" --lowest-speed-limit=SPEED Close connection if download speed is lower "
"than\n"
@ -567,7 +571,7 @@ msgid ""
" Default: 0"
msgstr ""
#: src/main.cc:168
#: src/main.cc:170
msgid ""
" --max-download-limit=SPEED Set max download speed in bytes per sec.\n"
" 0 means unrestricted.\n"
@ -575,7 +579,7 @@ msgid ""
" Default: 0"
msgstr ""
#: src/main.cc:172
#: src/main.cc:174
msgid ""
" --file-allocation=METHOD Specify file allocation method. METHOD is "
"either\n"
@ -590,7 +594,7 @@ msgid ""
" Default: none"
msgstr ""
#: src/main.cc:179
#: src/main.cc:181
msgid ""
" --allow-overwrite=true|false If this option set to false, aria2 doesn't\n"
" download a file which already exists in the "
@ -601,9 +605,10 @@ msgid ""
" Default: false"
msgstr ""
#: src/main.cc:184
#: src/main.cc:186
msgid ""
" --check-integiry=true|false Check file integiry by validating piece hash.\n"
" --check-integrity=true|false Check file integrity by validating piece "
"hash.\n"
" This option makes effect in BitTorrent "
"download\n"
" and Metalink with chunk checksums.\n"
@ -616,7 +621,7 @@ msgid ""
" Default: false"
msgstr ""
#: src/main.cc:192
#: src/main.cc:194
msgid ""
" --realtime-chunk-checksum=true|false Validate chunk checksum while "
"downloading\n"
@ -626,11 +631,31 @@ msgid ""
" Default: true"
msgstr ""
#: src/main.cc:197
#: src/main.cc:198
msgid ""
" -c, --continue Continue downloading a partially downloaded\n"
" file. Use this option to resume a download "
"started\n"
" by web browsers or another programs\n"
" which download files sequentially from the\n"
" beginning. Currently this option is applicable "
"to\n"
" http(s)/ftp downloads."
msgstr ""
#: src/main.cc:204
msgid " -U, --user-agent=USER_AGENT Set user agent for http(s) downloads."
msgstr ""
#: src/main.cc:205
msgid " -n, --no-netrc Disables netrc support."
msgstr ""
#: src/main.cc:207
msgid " -T, --torrent-file=TORRENT_FILE The file path to .torrent file."
msgstr ""
#: src/main.cc:198
#: src/main.cc:208
msgid ""
" --follow-torrent=true|false Setting this option to false prevents aria2 "
"to\n"
@ -639,25 +664,25 @@ msgid ""
" Default: true"
msgstr ""
#: src/main.cc:202
#: src/main.cc:212
msgid ""
" -S, --show-files Print file listing of .torrent file and exit."
msgstr ""
#: src/main.cc:203
#: src/main.cc:213
msgid ""
" --direct-file-mapping=true|false Directly read from and write to each file\n"
" mentioned in .torrent file.\n"
" Default: true"
msgstr ""
#: src/main.cc:206
#: src/main.cc:216
msgid ""
" --listen-port=PORT Set port number to listen to for peer "
"connection."
msgstr ""
#: src/main.cc:207
#: src/main.cc:217
msgid ""
" --max-upload-limit=SPEED Set max upload speed in bytes per sec.\n"
" 0 means unrestricted.\n"
@ -665,7 +690,7 @@ msgid ""
" Default: 0"
msgstr ""
#: src/main.cc:211
#: src/main.cc:221
msgid ""
" --select-file=INDEX... Set file to download by specifing its index.\n"
" You can know file index through --show-files\n"
@ -677,13 +702,13 @@ msgid ""
" ',' and '-' can be used together."
msgstr ""
#: src/main.cc:217
#: src/main.cc:227
msgid ""
" --seed-time=MINUTES Specify seeding time in minutes. See also\n"
" --seed-ratio option."
msgstr ""
#: src/main.cc:219
#: src/main.cc:229
msgid ""
" --seed-ratio=RATIO Specify share ratio. Seed completed torrents "
"until\n"
@ -694,11 +719,11 @@ msgid ""
" the conditions is satisfied."
msgstr ""
#: src/main.cc:226
#: src/main.cc:236
msgid " -M, --metalink-file=METALINK_FILE The file path to .metalink file."
msgstr ""
#: src/main.cc:227
#: src/main.cc:237
msgid ""
" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
" simultaneously. If more than one connection "
@ -707,24 +732,24 @@ msgid ""
" Default: 15"
msgstr ""
#: src/main.cc:231
#: src/main.cc:241
msgid " --metalink-version=VERSION The version of file to download."
msgstr ""
#: src/main.cc:232
#: src/main.cc:242
msgid " --metalink-language=LANGUAGE The language of file to download."
msgstr ""
#: src/main.cc:233
#: src/main.cc:243
msgid ""
" --metalink-os=OS The operating system the file is targeted."
msgstr ""
#: src/main.cc:234
#: src/main.cc:244
msgid " --metalink-location=LOCATION The location of the prefered server."
msgstr ""
#: src/main.cc:235
#: src/main.cc:245
msgid ""
" --follow-metalink=true|false Setting this option to false prevents aria2 "
"to\n"
@ -733,195 +758,99 @@ msgid ""
" Default: true"
msgstr ""
#: src/main.cc:240
#: src/main.cc:250
msgid " -v, --version Print the version number and exit."
msgstr ""
#: src/main.cc:241
#: src/main.cc:251
msgid " -h, --help Print this message and exit."
msgstr ""
#: src/main.cc:244
#: src/main.cc:254
msgid ""
" You can specify multiple URLs. All URLs must point to the same file\n"
" or downloading fails."
msgstr ""
#: src/main.cc:249
#: src/main.cc:259
msgid ""
" Specify files in multi-file torrent to download. Use conjunction with\n"
" -T option. This arguments are ignored if you specify --select-file option."
msgstr ""
#: src/main.cc:253
#: src/main.cc:263
msgid "Examples:"
msgstr ""
#: src/main.cc:254
#: src/main.cc:264
msgid " Download a file by 1 connection:"
msgstr ""
#: src/main.cc:256
#: src/main.cc:266
msgid " Download a file by 2 connections:"
msgstr ""
#: src/main.cc:258
#: src/main.cc:268
msgid " Download a file by 2 connections, each connects to a different server:"
msgstr ""
#: src/main.cc:260
#: src/main.cc:270
msgid " You can mix up different protocols:"
msgstr ""
#: src/main.cc:264
#: src/main.cc:274
msgid " Download a torrent:"
msgstr ""
#: src/main.cc:266
#: src/main.cc:276
msgid " Download a torrent using local .torrent file:"
msgstr ""
#: src/main.cc:268
#: src/main.cc:278
msgid " Download only selected files:"
msgstr ""
#: src/main.cc:270
#: src/main.cc:280
msgid " Print file listing of .torrent file:"
msgstr ""
#: src/main.cc:275
#: src/main.cc:285
msgid " Metalink downloading:"
msgstr ""
#: src/main.cc:277
#: src/main.cc:287
msgid " Download a file using local .metalink file:"
msgstr ""
#: src/main.cc:279
#: src/main.cc:289
msgid " Metalink downloading with preferences:"
msgstr ""
#: src/main.cc:283
#: src/main.cc:293
#, c-format
msgid "Report bugs to %s"
msgstr ""
#: src/main.cc:432
msgid "unrecognized proxy format"
msgstr ""
#: src/main.cc:458
msgid "Currently, supported authentication scheme is basic."
msgstr ""
#: src/main.cc:467
msgid "retry-wait must be between 0 and 60."
msgstr ""
#: src/main.cc:483
msgid "ftp-type must be either 'binary' or 'ascii'."
msgstr ""
#: src/main.cc:491
msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
msgstr ""
#: src/main.cc:498
msgid "min-segment-size invalid"
msgstr ""
#: src/main.cc:508
msgid "http-proxy-method must be either 'get' or 'tunnel'."
msgstr ""
#: src/main.cc:515
msgid "listen-port must be between 1024 and 65535."
msgstr ""
#: src/main.cc:527
msgid "follow-torrent must be either 'true' or 'false'."
msgstr ""
#: src/main.cc:540
msgid "direct-file-mapping must be either 'true' or 'false'."
msgstr ""
#: src/main.cc:550
msgid "seed-time must be greater than or equal to 0."
msgstr ""
#: src/main.cc:559
msgid "seed-ratio must be greater than or equal to 0.0."
msgstr ""
#: src/main.cc:568
msgid "max-upload-limit must be greater than or equal to 0"
msgstr ""
#: src/main.cc:589
msgid "follow-metalink must be either 'true' or 'false'."
msgstr ""
#: src/main.cc:599
msgid "lowest-speed-limit must be greater than or equal to 0"
msgstr ""
#: src/main.cc:608
msgid "max-download-limit must be greater than or equal to 0"
msgstr ""
#: src/main.cc:620
msgid "allow-overwrite must be either 'true' or 'false'."
msgstr ""
#: src/main.cc:631
msgid "check-integrity must be be either 'true' or 'false'."
msgstr ""
#: src/main.cc:642
msgid "realtime-chunk-checksum must be either 'true' or 'false'."
msgstr ""
#: src/main.cc:669
msgid "split must be between 1 and 5."
msgstr ""
#: src/main.cc:680
msgid "timeout must be between 1 and 600"
msgstr ""
#: src/main.cc:688
msgid "max-tries invalid"
msgstr ""
#: src/main.cc:709
msgid "metalink-servers must be greater than 0."
msgstr ""
#: src/main.cc:720
msgid "file-allocation must be either 'none' or 'prealloc'."
msgstr ""
#: src/main.cc:737
#: src/main.cc:613
msgid "specify at least one URL"
msgstr ""
#: src/main.cc:743
#: src/main.cc:619
msgid "daemon failed"
msgstr ""
#: src/main.cc:813
#: src/main.cc:704
msgid ""
"Now verifying checksum.\n"
"This may take some time depending on your PC environment and the size of "
"file."
msgstr ""
#: src/main.cc:817
#: src/main.cc:708
msgid "checksum OK."
msgstr ""
#: src/main.cc:820
#: src/main.cc:711
msgid "checksum ERROR."
msgstr ""

BIN
po/de.gmo

Binary file not shown.

464
po/de.po

File diff suppressed because it is too large Load Diff

BIN
po/ja.gmo

Binary file not shown.

450
po/ja.po

File diff suppressed because it is too large Load Diff

BIN
po/ru.gmo

Binary file not shown.

460
po/ru.po
View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ru\n"
"Report-Msgid-Bugs-To: http://aria2.sourceforge.net/\n"
"POT-Creation-Date: 2007-01-29 00:10+0900\n"
"POT-Creation-Date: 2007-03-29 00:07+0900\n"
"PO-Revision-Date: 2006-07-28 18:04+0600\n"
"Last-Translator: Azamat H. Hackimov <azamat.hackimov@gmail.com>\n"
"Language-Team: <ru@li.org>\n"
@ -150,216 +150,221 @@ msgstr "Загрузка сегмента файл %sа"
msgid "The segment file was loaded successfully."
msgstr "Сегмент файла успешно загружен."
#: src/message.h:68
#: src/message.h:67
#, fuzzy
msgid "No URI to download. Download aborted."
msgstr "CUID#%d - Скачивание отменено."
#: src/message.h:69
msgid "Timeout."
msgstr "Таймаут."
#: src/message.h:69
#: src/message.h:70
msgid "Invalid chunk size."
msgstr "Неверный размер куска."
#: src/message.h:70
#: src/message.h:71
#, c-format
msgid "Too large chunk. size=%d"
msgstr "Слишком большой кусок. размер=%d"
#: src/message.h:71
#: src/message.h:72
msgid "Invalid header."
msgstr "Неверный заголовок."
#: src/message.h:72
#: src/message.h:73
msgid "Invalid response."
msgstr "Неверный ответ."
#: src/message.h:73
#: src/message.h:74
msgid "No header found."
msgstr "Не найден заголовок."
#: src/message.h:74
#: src/message.h:75
msgid "No status header."
msgstr "Нет статуса заголовка."
#: src/message.h:75
#: src/message.h:76
msgid "Proxy connection failed."
msgstr "Ошибка подключения к прокси."
#: src/message.h:76
#: src/message.h:77
msgid "Connection failed."
msgstr "Ошибка подключения."
#: src/message.h:77
#: src/message.h:78
#, c-format
msgid ""
"The requested filename and the previously registered one are not same. %s != "
"%s"
msgstr "Запрашиваемый файл и ранее зарегистрированный не идентичны. %s != %s"
#: src/message.h:78
#: src/message.h:79
#, c-format
msgid "The response status is not successful. status=%d"
msgstr "Статус ответа - незавершенный. статус=%d"
#: src/message.h:79
#: src/message.h:80
#, c-format
msgid "Too large file size. size=%lld"
msgstr "Слишком большой размер файла. размер=%lld"
#: src/message.h:80
#: src/message.h:81
#, c-format
msgid "Transfer encoding %s is not supported."
msgstr "Кодировка передачи %s не поддерживается."
#: src/message.h:81
#: src/message.h:82
msgid "SSL initialization failed."
msgstr "Ошибка инициализации SSL."
#: src/message.h:82
#: src/message.h:83
#, c-format
msgid "Size mismatch %lld != %lld"
msgstr "Несовпадение размера %lld != %lld"
#: src/message.h:83
#: src/message.h:84
msgid "Authorization failed."
msgstr "Ошибка авторизации."
#: src/message.h:84
#: src/message.h:85
msgid "Got EOF from the server."
msgstr "От сервера получен EOF."
#: src/message.h:85
#: src/message.h:86
msgid "Got EOF from peer."
msgstr "От точки получен EOF."
#: src/message.h:86
#: src/message.h:87
msgid "Malformed meta info."
msgstr "Неверные метаданные."
#: src/message.h:88
#: src/message.h:89
#, c-format
msgid "Failed to open the file %s, cause: %s"
msgstr "Ошибка открытия файл %s: %s"
#: src/message.h:89
#: src/message.h:90
#, c-format
msgid "Failed to write into the file %s, cause: %s"
msgstr "Ошибка записи в файл %s: %s"
#: src/message.h:90
#: src/message.h:91
#, c-format
msgid "Failed to read from the file %s, cause: %s"
msgstr "Ошибка чтения из файла %s: %s"
#: src/message.h:91
#: src/message.h:92
#, c-format
msgid "Failed to calculate SHA1 digest of or a part of the file %s, cause: %s"
msgstr "Ошибка подсчета дайджеста SHA1 файла %s или его части: %s"
#: src/message.h:92
#: src/message.h:93
#, c-format
msgid "Failed to seek the file %s, cause: %s"
msgstr "Ошибка позиционирования в файле %s: %s"
#: src/message.h:93
#: src/message.h:94
#, c-format
msgid "The offset is out of range, offset=%lld"
msgstr "Вне допустимого диапазона, диапазон=%lld"
#: src/message.h:94
#: src/message.h:95
#, c-format
msgid "%s is not a directory."
msgstr "%s не является каталогом."
#: src/message.h:95
#: src/message.h:96
#, c-format
msgid "Failed to make the directory %s, cause: %s"
msgstr "Ошибка создания каталога %s: %s"
#: src/message.h:96
#: src/message.h:97
#, c-format
msgid "Failed to open the segment file %s, cause: %s"
msgstr "Ошибка открытия сегмента файла %s: %s"
#: src/message.h:97
#: src/message.h:98
#, c-format
msgid "Failed to write into the segment file %s, cause: %s"
msgstr "Ошибка записи сегмента файла %s: %s"
#: src/message.h:98
#: src/message.h:99
#, c-format
msgid "Failed to read from the segment file %s, cause: %s"
msgstr "Ошибка чтения из сегмента файла %s: %s"
#: src/message.h:100
#: src/message.h:101
#, c-format
msgid "Failed to open a socket, cause: %s"
msgstr "Ошибка открытия сокета: %s"
#: src/message.h:101
#: src/message.h:102
#, c-format
msgid "Failed to set a socket option, cause: %s"
msgstr "Ошибка установки настроек для сокета: %s"
#: src/message.h:102
#: src/message.h:103
#, c-format
msgid "Failed to bind a socket, cause: %s"
msgstr "Ошибка инициализации сокета: %s"
#: src/message.h:103
#: src/message.h:104
#, c-format
msgid "Failed to listen to a socket, cause: %s"
msgstr "Ошибка прослушивания сокета: %s"
#: src/message.h:104
#: src/message.h:105
#, c-format
msgid "Failed to accept a peer connection, cause: %s"
msgstr "Ошибка принятия подлючения от узла: %s"
#: src/message.h:105
#: src/message.h:106
#, c-format
msgid "Failed to get the name of socket, cause: %s"
msgstr "Ошибка получения имени сокета: %s"
#: src/message.h:106
#: src/message.h:107
#, c-format
msgid "Failed to get the name of connected peer, cause: %s"
msgstr "Ошибка получения имени подключенной точки: %s"
#: src/message.h:107
#: src/message.h:108
#, c-format
msgid "Failed to resolve the hostname %s, cause: %s"
msgstr "Ошибка преобразования имени узла %s: %s"
#: src/message.h:108
#: src/message.h:109
#, c-format
msgid "Failed to connect to the host %s, cause: %s"
msgstr "Ошибка подключения к узлу %s: %s"
#: src/message.h:109
#: src/message.h:110
#, c-format
msgid "Failed to check whether the socket is writable, cause: %s"
msgstr "Ошибка проверки сокета на запись: %s"
#: src/message.h:110
#: src/message.h:111
#, c-format
msgid "Failed to check whether the socket is readable, cause: %s"
msgstr "Ошибка проверки сокета на чтение: %s"
#: src/message.h:111
#: src/message.h:112
#, c-format
msgid "Failed to send data, cause: %s"
msgstr "Ошибка отправки данных: %s"
#: src/message.h:112
#: src/message.h:113
#, c-format
msgid "Failed to receive data, cause: %s"
msgstr "Ошибка получения данных: %s"
#: src/message.h:113
#: src/message.h:114
#, c-format
msgid "Failed to peek data, cause: %s"
msgstr "Ошибка запроса данных: %s"
#: src/message.h:114
#: src/message.h:115
#, c-format
msgid ""
"File %s exists, but %s does not exist. The download was canceled in order to "
@ -368,17 +373,17 @@ msgid ""
"restart aria2."
msgstr ""
#: src/message.h:115
#: src/message.h:116
#, c-format
msgid "Invalid payload size for %s, size=%d. It should be %d."
msgstr ""
#: src/message.h:116
#: src/message.h:117
#, c-format
msgid "Invalid ID=%d for %s. It should be %d."
msgstr ""
#: src/message.h:117
#: src/message.h:118
#, c-format
msgid ""
"Chunk checksum validation failed. checksumIndex=%d, offset=%lld, length=%d, "
@ -390,20 +395,20 @@ msgstr ""
msgid "Errors occurred while binding port.\n"
msgstr "Ошибка при открытии порта.\n"
#: src/TorrentRequestInfo.cc:120
#: src/TorrentRequestInfo.cc:126
msgid "Files:"
msgstr "Файлы:"
#: src/UrlRequestInfo.cc:110
#: src/UrlRequestInfo.cc:117
#, c-format
msgid "Unrecognized URL or unsupported protocol: %s\n"
msgstr "Неправильный URL или неподдерживаемый протокол: %s\n"
#: src/main.cc:79
#: src/main.cc:81
msgid " version "
msgstr " версия "
#: src/main.cc:86
#: src/main.cc:88
#, fuzzy
msgid ""
"This program is free software; you can redistribute it and/or modify\n"
@ -435,39 +440,39 @@ msgstr ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
#: src/main.cc:100
#: src/main.cc:102
#, c-format
msgid "Contact Info: %s\n"
msgstr "Связь с автором: %s\n"
#: src/main.cc:106
#: src/main.cc:108
#, c-format
msgid "Usage: %s [options] URL ...\n"
msgstr "Использование: %s [параметры] URL ...\n"
#: src/main.cc:108
#: src/main.cc:110
#, c-format
msgid " %s [options] -T TORRENT_FILE FILE ...\n"
msgstr " %s [параметры] -T TORRENT_FILE FILE ...\n"
#: src/main.cc:111
#: src/main.cc:113
#, c-format
msgid " %s [options] -M METALINK_FILE\n"
msgstr " %s [параметры] -M METALINK_FILE\n"
#: src/main.cc:114
#: src/main.cc:116
msgid "Options:"
msgstr "Параметры:"
#: src/main.cc:115
#: src/main.cc:117
msgid " -d, --dir=DIR The directory to store downloaded file."
msgstr " -d, --dir=DIR Каталог для сохранения скачанных файлов."
#: src/main.cc:116
#: src/main.cc:118
msgid " -o, --out=FILE The file name for downloaded file."
msgstr " -o, --out=FILE Имя файла для скачанного файла."
#: src/main.cc:117
#: src/main.cc:119
msgid ""
" -l, --log=LOG The file path to store log. If '-' is "
"specified,\n"
@ -476,11 +481,11 @@ msgstr ""
" -l, --log=LOG Имя файла для логов. Если указано \"-\",\n"
" логи будут выведены в stdout."
#: src/main.cc:119
#: src/main.cc:121
msgid " -D, --daemon Run as daemon."
msgstr " -D, --daemon Запустить в качестве демона."
#: src/main.cc:120
#: src/main.cc:122
#, fuzzy
msgid ""
" -s, --split=N Download a file using N connections. N must "
@ -498,7 +503,7 @@ msgstr ""
" Следуя этому, aria2 соединяется к каждому URL\n"
" используя N соединений."
#: src/main.cc:125
#: src/main.cc:127
msgid ""
" --retry-wait=SEC Set amount of time in second between requests\n"
" for errors. Specify a value between 0 and 60.\n"
@ -509,12 +514,12 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:128
#: src/main.cc:130
msgid " -t, --timeout=SEC Set timeout in second. Default: 60"
msgstr ""
" -t, --timeout=SEC Установить таймаут в секундах. По умолчанию: 60"
#: src/main.cc:129
#: src/main.cc:131
msgid ""
" -m, --max-tries=N Set number of tries. 0 means unlimited.\n"
" Default: 5"
@ -522,7 +527,7 @@ msgstr ""
" -m, --max-tries=N Установить число попыток. 0 означает\n"
" неограниченное число. По умолчанию: 5"
#: src/main.cc:137
#: src/main.cc:139
msgid ""
" --http-proxy=HOST:PORT Use HTTP proxy server. This affects to all\n"
" URLs."
@ -531,27 +536,27 @@ msgstr ""
"на\n"
" все URL."
#: src/main.cc:139
#: src/main.cc:141
msgid " --http-user=USER Set HTTP user. This affects to all URLs."
msgstr ""
" --http-user=USER Установить пользователя для HTTP. Это влияет "
"на все URL."
#: src/main.cc:140
#: src/main.cc:142
msgid ""
" --http-passwd=PASSWD Set HTTP password. This affects to all URLs."
msgstr ""
" --http-passwd=PASSWD Установить пароль для HTTP. Это влияет на все "
"URL."
#: src/main.cc:141
#: src/main.cc:143
msgid ""
" --http-proxy-user=USER Set HTTP proxy user. This affects to all URLs"
msgstr ""
" --http-proxy-user=USER Установить пользователя для прокси HTTP. Это "
"влияет на все URL."
#: src/main.cc:142
#: src/main.cc:144
msgid ""
" --http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all "
"URLs."
@ -559,7 +564,7 @@ msgstr ""
" --http-proxy-passwd=PASSWD Установить пароль для прокси HTTP. Это влияет "
"на все URL."
#: src/main.cc:143
#: src/main.cc:145
msgid ""
" --http-proxy-method=METHOD Set the method to use in proxy request.\n"
" METHOD is either 'get' or 'tunnel'.\n"
@ -571,7 +576,7 @@ msgstr ""
" или \"tunnel\".\n"
" По умолчанию: tunnel"
#: src/main.cc:146
#: src/main.cc:148
msgid ""
" --http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, "
"basic\n"
@ -582,12 +587,12 @@ msgstr ""
" момент доступна только схема \"basic\"\n"
" По умолчанию: basic"
#: src/main.cc:149
#: src/main.cc:151
msgid " --referer=REFERER Set Referer. This affects to all URLs."
msgstr ""
" --referer=REFERER Установить реферер. Это влияет на все URL."
#: src/main.cc:150
#: src/main.cc:152
msgid ""
" --ftp-user=USER Set FTP user. This affects to all URLs.\n"
" Default: anonymous"
@ -596,7 +601,7 @@ msgstr ""
"URL.\n"
" По умолчанию: anonymous"
#: src/main.cc:152
#: src/main.cc:154
msgid ""
" --ftp-passwd=PASSWD Set FTP password. This affects to all URLs.\n"
" Default: ARIA2USER@"
@ -604,7 +609,7 @@ msgstr ""
" --ftp-passwd=PASSWD Установить пароль FTP. Это влияет на все URL.\n"
" По умолчанию: ARIA2USER@"
#: src/main.cc:154
#: src/main.cc:156
msgid ""
" --ftp-type=TYPE Set FTP transfer type. TYPE is either "
"'binary'\n"
@ -615,11 +620,11 @@ msgstr ""
" или \"binary\", или \"ascii\".\n"
" По умолчанию: binary"
#: src/main.cc:157
#: src/main.cc:159
msgid " -p, --ftp-pasv Use passive mode in FTP."
msgstr " -p, --ftp-pasv Использовать пассивный режим для FTP."
#: src/main.cc:158
#: src/main.cc:160
msgid ""
" --ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either 'get' "
"or\n"
@ -631,7 +636,7 @@ msgstr ""
" быть \"get\" или \"tunnel\".\n"
" По умолчанию: tunnel"
#: src/main.cc:161
#: src/main.cc:163
#, fuzzy
msgid ""
" --lowest-speed-limit=SPEED Close connection if download speed is lower "
@ -649,7 +654,7 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:168
#: src/main.cc:170
#, fuzzy
msgid ""
" --max-download-limit=SPEED Set max download speed in bytes per sec.\n"
@ -662,7 +667,7 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:172
#: src/main.cc:174
#, fuzzy
msgid ""
" --file-allocation=METHOD Specify file allocation method. METHOD is "
@ -682,7 +687,7 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:179
#: src/main.cc:181
#, fuzzy
msgid ""
" --allow-overwrite=true|false If this option set to false, aria2 doesn't\n"
@ -699,10 +704,11 @@ msgstr ""
" файлы.\n"
" По умолчанию: true"
#: src/main.cc:184
#: src/main.cc:186
#, fuzzy
msgid ""
" --check-integiry=true|false Check file integiry by validating piece hash.\n"
" --check-integrity=true|false Check file integrity by validating piece "
"hash.\n"
" This option makes effect in BitTorrent "
"download\n"
" and Metalink with chunk checksums.\n"
@ -719,7 +725,7 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:192
#: src/main.cc:194
#, fuzzy
msgid ""
" --realtime-chunk-checksum=true|false Validate chunk checksum while "
@ -735,11 +741,31 @@ msgstr ""
" файлы.\n"
" По умолчанию: true"
#: src/main.cc:197
#: src/main.cc:198
msgid ""
" -c, --continue Continue downloading a partially downloaded\n"
" file. Use this option to resume a download "
"started\n"
" by web browsers or another programs\n"
" which download files sequentially from the\n"
" beginning. Currently this option is applicable "
"to\n"
" http(s)/ftp downloads."
msgstr ""
#: src/main.cc:204
msgid " -U, --user-agent=USER_AGENT Set user agent for http(s) downloads."
msgstr ""
#: src/main.cc:205
msgid " -n, --no-netrc Disables netrc support."
msgstr ""
#: src/main.cc:207
msgid " -T, --torrent-file=TORRENT_FILE The file path to .torrent file."
msgstr " -T, --torrent-file=TORRENT_FILE Путь до .torrent-файла."
#: src/main.cc:198
#: src/main.cc:208
msgid ""
" --follow-torrent=true|false Setting this option to false prevents aria2 "
"to\n"
@ -753,13 +779,13 @@ msgstr ""
" файлы.\n"
" По умолчанию: true"
#: src/main.cc:202
#: src/main.cc:212
msgid ""
" -S, --show-files Print file listing of .torrent file and exit."
msgstr ""
" -S, --show-files Вывести перечисленные .torrent файлы и выйти."
#: src/main.cc:203
#: src/main.cc:213
msgid ""
" --direct-file-mapping=true|false Directly read from and write to each file\n"
" mentioned in .torrent file.\n"
@ -769,14 +795,14 @@ msgstr ""
" описанный в .torrent-файл.\n"
" По умолчанию: true"
#: src/main.cc:206
#: src/main.cc:216
msgid ""
" --listen-port=PORT Set port number to listen to for peer "
"connection."
msgstr ""
" --listen-port=PORT Установить порт для прослушивания соединения."
#: src/main.cc:207
#: src/main.cc:217
#, fuzzy
msgid ""
" --max-upload-limit=SPEED Set max upload speed in bytes per sec.\n"
@ -789,7 +815,7 @@ msgstr ""
"60.\n"
" По умолчанию: 5"
#: src/main.cc:211
#: src/main.cc:221
msgid ""
" --select-file=INDEX... Set file to download by specifing its index.\n"
" You can know file index through --show-files\n"
@ -808,7 +834,7 @@ msgstr ""
" Также вы можете использовать тире (\"1-5\").\n"
" \",\" и \"-\" могут быть использованы вместе."
#: src/main.cc:217
#: src/main.cc:227
#, fuzzy
msgid ""
" --seed-time=MINUTES Specify seeding time in minutes. See also\n"
@ -817,7 +843,7 @@ msgstr ""
" -m, --max-tries=N Установить число попыток. 0 означает\n"
" неограниченное число. По умолчанию: 5"
#: src/main.cc:219
#: src/main.cc:229
#, fuzzy
msgid ""
" --seed-ratio=RATIO Specify share ratio. Seed completed torrents "
@ -835,11 +861,11 @@ msgstr ""
" Следуя этому, aria2 соединяется к каждому URL\n"
" используя N соединений."
#: src/main.cc:226
#: src/main.cc:236
msgid " -M, --metalink-file=METALINK_FILE The file path to .metalink file."
msgstr " -M, --metalink-file=METALINK_FILE Путь к .metalink-файлу."
#: src/main.cc:227
#: src/main.cc:237
msgid ""
" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
" simultaneously. If more than one connection "
@ -853,24 +879,24 @@ msgstr ""
"параметр -s.\n"
" По умолчанию: 15"
#: src/main.cc:231
#: src/main.cc:241
msgid " --metalink-version=VERSION The version of file to download."
msgstr " --metalink-version=VERSION Версия файла для скачивания."
#: src/main.cc:232
#: src/main.cc:242
msgid " --metalink-language=LANGUAGE The language of file to download."
msgstr " --metalink-language=LANGUAGE Язык файла для скачивания."
#: src/main.cc:233
#: src/main.cc:243
msgid ""
" --metalink-os=OS The operating system the file is targeted."
msgstr " --metalink-os=OS Целевая операционная система файла."
#: src/main.cc:234
#: src/main.cc:244
msgid " --metalink-location=LOCATION The location of the prefered server."
msgstr ""
#: src/main.cc:235
#: src/main.cc:245
msgid ""
" --follow-metalink=true|false Setting this option to false prevents aria2 "
"to\n"
@ -884,15 +910,15 @@ msgstr ""
" файлы.\n"
" По умолчанию: true"
#: src/main.cc:240
#: src/main.cc:250
msgid " -v, --version Print the version number and exit."
msgstr " -v, --version Вывести номер версии и выйти."
#: src/main.cc:241
#: src/main.cc:251
msgid " -h, --help Print this message and exit."
msgstr " -h, --help Вывести это сообщение и выйти."
#: src/main.cc:244
#: src/main.cc:254
msgid ""
" You can specify multiple URLs. All URLs must point to the same file\n"
" or downloading fails."
@ -900,7 +926,7 @@ msgstr ""
" Вы можете указать несколько URL. Все URL должны указывать на один и тот же\n"
" файл, иначе скачивание завершится неудачей."
#: src/main.cc:249
#: src/main.cc:259
msgid ""
" Specify files in multi-file torrent to download. Use conjunction with\n"
" -T option. This arguments are ignored if you specify --select-file option."
@ -908,184 +934,79 @@ msgstr ""
" Указать файлы для скачивания при многофайловом torent. Используйте вместе\n"
" с параметром -T. Этот параметр игнорируется при указании --select-file."
#: src/main.cc:253
#: src/main.cc:263
msgid "Examples:"
msgstr "Примеры:"
#: src/main.cc:254
#: src/main.cc:264
msgid " Download a file by 1 connection:"
msgstr " Скачать файл с помощью 1 соединения:"
#: src/main.cc:256
#: src/main.cc:266
msgid " Download a file by 2 connections:"
msgstr " Скачать файл с помощью 2 соединений:"
#: src/main.cc:258
#: src/main.cc:268
msgid " Download a file by 2 connections, each connects to a different server:"
msgstr " Скачать файл с помощью 2 соединений к различным серверам:"
#: src/main.cc:260
#: src/main.cc:270
msgid " You can mix up different protocols:"
msgstr " Вы можете смешивать различные протоколы:"
#: src/main.cc:264
#: src/main.cc:274
msgid " Download a torrent:"
msgstr " Скачать torrent:"
#: src/main.cc:266
#: src/main.cc:276
msgid " Download a torrent using local .torrent file:"
msgstr " Скачать torrent с помощью локального .torrent-файла:"
#: src/main.cc:268
#: src/main.cc:278
msgid " Download only selected files:"
msgstr " Скачать только выбранные файлы:"
#: src/main.cc:270
#: src/main.cc:280
msgid " Print file listing of .torrent file:"
msgstr " Вывести список фалов из .torrent"
#: src/main.cc:275
#: src/main.cc:285
msgid " Metalink downloading:"
msgstr " Скачать metalink:"
#: src/main.cc:277
#: src/main.cc:287
msgid " Download a file using local .metalink file:"
msgstr " Скачать файл с помощью локального .metalink-файла:"
#: src/main.cc:279
#: src/main.cc:289
msgid " Metalink downloading with preferences:"
msgstr " Скачивание metalink с настройками:"
#: src/main.cc:283
#: src/main.cc:293
#, c-format
msgid "Report bugs to %s"
msgstr "Сообщения об ошибках направляйте на адрес %s"
#: src/main.cc:432
msgid "unrecognized proxy format"
msgstr "неизвестный формат прокси"
#: src/main.cc:458
msgid "Currently, supported authentication scheme is basic."
msgstr "Поддерживаемая схема аутентификации - \"basic\"."
#: src/main.cc:467
msgid "retry-wait must be between 0 and 60."
msgstr "retry-wait должен быть в пределах 0..60"
#: src/main.cc:483
msgid "ftp-type must be either 'binary' or 'ascii'."
msgstr "ftp-type должен быть \"binary\" или \"ascii\"."
#: src/main.cc:491
msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
msgstr "ftp-via-http-proxy должен быть \"get\" или \"tunnel\"."
#: src/main.cc:498
msgid "min-segment-size invalid"
msgstr "min-segment-size неверен"
#: src/main.cc:508
msgid "http-proxy-method must be either 'get' or 'tunnel'."
msgstr "http-proxy-method должен быть \"get\" или \"tunnel\"."
#: src/main.cc:515
msgid "listen-port must be between 1024 and 65535."
msgstr "listen-port должен быть в пределах 1024..65535."
#: src/main.cc:527
msgid "follow-torrent must be either 'true' or 'false'."
msgstr "follow-torrent должен быть 'true' или 'false'."
#: src/main.cc:540
msgid "direct-file-mapping must be either 'true' or 'false'."
msgstr "direct-file-mapping должен быть 'true' или 'false'."
#: src/main.cc:550
#, fuzzy
msgid "seed-time must be greater than or equal to 0."
msgstr "upload-limit должен быть не меньше 0."
#: src/main.cc:559
#, fuzzy
msgid "seed-ratio must be greater than or equal to 0.0."
msgstr "upload-limit должен быть не меньше 0."
#: src/main.cc:568
#, fuzzy
msgid "max-upload-limit must be greater than or equal to 0"
msgstr "upload-limit должен быть не меньше 0."
#: src/main.cc:589
msgid "follow-metalink must be either 'true' or 'false'."
msgstr "follow-metalink должен быть 'true' или 'false'."
#: src/main.cc:599
#, fuzzy
msgid "lowest-speed-limit must be greater than or equal to 0"
msgstr "upload-limit должен быть не меньше 0."
#: src/main.cc:608
#, fuzzy
msgid "max-download-limit must be greater than or equal to 0"
msgstr "upload-limit должен быть не меньше 0."
#: src/main.cc:620
#, fuzzy
msgid "allow-overwrite must be either 'true' or 'false'."
msgstr "follow-torrent должен быть 'true' или 'false'."
#: src/main.cc:631
#, fuzzy
msgid "check-integrity must be be either 'true' or 'false'."
msgstr "direct-file-mapping должен быть 'true' или 'false'."
#: src/main.cc:642
#, fuzzy
msgid "realtime-chunk-checksum must be either 'true' or 'false'."
msgstr "follow-metalink должен быть 'true' или 'false'."
#: src/main.cc:669
msgid "split must be between 1 and 5."
msgstr "split должен быть находится в пределах 1..5."
#: src/main.cc:680
msgid "timeout must be between 1 and 600"
msgstr "таймаут должен быть в пределах 1..600"
#: src/main.cc:688
msgid "max-tries invalid"
msgstr "неверный max-tries"
#: src/main.cc:709
msgid "metalink-servers must be greater than 0."
msgstr "metalink-servers должен быть больше 0"
#: src/main.cc:720
#, fuzzy
msgid "file-allocation must be either 'none' or 'prealloc'."
msgstr "follow-torrent должен быть 'true' или 'false'."
#: src/main.cc:737
#: src/main.cc:613
msgid "specify at least one URL"
msgstr "укажите по крайней мере один URL"
#: src/main.cc:743
#: src/main.cc:619
msgid "daemon failed"
msgstr "ошибка демона"
#: src/main.cc:813
#: src/main.cc:704
msgid ""
"Now verifying checksum.\n"
"This may take some time depending on your PC environment and the size of "
"file."
msgstr ""
#: src/main.cc:817
#: src/main.cc:708
msgid "checksum OK."
msgstr ""
#: src/main.cc:820
#: src/main.cc:711
msgid "checksum ERROR."
msgstr ""
@ -1115,6 +1036,87 @@ msgstr ""
msgid "done\n"
msgstr "завершено\n"
#~ msgid "unrecognized proxy format"
#~ msgstr "неизвестный формат прокси"
#~ msgid "Currently, supported authentication scheme is basic."
#~ msgstr "Поддерживаемая схема аутентификации - \"basic\"."
#~ msgid "retry-wait must be between 0 and 60."
#~ msgstr "retry-wait должен быть в пределах 0..60"
#~ msgid "ftp-type must be either 'binary' or 'ascii'."
#~ msgstr "ftp-type должен быть \"binary\" или \"ascii\"."
#~ msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
#~ msgstr "ftp-via-http-proxy должен быть \"get\" или \"tunnel\"."
#~ msgid "min-segment-size invalid"
#~ msgstr "min-segment-size неверен"
#~ msgid "http-proxy-method must be either 'get' or 'tunnel'."
#~ msgstr "http-proxy-method должен быть \"get\" или \"tunnel\"."
#~ msgid "listen-port must be between 1024 and 65535."
#~ msgstr "listen-port должен быть в пределах 1024..65535."
#~ msgid "follow-torrent must be either 'true' or 'false'."
#~ msgstr "follow-torrent должен быть 'true' или 'false'."
#~ msgid "direct-file-mapping must be either 'true' or 'false'."
#~ msgstr "direct-file-mapping должен быть 'true' или 'false'."
#, fuzzy
#~ msgid "seed-time must be greater than or equal to 0."
#~ msgstr "upload-limit должен быть не меньше 0."
#, fuzzy
#~ msgid "seed-ratio must be greater than or equal to 0.0."
#~ msgstr "upload-limit должен быть не меньше 0."
#, fuzzy
#~ msgid "max-upload-limit must be greater than or equal to 0"
#~ msgstr "upload-limit должен быть не меньше 0."
#~ msgid "follow-metalink must be either 'true' or 'false'."
#~ msgstr "follow-metalink должен быть 'true' или 'false'."
#, fuzzy
#~ msgid "lowest-speed-limit must be greater than or equal to 0"
#~ msgstr "upload-limit должен быть не меньше 0."
#, fuzzy
#~ msgid "max-download-limit must be greater than or equal to 0"
#~ msgstr "upload-limit должен быть не меньше 0."
#, fuzzy
#~ msgid "allow-overwrite must be either 'true' or 'false'."
#~ msgstr "follow-torrent должен быть 'true' или 'false'."
#, fuzzy
#~ msgid "check-integrity must be be either 'true' or 'false'."
#~ msgstr "direct-file-mapping должен быть 'true' или 'false'."
#, fuzzy
#~ msgid "realtime-chunk-checksum must be either 'true' or 'false'."
#~ msgstr "follow-metalink должен быть 'true' или 'false'."
#~ msgid "split must be between 1 and 5."
#~ msgstr "split должен быть находится в пределах 1..5."
#~ msgid "timeout must be between 1 and 600"
#~ msgstr "таймаут должен быть в пределах 1..600"
#~ msgid "max-tries invalid"
#~ msgstr "неверный max-tries"
#~ msgid "metalink-servers must be greater than 0."
#~ msgstr "metalink-servers должен быть больше 0"
#, fuzzy
#~ msgid "file-allocation must be either 'none' or 'prealloc'."
#~ msgstr "follow-torrent должен быть 'true' или 'false'."
#~ msgid "upload-limit must be greater than or equal to 0."
#~ msgstr "upload-limit должен быть не меньше 0."

View File

@ -40,6 +40,7 @@
#include "message.h"
#include "SleepCommand.h"
#include "prefs.h"
#include "DNSCache.h"
AbstractCommand::AbstractCommand(int cuid,
const RequestHandle& req,
@ -207,6 +208,46 @@ void AbstractCommand::setWriteCheckSocket(const SocketHandle& socket) {
}
}
bool AbstractCommand::resolveHostname(const string& hostname,
const NameResolverHandle& resolver) {
string ipaddr = DNSCacheSingletonHolder::instance()->find(hostname);
if(ipaddr.empty()) {
#ifdef ENABLE_ASYNC_DNS
switch(resolver->getStatus()) {
case NameResolver::STATUS_READY:
logger->info("CUID#%d - Resolving hostname %s", cuid, hostname.c_str());
resolver->resolve(hostname);
setNameResolverCheck(resolver);
return false;
case NameResolver::STATUS_SUCCESS:
logger->info("CUID#%d - Name resolution complete: %s -> %s", cuid,
hostname.c_str(), resolver->getAddrString().c_str());
DNSCacheSingletonHolder::instance()->put(hostname, resolver->getAddrString());
return true;
break;
case NameResolver::STATUS_ERROR:
throw new DlAbortEx("CUID#%d - Name resolution for %s failed:%s", cuid,
hostname.c_str(),
resolver->getError().c_str());
default:
return false;
}
#else
logger->info("CUID#%d - Resolving hostname %s", cuid, hostname.c_str());
resolver->resolve(hostname);
logger->info("CUID#%d - Name resolution complete: %s -> %s", cuid,
hostname.c_str(), resolver->getAddrString().c_str());
DNSCacheSingletonHolder::instance()->put(hostname, resolver->getAddrString());
return true;
#endif // ENABLE_ASYNC_DNS
} else {
logger->info("CUID#%d - DNS cache hit: %s -> %s", cuid,
hostname.c_str(), ipaddr.c_str());
resolver->setAddr(ipaddr);
return true;
}
}
#ifdef ENABLE_ASYNC_DNS
void AbstractCommand::setNameResolverCheck(const NameResolverHandle& resolver) {
nameResolverCheck = true;
@ -218,28 +259,6 @@ void AbstractCommand::disableNameResolverCheck(const NameResolverHandle& resolve
e->deleteNameResolverCheck(resolver, this);
}
bool AbstractCommand::resolveHostname(const string& hostname,
const NameResolverHandle& resolver) {
switch(resolver->getStatus()) {
case NameResolver::STATUS_READY:
logger->info("CUID#%d - Resolving hostname %s", cuid, hostname.c_str());
resolver->resolve(hostname);
setNameResolverCheck(resolver);
return false;
case NameResolver::STATUS_SUCCESS:
logger->info("CUID#%d - Name resolution complete: %s -> %s", cuid,
hostname.c_str(), resolver->getAddrString().c_str());
return true;
break;
case NameResolver::STATUS_ERROR:
throw new DlAbortEx("CUID#%d - Name resolution for %s failed:%s", cuid,
hostname.c_str(),
resolver->getError().c_str());
default:
return false;
}
}
bool AbstractCommand::nameResolveFinished() const {
return false;
}

View File

@ -61,10 +61,10 @@ protected:
void setWriteCheckSocket(const SocketHandle& socket);
void disableReadCheckSocket();
void disableWriteCheckSocket();
bool resolveHostname(const string& hostname, const NameResolverHandle& nameResolver);
#ifdef ENABLE_ASYNC_DNS
void setNameResolverCheck(const NameResolverHandle& resolver);
void disableNameResolverCheck(const NameResolverHandle& resolver);
bool resolveHostname(const string& hostname, const NameResolverHandle& nameResolver);
virtual bool nameResolveFinished() const;
#endif // ENABLE_ASYNC_DNS
void setTimeout(int timeout) { this->timeout = timeout; }

82
src/DNSCache.h Normal file
View File

@ -0,0 +1,82 @@
/* <!-- copyright */
/*
* aria2 - The high speed download utility
*
* Copyright (C) 2006 Tatsuhiro Tsujikawa
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* In addition, as a special exception, the copyright holders give
* permission to link the code of portions of this program with the
* OpenSSL library under certain conditions as described in each
* individual source file, and distribute linked combinations
* including the two.
* You must obey the GNU General Public License in all respects
* for all of the code used other than OpenSSL. If you modify
* file(s) with this exception, you may extend this exception to your
* version of the file(s), but you are not obligated to do so. If you
* do not wish to do so, delete this exception statement from your
* version. If you delete this exception statement from all source
* files in the program, then also delete it here.
*/
/* copyright --> */
#ifndef _D_DNS_CACHE_H_
#define _D_DNS_CACHE_H_
#include "common.h"
#include <map>
class DNSCache {
public:
virtual ~DNSCache() {}
virtual string find(const string& hostname) = 0;
virtual void put(const string& hostname, const string& ipaddr) = 0;
};
typedef SharedHandle<DNSCache> DNSCacheHandle;
typedef SingletonHolder<DNSCacheHandle> DNSCacheSingletonHolder;
class SimpleDNSCache : public DNSCache {
private:
map<string, string> _table;
public:
SimpleDNSCache() {}
virtual ~SimpleDNSCache() {}
virtual string find(const string& hostname)
{
return _table[hostname];
}
virtual void put(const string& hostname, const string& ipaddr)
{
_table[hostname] = ipaddr;
}
};
class NullDNSCache : public DNSCache {
public:
virtual ~NullDNSCache() {}
virtual string find(const string& hostname) { return ""; }
virtual void put(const string& hostname, const string& ipaddr) {}
};
#endif // _D_DNS_CACHE_H_

View File

@ -41,9 +41,7 @@
#include "common.h"
#include "Logger.h"
#include "Option.h"
#ifdef ENABLE_ASYNC_DNS
# include "NameResolver.h"
#endif // ENABLE_ASYNC_DNS
#include "NameResolver.h"
typedef deque<SocketHandle> Sockets;
typedef deque<Command*> Commands;

View File

@ -64,7 +64,6 @@ bool FtpInitiateConnectionCommand::executeInternal() {
} else {
hostname = req->getHost();
}
#ifdef ENABLE_ASYNC_DNS
if(!Util::isNumbersAndDotsNotation(hostname)) {
if(resolveHostname(hostname, nameResolver)) {
hostname = nameResolver->getAddrString();
@ -73,7 +72,6 @@ bool FtpInitiateConnectionCommand::executeInternal() {
return false;
}
}
#endif // ENABLE_ASYNC_DNS
Command* command;
if(useHttpProxy()) {
logger->info(MSG_CONNECTING_TO_SERVER, cuid,

View File

@ -39,9 +39,7 @@
class FtpInitiateConnectionCommand : public AbstractCommand {
private:
#ifdef ENABLE_ASYNC_DNS
NameResolverHandle nameResolver;
#endif // ENABLE_ASYNC_DNS
bool useHttpProxy() const;
bool useHttpProxyGet() const;
bool useHttpProxyConnect() const;

View File

@ -64,7 +64,6 @@ bool HttpInitiateConnectionCommand::executeInternal() {
} else {
hostname = req->getHost();
}
#ifdef ENABLE_ASYNC_DNS
if(!Util::isNumbersAndDotsNotation(hostname)) {
if(resolveHostname(hostname, nameResolver)) {
hostname = nameResolver->getAddrString();
@ -73,7 +72,6 @@ bool HttpInitiateConnectionCommand::executeInternal() {
return false;
}
}
#endif // ENABLE_ASYNC_DNS
Command* command;
if(useProxy()) {
logger->info(MSG_CONNECTING_TO_SERVER, cuid,

View File

@ -39,9 +39,7 @@
class HttpInitiateConnectionCommand : public AbstractCommand {
private:
#ifdef ENABLE_ASYNC_DNS
NameResolverHandle nameResolver;
#endif // ENABLE_ASYNC_DNS
bool useProxy();
bool useProxyGet();
bool useProxyTunnel();

View File

@ -80,13 +80,10 @@ SRCS = Socket.h\
DefaultFileAllocator.cc DefaultFileAllocator.h\
GlowFileAllocator.cc GlowFileAllocator.h\
OptionParser.cc OptionParser.h\
OptionHandlerFactory.cc OptionHandlerFactory.h
OptionHandlerFactory.cc OptionHandlerFactory.h\
NameResolver.cc NameResolver.h
# debug_new.cpp
if ENABLE_ASYNC_DNS
SRCS += NameResolver.cc NameResolver.h
endif # ENABLE_ASYNC_DNS
if ENABLE_BITTORRENT
SRCS += MetaEntry.h\
Data.cc Data.h\

View File

@ -39,8 +39,7 @@ build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = aria2c$(EXEEXT)
# debug_new.cpp
@ENABLE_ASYNC_DNS_TRUE@am__append_1 = NameResolver.cc NameResolver.h
@ENABLE_BITTORRENT_TRUE@am__append_2 = MetaEntry.h\
@ENABLE_BITTORRENT_TRUE@am__append_1 = MetaEntry.h\
@ENABLE_BITTORRENT_TRUE@ Data.cc Data.h\
@ENABLE_BITTORRENT_TRUE@ Dictionary.cc Dictionary.h\
@ENABLE_BITTORRENT_TRUE@ List.cc List.h\
@ -143,7 +142,7 @@ bin_PROGRAMS = aria2c$(EXEEXT)
@ENABLE_BITTORRENT_TRUE@ DefaultBtInteractive.cc DefaultBtInteractive.h\
@ENABLE_BITTORRENT_TRUE@ PeerObject.h
@ENABLE_METALINK_TRUE@am__append_3 = Metalinker.cc Metalinker.h\
@ENABLE_METALINK_TRUE@am__append_2 = Metalinker.cc Metalinker.h\
@ENABLE_METALINK_TRUE@ MetalinkEntry.cc MetalinkEntry.h\
@ENABLE_METALINK_TRUE@ MetalinkResource.cc MetalinkResource.h\
@ENABLE_METALINK_TRUE@ MetalinkProcessor.h\
@ -294,8 +293,7 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
Xml2MetalinkProcessor.cc Xml2MetalinkProcessor.h \
MetalinkRequestInfo.cc MetalinkRequestInfo.h \
MetalinkChunkChecksum.h
@ENABLE_ASYNC_DNS_TRUE@am__objects_1 = NameResolver.$(OBJEXT)
@ENABLE_BITTORRENT_TRUE@am__objects_2 = Data.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@am__objects_1 = Data.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@ Dictionary.$(OBJEXT) List.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@ MetaFileUtil.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@ ShaVisitor.$(OBJEXT) \
@ -358,12 +356,12 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
@ENABLE_BITTORRENT_TRUE@ DefaultBtMessageReceiver.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@ DefaultBtRequestFactory.$(OBJEXT) \
@ENABLE_BITTORRENT_TRUE@ DefaultBtInteractive.$(OBJEXT)
@ENABLE_METALINK_TRUE@am__objects_3 = Metalinker.$(OBJEXT) \
@ENABLE_METALINK_TRUE@am__objects_2 = Metalinker.$(OBJEXT) \
@ENABLE_METALINK_TRUE@ MetalinkEntry.$(OBJEXT) \
@ENABLE_METALINK_TRUE@ MetalinkResource.$(OBJEXT) \
@ENABLE_METALINK_TRUE@ Xml2MetalinkProcessor.$(OBJEXT) \
@ENABLE_METALINK_TRUE@ MetalinkRequestInfo.$(OBJEXT)
am__objects_4 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \
am__objects_3 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \
AbstractCommand.$(OBJEXT) \
InitiateConnectionCommandFactory.$(OBJEXT) \
DownloadCommand.$(OBJEXT) \
@ -396,8 +394,8 @@ am__objects_4 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \
NetrcAuthResolver.$(OBJEXT) RequestFactory.$(OBJEXT) \
DefaultFileAllocator.$(OBJEXT) GlowFileAllocator.$(OBJEXT) \
OptionParser.$(OBJEXT) OptionHandlerFactory.$(OBJEXT) \
$(am__objects_1) $(am__objects_2) $(am__objects_3)
am_libaria2c_a_OBJECTS = $(am__objects_4)
NameResolver.$(OBJEXT) $(am__objects_1) $(am__objects_2)
am_libaria2c_a_OBJECTS = $(am__objects_3)
libaria2c_a_OBJECTS = $(am_libaria2c_a_OBJECTS)
am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
@ -612,8 +610,8 @@ SRCS = Socket.h SocketCore.cc SocketCore.h Command.cc Command.h \
RequestFactory.cc RequestFactory.h DefaultFileAllocator.cc \
DefaultFileAllocator.h GlowFileAllocator.cc \
GlowFileAllocator.h OptionParser.cc OptionParser.h \
OptionHandlerFactory.cc OptionHandlerFactory.h $(am__append_1) \
$(am__append_2) $(am__append_3)
OptionHandlerFactory.cc OptionHandlerFactory.h NameResolver.cc \
NameResolver.h $(am__append_1) $(am__append_2)
noinst_LIBRARIES = libaria2c.a
libaria2c_a_SOURCES = $(SRCS)
aria2c_LDADD = libaria2c.a @LIBINTL@ @ALLOCA@ @LIBGNUTLS_LIBS@\

View File

@ -34,6 +34,8 @@
/* copyright --> */
#include "NameResolver.h"
#ifdef ENABLE_ASYNC_DNS
void callback(void* arg, int status, struct hostent* host) {
NameResolver* resolverPtr = (NameResolver*)arg;
#ifdef HAVE_LIBARES
@ -57,3 +59,29 @@ void callback(void* arg, int status, struct hostent* host) {
memcpy(&resolverPtr->addr, *host->h_addr_list, sizeof(struct in_addr));
resolverPtr->status = NameResolver::STATUS_SUCCESS;
}
#else // ENABLE_ASYNC_DNS
#include "DlAbortEx.h"
#include "message.h"
void NameResolver::resolve(const string& hostname)
{
memset(&_addr, 0, sizeof(in_addr));
struct addrinfo ai;
memset((char*)&ai, 0, sizeof(ai));
ai.ai_flags = 0;
ai.ai_family = PF_INET;
ai.ai_socktype = SOCK_STREAM;
ai.ai_protocol = 0;
struct addrinfo* res;
int ec;
if((ec = getaddrinfo(hostname.c_str(), 0, &ai, &res)) != 0) {
throw new DlAbortEx(EX_RESOLVE_HOSTNAME,
hostname.c_str(), gai_strerror(ec));
}
_addr = ((struct sockaddr_in*)res->ai_addr)->sin_addr;
freeaddrinfo(res);
}
#endif // ENABLE_ASYNC_DNS

View File

@ -36,12 +36,13 @@
#define _D_NAME_RESOLVER_H_
#include "common.h"
#include "SharedHandle.h"
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#ifdef ENABLE_ASYNC_DNS
#ifdef __cplusplus
extern "C" {
#endif
@ -110,8 +111,33 @@ public:
bool operator==(const NameResolver& resolver) {
return this == &resolver;
}
void setAddr(const string& addrString)
{
inet_aton(addrString.c_str(), &addr);
}
};
#else // ENABLE_ASYNC_DNS
class NameResolver {
private:
struct in_addr _addr;
public:
void resolve(const string& hostname);
string getAddrString() const {
return inet_ntoa(_addr);
}
void setAddr(const string& addrString)
{
inet_aton(addrString.c_str(), &_addr);
}
};
#endif // ENABLE_ASYNC_DNS
typedef SharedHandle<NameResolver> NameResolverHandle;
#endif // _D_NAME_RESOLVER_H_

View File

@ -41,6 +41,7 @@
#include "FatalException.h"
#include "message.h"
#include "RecoverableException.h"
#include "DNSCache.h"
extern volatile sig_atomic_t btHaltRequested;
@ -49,6 +50,11 @@ void torrentHandler(int signal) {
}
RequestInfos TorrentRequestInfo::execute() {
{
DNSCacheHandle dnsCache = new NullDNSCache();
DNSCacheSingletonHolder::instance(dnsCache);
}
BtContextHandle btContext(new DefaultBtContext());
btContext->load(torrentFile);

View File

@ -45,6 +45,7 @@
#include "File.h"
#include "DefaultDiskWriter.h"
#include "DlAbortEx.h"
#include "DNSCache.h"
std::ostream& operator<<(std::ostream& o, const HeadResult& hr) {
o << "filename = " << hr.filename << ", " << "totalLength = " << hr.totalLength;
@ -153,6 +154,11 @@ HeadResultHandle UrlRequestInfo::getHeadResult() {
RequestInfos UrlRequestInfo::execute() {
{
DNSCacheHandle dnsCache = new SimpleDNSCache();
DNSCacheSingletonHolder::instance(dnsCache);
}
Requests requests;
Requests reserved;
printUrls(urls);

View File

@ -198,9 +198,9 @@ void showUsage() {
cout << _(" -c, --continue Continue downloading a partially downloaded\n"
" file. Use this option to resume a download started\n"
" by web browsers or another programs\n"
" which download files from the beginning.\n"
" Currently this option is applicable to http(s)/\n"
" ftp downloads.") << endl;
" which download files sequentially from the\n"
" beginning. Currently this option is applicable to\n"
" http(s)/ftp downloads.") << endl;
cout << _(" -U, --user-agent=USER_AGENT Set user agent for http(s) downloads.") << endl;
cout << _(" -n, --no-netrc Disables netrc support.") << endl;
#ifdef ENABLE_BITTORRENT

View File

@ -5,7 +5,7 @@ aria2c_SOURCES = AllTest.cc\
NetrcAuthResolverTest.cc\
DefaultAuthResolverTest.cc\
RequestTest.cc\
HttpRequestTest.cc
HttpRequestTest.cc\
UtilTest.cc\
OptionHandlerTest.cc\
SegmentManTest.cc\

View File

@ -60,7 +60,44 @@ am__EXEEXT_1 = aria2c$(EXEEXT)
am_aria2c_OBJECTS = AllTest.$(OBJEXT) RequestFactoryTest.$(OBJEXT) \
NetrcAuthResolverTest.$(OBJEXT) \
DefaultAuthResolverTest.$(OBJEXT) RequestTest.$(OBJEXT) \
HttpRequestTest.$(OBJEXT)
HttpRequestTest.$(OBJEXT) UtilTest.$(OBJEXT) \
OptionHandlerTest.$(OBJEXT) SegmentManTest.$(OBJEXT) \
BitfieldManTest.$(OBJEXT) GlowFileAllocatorTest.$(OBJEXT) \
NetrcTest.$(OBJEXT) SingletonHolderTest.$(OBJEXT) \
HttpHeaderTest.$(OBJEXT) HttpResponseTest.$(OBJEXT) \
SharedHandleTest.$(OBJEXT) ChunkedEncodingTest.$(OBJEXT) \
FileTest.$(OBJEXT) OptionTest.$(OBJEXT) Base64Test.$(OBJEXT) \
CookieBoxTest.$(OBJEXT) DataTest.$(OBJEXT) \
DictionaryTest.$(OBJEXT) ListTest.$(OBJEXT) \
MetaFileUtilTest.$(OBJEXT) ShaVisitorTest.$(OBJEXT) \
PeerMessageUtilTest.$(OBJEXT) DefaultDiskWriterTest.$(OBJEXT) \
MultiDiskAdaptorTest.$(OBJEXT) \
Xml2MetalinkProcessorTest.$(OBJEXT) MetalinkerTest.$(OBJEXT) \
MetalinkEntryTest.$(OBJEXT) FeatureConfigTest.$(OBJEXT) \
ShareRatioSeedCriteriaTest.$(OBJEXT) \
TimeSeedCriteriaTest.$(OBJEXT) SpeedCalcTest.$(OBJEXT) \
DefaultPeerListProcessorTest.$(OBJEXT) \
AnnounceListTest.$(OBJEXT) TrackerWatcherCommandTest.$(OBJEXT) \
DefaultBtContextTest.$(OBJEXT) \
DefaultPieceStorageTest.$(OBJEXT) \
DefaultPeerStorageTest.$(OBJEXT) \
DefaultBtAnnounceTest.$(OBJEXT) BtRegistryTest.$(OBJEXT) \
DefaultBtMessageDispatcherTest.$(OBJEXT) \
DefaultBtRequestFactoryTest.$(OBJEXT) PeerTest.$(OBJEXT) \
BtAllowedFastMessageTest.$(OBJEXT) \
BtBitfieldMessageTest.$(OBJEXT) BtCancelMessageTest.$(OBJEXT) \
BtChokeMessageTest.$(OBJEXT) BtHaveAllMessageTest.$(OBJEXT) \
BtHaveMessageTest.$(OBJEXT) BtHaveNoneMessageTest.$(OBJEXT) \
BtInterestedMessageTest.$(OBJEXT) \
BtKeepAliveMessageTest.$(OBJEXT) \
BtNotInterestedMessageTest.$(OBJEXT) \
BtPieceMessageTest.$(OBJEXT) BtPortMessageTest.$(OBJEXT) \
BtRejectMessageTest.$(OBJEXT) BtRequestMessageTest.$(OBJEXT) \
BtSuggestPieceMessageTest.$(OBJEXT) \
BtUnchokeMessageTest.$(OBJEXT) \
BtHandshakeMessageTest.$(OBJEXT) \
ConsoleFileAllocationMonitorTest.$(OBJEXT) \
ChunkChecksumValidatorTest.$(OBJEXT)
aria2c_OBJECTS = $(am_aria2c_OBJECTS)
am__DEPENDENCIES_1 =
aria2c_DEPENDENCIES = ../src/libaria2c.a $(am__DEPENDENCIES_1)
@ -72,6 +109,10 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
CXXLD = $(CXX)
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-o $@
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(aria2c_SOURCES)
DIST_SOURCES = $(aria2c_SOURCES)
ETAGS = etags
@ -225,7 +266,72 @@ aria2c_SOURCES = AllTest.cc\
NetrcAuthResolverTest.cc\
DefaultAuthResolverTest.cc\
RequestTest.cc\
HttpRequestTest.cc
HttpRequestTest.cc\
UtilTest.cc\
OptionHandlerTest.cc\
SegmentManTest.cc\
BitfieldManTest.cc\
GlowFileAllocatorTest.cc\
NetrcTest.cc\
SingletonHolderTest.cc\
HttpHeaderTest.cc\
HttpResponseTest.cc\
SharedHandleTest.cc\
ChunkedEncodingTest.cc\
FileTest.cc\
OptionTest.cc\
Base64Test.cc\
CookieBoxTest.cc\
DataTest.cc\
DictionaryTest.cc\
ListTest.cc\
MetaFileUtilTest.cc\
ShaVisitorTest.cc\
PeerMessageUtilTest.cc\
DefaultDiskWriterTest.cc\
MultiDiskAdaptorTest.cc\
Xml2MetalinkProcessorTest.cc\
MetalinkerTest.cc\
MetalinkEntryTest.cc\
FeatureConfigTest.cc\
ShareRatioSeedCriteriaTest.cc\
TimeSeedCriteriaTest.cc\
SpeedCalcTest.cc\
DefaultPeerListProcessorTest.cc\
AnnounceListTest.cc\
TrackerWatcherCommandTest.cc\
DefaultBtContextTest.cc\
DefaultPieceStorageTest.cc\
DefaultPeerStorageTest.cc\
DefaultBtAnnounceTest.cc\
BtRegistryTest.cc\
DefaultBtMessageDispatcherTest.cc\
MockPeerStorage.h\
DefaultBtRequestFactoryTest.cc\
PeerTest.cc\
BtAllowedFastMessageTest.cc\
BtBitfieldMessageTest.cc\
BtCancelMessageTest.cc\
BtChokeMessageTest.cc\
BtHaveAllMessageTest.cc\
BtHaveMessageTest.cc\
BtHaveNoneMessageTest.cc\
BtInterestedMessageTest.cc\
BtKeepAliveMessageTest.cc\
BtNotInterestedMessageTest.cc\
BtPieceMessageTest.cc\
BtPortMessageTest.cc\
BtRejectMessageTest.cc\
BtRequestMessageTest.cc\
BtSuggestPieceMessageTest.cc\
BtUnchokeMessageTest.cc\
BtHandshakeMessageTest.cc\
MockBtMessageDispatcher.h\
FixedNumberRandomizer.h\
MockBtMessageFactory.h\
MockBtMessage.h\
ConsoleFileAllocationMonitorTest.cc\
ChunkChecksumValidatorTest.cc
#aria2c_CXXFLAGS = ${CPPUNIT_CFLAGS} -I../src -I../lib -Wall -D_FILE_OFFSET_BITS=64
#aria2c_LDFLAGS = ${CPPUNIT_LIBS}
@ -289,11 +395,71 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AllTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnnounceListTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Base64Test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BitfieldManTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtAllowedFastMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtBitfieldMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtCancelMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtChokeMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHandshakeMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveAllMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtHaveNoneMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtInterestedMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtKeepAliveMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtNotInterestedMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtPieceMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtPortMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRegistryTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRejectMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtRequestMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtSuggestPieceMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BtUnchokeMessageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChunkChecksumValidatorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChunkedEncodingTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConsoleFileAllocationMonitorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CookieBoxTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DataTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultAuthResolverTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtAnnounceTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtContextTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtMessageDispatcherTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtRequestFactoryTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultDiskWriterTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPeerListProcessorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPeerStorageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultPieceStorageTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DictionaryTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FeatureConfigTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FileTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GlowFileAllocatorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpHeaderTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpRequestTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HttpResponseTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetaFileUtilTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkEntryTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkerTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiDiskAdaptorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetrcAuthResolverTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetrcTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OptionHandlerTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OptionTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PeerMessageUtilTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PeerTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestFactoryTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SegmentManTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShaVisitorTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShareRatioSeedCriteriaTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SharedHandleTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SingletonHolderTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SpeedCalcTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TimeSeedCriteriaTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TrackerWatcherCommandTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UtilTest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Xml2MetalinkProcessorTest.Po@am__quote@
.cc.o:
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@ -548,71 +714,6 @@ uninstall-am: uninstall-info-am
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am
UtilTest.cc\
OptionHandlerTest.cc\
SegmentManTest.cc\
BitfieldManTest.cc\
GlowFileAllocatorTest.cc\
NetrcTest.cc\
SingletonHolderTest.cc\
HttpHeaderTest.cc\
HttpResponseTest.cc\
SharedHandleTest.cc\
ChunkedEncodingTest.cc\
FileTest.cc\
OptionTest.cc\
Base64Test.cc\
CookieBoxTest.cc\
DataTest.cc\
DictionaryTest.cc\
ListTest.cc\
MetaFileUtilTest.cc\
ShaVisitorTest.cc\
PeerMessageUtilTest.cc\
DefaultDiskWriterTest.cc\
MultiDiskAdaptorTest.cc\
Xml2MetalinkProcessorTest.cc\
MetalinkerTest.cc\
MetalinkEntryTest.cc\
FeatureConfigTest.cc\
ShareRatioSeedCriteriaTest.cc\
TimeSeedCriteriaTest.cc\
SpeedCalcTest.cc\
DefaultPeerListProcessorTest.cc\
AnnounceListTest.cc\
TrackerWatcherCommandTest.cc\
DefaultBtContextTest.cc\
DefaultPieceStorageTest.cc\
DefaultPeerStorageTest.cc\
DefaultBtAnnounceTest.cc\
BtRegistryTest.cc\
DefaultBtMessageDispatcherTest.cc\
MockPeerStorage.h\
DefaultBtRequestFactoryTest.cc\
PeerTest.cc\
BtAllowedFastMessageTest.cc\
BtBitfieldMessageTest.cc\
BtCancelMessageTest.cc\
BtChokeMessageTest.cc\
BtHaveAllMessageTest.cc\
BtHaveMessageTest.cc\
BtHaveNoneMessageTest.cc\
BtInterestedMessageTest.cc\
BtKeepAliveMessageTest.cc\
BtNotInterestedMessageTest.cc\
BtPieceMessageTest.cc\
BtPortMessageTest.cc\
BtRejectMessageTest.cc\
BtRequestMessageTest.cc\
BtSuggestPieceMessageTest.cc\
BtUnchokeMessageTest.cc\
BtHandshakeMessageTest.cc\
MockBtMessageDispatcher.h\
FixedNumberRandomizer.h\
MockBtMessageFactory.h\
MockBtMessage.h\
ConsoleFileAllocationMonitorTest.cc\
ChunkChecksumValidatorTest.cc
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: