summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-07-04 10:57:56 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-07-04 10:57:56 +0000
commit31cf446f6d078efe96fe0d5e7433cf56a224a493 (patch)
tree42cecd9e9a52261c509bd8a2b18032d2f6d517ee
parent8d340992d61ae1649f5ae0b9374bb48a6ac38a8b (diff)
2006-07-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To improve the conditional compilation: * src/MultiDiskWriter.h: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. * src/MultiDiskWriter.cc: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. * src/Util.h: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. Added ENABLE_BITTORRENT around computeFastSet(). * src/Util.cc: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. Added ENABLE_BITTORRENT around computeFastSet(). * src/messageDigest.h: Replaced ENABLE_BITTORRENT with ENABLE_SSL. * src/ShaVisitor.h: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. * src/ShaVisitor.cc: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. * src/main.cc: Added ENABLE_BITTORRENT around includes and blocks related to BitTorrent. * src/AbstractDiskWriter.h: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. * src/AbstractDiskWriter.cc: Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST. To add command-line options for Metalink: * src/main.cc: Added metalink-version, metalink-language, metalink-os, follow-metalink. To use EXIT_SUCCESS and EXIT_FAILURE with exit(): * src/main.cc: Use these definition.
-rw-r--r--ChangeLog38
-rw-r--r--Makefile.in4
-rw-r--r--TODO8
-rw-r--r--config.h.in6
-rwxr-xr-xconfigure139
-rw-r--r--configure.ac35
-rw-r--r--m4/Makefile.in4
-rw-r--r--po/Makefile.in2
-rw-r--r--po/aria2c.pot206
-rw-r--r--po/de.gmobin21381 -> 21381 bytes
-rw-r--r--po/de.po224
-rw-r--r--po/ja.gmobin22217 -> 24587 bytes
-rw-r--r--po/ja.po224
-rw-r--r--src/AbstractDiskWriter.cc12
-rw-r--r--src/AbstractDiskWriter.h8
-rw-r--r--src/Makefile.am21
-rw-r--r--src/Makefile.in360
-rw-r--r--src/MultiDiskWriter.cc16
-rw-r--r--src/MultiDiskWriter.h4
-rw-r--r--src/ShaVisitor.cc24
-rw-r--r--src/ShaVisitor.h8
-rw-r--r--src/Util.cc10
-rw-r--r--src/Util.h10
-rw-r--r--src/Xml2MetalinkProcessor.cc4
-rw-r--r--src/main.cc188
-rw-r--r--src/messageDigest.h4
-rw-r--r--test/Makefile.in4
27 files changed, 1030 insertions, 533 deletions
diff --git a/ChangeLog b/ChangeLog
index d6b0ac1f..9659a831 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+2006-07-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
+
+ To improve the conditional compilation:
+
+ * src/MultiDiskWriter.h:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ * src/MultiDiskWriter.cc:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ * src/Util.h:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ Added ENABLE_BITTORRENT around computeFastSet().
+ * src/Util.cc:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ Added ENABLE_BITTORRENT around computeFastSet().
+ * src/messageDigest.h:
+ Replaced ENABLE_BITTORRENT with ENABLE_SSL.
+ * src/ShaVisitor.h:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ * src/ShaVisitor.cc:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ * src/main.cc:
+ Added ENABLE_BITTORRENT around includes and blocks related to
+ BitTorrent.
+ * src/AbstractDiskWriter.h:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+ * src/AbstractDiskWriter.cc:
+ Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
+
+ To add command-line options for Metalink:
+
+ * src/main.cc:
+ Added metalink-version, metalink-language, metalink-os,
+ follow-metalink.
+
+ To use EXIT_SUCCESS and EXIT_FAILURE with exit():
+
+ * src/main.cc: Use these definition.
+
2006-07-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add Metalink support(http/ftp only):
diff --git a/Makefile.in b/Makefile.in
index 7375f735..5bc1d372 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -113,6 +113,10 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_BITTORRENT_FALSE = @ENABLE_BITTORRENT_FALSE@
+ENABLE_BITTORRENT_TRUE = @ENABLE_BITTORRENT_TRUE@
+ENABLE_METALINK_FALSE = @ENABLE_METALINK_FALSE@
+ENABLE_METALINK_TRUE = @ENABLE_METALINK_TRUE@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
diff --git a/TODO b/TODO
index 3a7fcb11..b590fc88 100644
--- a/TODO
+++ b/TODO
@@ -4,16 +4,10 @@
* Add SSL client cert support
* Better HTTP status handling
* Download files listed in a specifed file.
-* check MD5 checksum
* Add the feature which adds or removes URLs on-the-fly.
-* Tracker UDP protocol
* no-compact peers format
* Add port range command-line option
* Add max peers command-line option
-* Distinguish seeder from leecher
-* Add Mainline-compatible DHT support
-* Add Message stream encryption support
* Refacturing HttpConnection and FtpConnection
-* Use EXIT_SUCCESS and EXIT_FAILURE
* Query resource by location
-* Conditional compilation based on ENABLE_LIBXML2 \ No newline at end of file
+* Log version
diff --git a/config.h.in b/config.h.in
index a13a4822..6ae3d48a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -11,6 +11,9 @@
/* Define to 1 if BitTorrent support is enabled. */
#undef ENABLE_BITTORRENT
+/* Define to 1 if message digest support is enabled. */
+#undef ENABLE_MESSAGE_DIGEST
+
/* Define to 1 if Metalink support is enabled. */
#undef ENABLE_METALINK
@@ -18,9 +21,6 @@
language is requested. */
#undef ENABLE_NLS
-/* Define to 1 if SHA1 Digest support is enabled. */
-#undef ENABLE_SHA1DIGEST
-
/* Define to 1 if ssl support is enabled. */
#undef ENABLE_SSL
diff --git a/configure b/configure
index cf884209..020ed24d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for aria2c 0.5.2.
+# Generated by GNU Autoconf 2.59 for aria2c 0.6.0.
#
# Report bugs to <tujikawa@rednoah.com>.
#
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='aria2c'
PACKAGE_TARNAME='aria2c'
-PACKAGE_VERSION='0.5.2'
-PACKAGE_STRING='aria2c 0.5.2'
+PACKAGE_VERSION='0.6.0'
+PACKAGE_STRING='aria2c 0.6.0'
PACKAGE_BUGREPORT='tujikawa@rednoah.com'
ac_unique_file="src/Socket.h"
@@ -311,7 +311,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CPPUNIT_CONFIG CPPUNIT_CFLAGS CPPUNIT_LIBS localedir CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC XML2_CONFIG XML_CPPFLAGS XML_LIBS LIBGNUTLS_CONFIG LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS LIBGCRYPT_CONFIG LIBGCRYPT_CFLAGS LIBGCRYPT_LIBS OPENSSL_LIBS OPENSSL_CFLAGS ALLOCA CPP EGREP MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CPPUNIT_CONFIG CPPUNIT_CFLAGS CPPUNIT_LIBS localedir CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC XML2_CONFIG XML_CPPFLAGS XML_LIBS LIBGNUTLS_CONFIG LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS LIBGCRYPT_CONFIG LIBGCRYPT_CFLAGS LIBGCRYPT_LIBS OPENSSL_LIBS OPENSSL_CFLAGS ENABLE_BITTORRENT_TRUE ENABLE_BITTORRENT_FALSE ENABLE_METALINK_TRUE ENABLE_METALINK_FALSE ALLOCA CPP EGREP MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -788,7 +788,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures aria2c 0.5.2 to adapt to many kinds of systems.
+\`configure' configures aria2c 0.6.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -854,13 +854,15 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of aria2c 0.5.2:";;
+ short | recursive ) echo "Configuration of aria2c 0.6.0:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-bittorrent enable BitTorrent support. Default: yes
+ --enable-metalink enable Metalink support. Default: yes
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-xmltest Do not try to compile and run a test LIBXML program
@@ -998,7 +1000,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-aria2c configure 0.5.2
+aria2c configure 0.6.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1012,7 +1014,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by aria2c $as_me 0.5.2, which was
+It was created by aria2c $as_me 0.6.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1655,7 +1657,7 @@ fi
# Define the identity of the package.
PACKAGE='aria2c'
- VERSION='0.5.2'
+ VERSION='0.6.0'
cat >>confdefs.h <<_ACEOF
@@ -1946,6 +1948,20 @@ else
with_libxml2=yes
fi;
+# Check whether --enable-bittorrent or --disable-bittorrent was given.
+if test "${enable_bittorrent+set}" = set; then
+ enableval="$enable_bittorrent"
+ enable_bittorrent=$enableval
+else
+ enable_bittorrent=yes
+fi;
+# Check whether --enable-metalink or --disable-metalink was given.
+if test "${enable_metalink+set}" = set; then
+ enableval="$enable_metalink"
+ enable_metalink=$enableval
+else
+ enable_metalink=yes
+fi;
# Checks for programs.
ac_ext=cc
@@ -4437,14 +4453,6 @@ _ACEOF
fi
if test "x$with_openssl" = "xyes" && test "x$have_libgnutls" != "xyes"; then
-# AC_CHECK_LIB([ssl], [SSL_library_init], [have_openssl=yes])
-# if test "x$have_openssl" = "xyes"; then
-# AC_DEFINE([HAVE_LIBSSL], [1], [Define to 1 if you have openssl.])
-# OPENSSL_LIBS="-lssl"
-# OPENSSL_CFLAGS=""
-# AC_SUBST(OPENSSL_LIBS)
-# AC_SUBST(OPENSSL_CFLAGS)
-# fi
# Check whether --with-openssl-prefix or --without-openssl-prefix was given.
@@ -4617,35 +4625,82 @@ CPPFLAGS=$CPPFLAGS_save
fi
-if test "x$have_libxml2" = "xyes"; then
+# Define variables based on the result of the checks for libraries.
+if test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
-#define ENABLE_METALINK 1
+#define ENABLE_SSL 1
_ACEOF
fi
-if test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then
+if test "x$have_libgcrypt" = "xyes" || test "x$have_openssl" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
-#define ENABLE_SSL 1
+#define ENABLE_MESSAGE_DIGEST 1
_ACEOF
+ enable_message_digest=yes
fi
-if test "x$have_libgcrypt" = "xyes" || test "x$have_openssl" = "xyes"; then
+if test "x$enable_bittorrent" = "xyes" && test "x$enable_message_digest" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
-#define ENABLE_SHA1DIGEST 1
+#define ENABLE_BITTORRENT 1
_ACEOF
+
+if true; then
+ ENABLE_BITTORRENT_TRUE=
+ ENABLE_BITTORRENT_FALSE='#'
+else
+ ENABLE_BITTORRENT_TRUE='#'
+ ENABLE_BITTORRENT_FALSE=
+fi
+
+else
+
+
+if false; then
+ ENABLE_BITTORRENT_TRUE=
+ ENABLE_BITTORRENT_FALSE='#'
+else
+ ENABLE_BITTORRENT_TRUE='#'
+ ENABLE_BITTORRENT_FALSE=
+fi
+
+fi
+
+if test "x$have_libxml2" = "xyes" && test "x$enable_metalink" = "xyes" && \
+ test "x$enable_message_digest" = "xyes"; then
+
cat >>confdefs.h <<\_ACEOF
-#define ENABLE_BITTORRENT 1
+#define ENABLE_METALINK 1
_ACEOF
+
+
+if true; then
+ ENABLE_METALINK_TRUE=
+ ENABLE_METALINK_FALSE='#'
+else
+ ENABLE_METALINK_TRUE='#'
+ ENABLE_METALINK_FALSE=
fi
+else
+
+
+if false; then
+ ENABLE_METALINK_TRUE=
+ ENABLE_METALINK_FALSE='#'
+else
+ ENABLE_METALINK_TRUE='#'
+ ENABLE_METALINK_FALSE=
+fi
+
+fi
# Checks for header files.
ac_ext=c
@@ -11590,6 +11645,34 @@ echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENABLE_BITTORRENT_TRUE}" && test -z "${ENABLE_BITTORRENT_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_BITTORRENT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_BITTORRENT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENABLE_BITTORRENT_TRUE}" && test -z "${ENABLE_BITTORRENT_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_BITTORRENT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_BITTORRENT\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENABLE_METALINK_TRUE}" && test -z "${ENABLE_METALINK_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_METALINK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_METALINK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENABLE_METALINK_TRUE}" && test -z "${ENABLE_METALINK_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_METALINK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_METALINK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
@@ -11861,7 +11944,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by aria2c $as_me 0.5.2, which was
+This file was extended by aria2c $as_me 0.6.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11924,7 +12007,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-aria2c config.status 0.5.2
+aria2c config.status 0.6.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -12197,6 +12280,10 @@ s,@LIBGCRYPT_CFLAGS@,$LIBGCRYPT_CFLAGS,;t t
s,@LIBGCRYPT_LIBS@,$LIBGCRYPT_LIBS,;t t
s,@OPENSSL_LIBS@,$OPENSSL_LIBS,;t t
s,@OPENSSL_CFLAGS@,$OPENSSL_CFLAGS,;t t
+s,@ENABLE_BITTORRENT_TRUE@,$ENABLE_BITTORRENT_TRUE,;t t
+s,@ENABLE_BITTORRENT_FALSE@,$ENABLE_BITTORRENT_FALSE,;t t
+s,@ENABLE_METALINK_TRUE@,$ENABLE_METALINK_TRUE,;t t
+s,@ENABLE_METALINK_FALSE@,$ENABLE_METALINK_FALSE,;t t
s,@ALLOCA@,$ALLOCA,;t t
s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t
diff --git a/configure.ac b/configure.ac
index 840bef1b..37f05285 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
#
AC_PREREQ(2.59)
-AC_INIT(aria2c, 0.5.2, tujikawa@rednoah.com)
+AC_INIT(aria2c, 0.6.0, tujikawa@rednoah.com)
AM_INIT_AUTOMAKE()
AM_PATH_CPPUNIT(1.10.2)
AC_CONFIG_SRCDIR([src/Socket.h])
@@ -17,6 +17,8 @@ AC_ARG_WITH([gnutls], [ --with-gnutls use gnutls library if insta
AC_ARG_WITH([openssl], [ --with-openssl use openssl library if installed. Default: yes], [with_openssl=$enableval], [with_openssl=yes])
AC_ARG_WITH([libxml2], [ --with-libxml2 use libxml2 library if installed. Default: yes], [with_libxml2=$enableval], [with_libxml2=yes])
+AC_ARG_ENABLE([bittorrent], [ --enable-bittorrent enable BitTorrent support. Default: yes], [enable_bittorrent=$enableval], [enable_bittorrent=yes])
+AC_ARG_ENABLE([metalink], [ --enable-metalink enable Metalink support. Default: yes], [enable_metalink=$enableval], [enable_metalink=yes])
# Checks for programs.
AC_PROG_CXX
@@ -48,30 +50,33 @@ if test "x$have_libgnutls" = "xyes"; then
fi
if test "x$with_openssl" = "xyes" && test "x$have_libgnutls" != "xyes"; then
-# AC_CHECK_LIB([ssl], [SSL_library_init], [have_openssl=yes])
-# if test "x$have_openssl" = "xyes"; then
-# AC_DEFINE([HAVE_LIBSSL], [1], [Define to 1 if you have openssl.])
-# OPENSSL_LIBS="-lssl"
-# OPENSSL_CFLAGS=""
-# AC_SUBST(OPENSSL_LIBS)
-# AC_SUBST(OPENSSL_CFLAGS)
-# fi
AM_PATH_OPENSSL
fi
-if test "x$have_libxml2" = "xyes"; then
- AC_DEFINE([ENABLE_METALINK], [1], [Define to 1 if Metalink support is enabled.])
-fi
-
+# Define variables based on the result of the checks for libraries.
if test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then
AC_DEFINE([ENABLE_SSL], [1], [Define to 1 if ssl support is enabled.])
fi
if test "x$have_libgcrypt" = "xyes" || test "x$have_openssl" = "xyes"; then
- AC_DEFINE([ENABLE_SHA1DIGEST], [1], [Define to 1 if SHA1 Digest support is enabled.])
- AC_DEFINE([ENABLE_BITTORRENT], [1], [Define to 1 if BitTorrent support is enabled.])
+ AC_DEFINE([ENABLE_MESSAGE_DIGEST], [1], [Define to 1 if message digest support is enabled.])
+ enable_message_digest=yes
fi
+if test "x$enable_bittorrent" = "xyes" && test "x$enable_message_digest" = "xyes"; then
+ AC_DEFINE([ENABLE_BITTORRENT], [1], [Define to 1 if BitTorrent support is enabled.])
+ AM_CONDITIONAL([ENABLE_BITTORRENT], true)
+else
+ AM_CONDITIONAL([ENABLE_BITTORRENT], false)
+fi
+
+if test "x$have_libxml2" = "xyes" && test "x$enable_metalink" = "xyes" && \
+ test "x$enable_message_digest" = "xyes"; then
+ AC_DEFINE([ENABLE_METALINK], [1], [Define to 1 if Metalink support is enabled.])
+ AM_CONDITIONAL([ENABLE_METALINK], true)
+else
+ AM_CONDITIONAL([ENABLE_METALINK], false)
+fi
# Checks for header files.
AC_FUNC_ALLOCA
diff --git a/m4/Makefile.in b/m4/Makefile.in
index fa7a7484..6fdc6512 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -87,6 +87,10 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_BITTORRENT_FALSE = @ENABLE_BITTORRENT_FALSE@
+ENABLE_BITTORRENT_TRUE = @ENABLE_BITTORRENT_TRUE@
+ENABLE_METALINK_FALSE = @ENABLE_METALINK_FALSE@
+ENABLE_METALINK_TRUE = @ENABLE_METALINK_TRUE@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
diff --git a/po/Makefile.in b/po/Makefile.in
index e58e66e5..e65c6de1 100644
--- a/po/Makefile.in
+++ b/po/Makefile.in
@@ -9,7 +9,7 @@
# General Public License and is *not* in the public domain.
PACKAGE = aria2c
-VERSION = 0.5.2
+VERSION = 0.6.0
SHELL = /bin/sh
diff --git a/po/aria2c.pot b/po/aria2c.pot
index a67f13a5..65fcae14 100644
--- a/po/aria2c.pot
+++ b/po/aria2c.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://aria2.sourceforge.net/\n"
-"POT-Creation-Date: 2006-05-27 00:27+0900\n"
+"POT-Creation-Date: 2006-07-04 01:30+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"
@@ -329,39 +329,39 @@ msgstr ""
msgid "Failed to peek data, cause: %s"
msgstr ""
-#: src/main.cc:65
+#: src/main.cc:76
#, c-format
msgid ""
"\n"
"The download was complete. <%s>\n"
msgstr ""
-#: src/main.cc:73
+#: src/main.cc:84
msgid ""
"\n"
"The download was not complete because of errors. Check the log.\n"
msgstr ""
-#: src/main.cc:88
+#: src/main.cc:101
msgid ""
"\n"
"stopping application...\n"
msgstr ""
-#: src/main.cc:94
+#: src/main.cc:107
msgid "done\n"
msgstr ""
-#: src/main.cc:125
+#: src/main.cc:123
#, c-format
msgid "Unrecognized URL or unsupported protocol: %s\n"
msgstr ""
-#: src/main.cc:131
+#: src/main.cc:129
msgid " version "
msgstr ""
-#: src/main.cc:135
+#: src/main.cc:133
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"
@@ -378,45 +378,50 @@ msgid ""
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
msgstr ""
-#: src/main.cc:149
+#: src/main.cc:147
#, c-format
msgid "Contact Info: %s\n"
msgstr ""
-#: src/main.cc:155
+#: src/main.cc:153
#, c-format
msgid "Usage: %s [options] URL ...\n"
msgstr ""
-#: src/main.cc:157
+#: src/main.cc:155
#, c-format
msgid " %s [options] -T TORRENT_FILE FILE ...\n"
msgstr ""
-#: src/main.cc:160
-msgid "Options:"
+#: src/main.cc:158
+#, c-format
+msgid " %s [options] -M METALINK_FILE\n"
msgstr ""
#: src/main.cc:161
-msgid " -d, --dir=DIR The directory to store downloaded file."
+msgid "Options:"
msgstr ""
#: src/main.cc:162
-msgid " -o, --out=FILE The file name for downloaded file."
+msgid " -d, --dir=DIR The directory to store downloaded file."
msgstr ""
#: src/main.cc:163
+msgid " -o, --out=FILE The file name for downloaded file."
+msgstr ""
+
+#: src/main.cc:164
msgid ""
" -l, --log=LOG The file path to store log. If '-' is "
"specified,\n"
" log is written to stdout."
msgstr ""
-#: src/main.cc:165
+#: src/main.cc:166
msgid " -D, --daemon Run as daemon."
msgstr ""
-#: src/main.cc:166
+#: src/main.cc:167
msgid ""
" -s, --split=N Download a file using N connections. N must "
"be\n"
@@ -426,24 +431,24 @@ msgid ""
" N connections."
msgstr ""
-#: src/main.cc:170
+#: src/main.cc:171
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:173
+#: src/main.cc:174
msgid " -t, --timeout=SEC Set timeout in second. Default: 60"
msgstr ""
-#: src/main.cc:174
+#: src/main.cc:175
msgid ""
" -m, --max-tries=N Set number of tries. 0 means unlimited.\n"
" Default: 5"
msgstr ""
-#: src/main.cc:176
+#: src/main.cc:177
msgid ""
" --min-segment-size=SIZE[K|M] Set minimum segment size. You can append\n"
" K or M(1K = 1024, 1M = 1024K). This\n"
@@ -451,40 +456,40 @@ msgid ""
" 1024."
msgstr ""
-#: src/main.cc:180
+#: src/main.cc:181
msgid ""
" --http-proxy=HOST:PORT Use HTTP proxy server. This affects to all\n"
" URLs."
msgstr ""
-#: src/main.cc:182
+#: src/main.cc:183
msgid " --http-user=USER Set HTTP user. This affects to all URLs."
msgstr ""
-#: src/main.cc:183
+#: src/main.cc:184
msgid ""
" --http-passwd=PASSWD Set HTTP password. This affects to all URLs."
msgstr ""
-#: src/main.cc:184
+#: src/main.cc:185
msgid ""
" --http-proxy-user=USER Set HTTP proxy user. This affects to all URLs"
msgstr ""
-#: src/main.cc:185
+#: src/main.cc:186
msgid ""
" --http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all "
"URLs."
msgstr ""
-#: src/main.cc:186
+#: src/main.cc:187
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:189
+#: src/main.cc:190
msgid ""
" --http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, "
"basic\n"
@@ -492,23 +497,23 @@ msgid ""
" Default: basic"
msgstr ""
-#: src/main.cc:192
+#: src/main.cc:193
msgid " --referer=REFERER Set Referer. This affects to all URLs."
msgstr ""
-#: src/main.cc:193
+#: src/main.cc:194
msgid ""
" --ftp-user=USER Set FTP user. This affects to all URLs.\n"
" Default: anonymous"
msgstr ""
-#: src/main.cc:195
+#: src/main.cc:196
msgid ""
" --ftp-passwd=PASSWD Set FTP password. This affects to all URLs.\n"
" Default: ARIA2USER@"
msgstr ""
-#: src/main.cc:197
+#: src/main.cc:198
msgid ""
" --ftp-type=TYPE Set FTP transfer type. TYPE is either "
"'binary'\n"
@@ -516,11 +521,11 @@ msgid ""
" Default: binary"
msgstr ""
-#: src/main.cc:200
+#: src/main.cc:201
msgid " -p, --ftp-pasv Use passive mode in FTP."
msgstr ""
-#: src/main.cc:201
+#: src/main.cc:202
msgid ""
" --ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either 'get' "
"or\n"
@@ -528,11 +533,11 @@ msgid ""
" Default: tunnel"
msgstr ""
-#: src/main.cc:205
+#: src/main.cc:206
msgid " -T, --torrent-file=TORRENT_FILE The file path to .torrent file."
msgstr ""
-#: src/main.cc:206
+#: src/main.cc:207
msgid ""
" --follow-torrent=true|false Setting this option to false prevents aria2 "
"to\n"
@@ -541,25 +546,25 @@ msgid ""
" Default: true"
msgstr ""
-#: src/main.cc:210
+#: src/main.cc:211
msgid ""
" -S, --show-files Print file listing of .torrent file and exit."
msgstr ""
-#: src/main.cc:211
+#: src/main.cc:212
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:214
+#: src/main.cc:215
msgid ""
" --listen-port=PORT Set port number to listen to for peer "
"connection."
msgstr ""
-#: src/main.cc:215
+#: src/main.cc:216
msgid ""
" --upload-limit=SPEED Set upload speed limit in KB/sec. aria2 tries "
"to\n"
@@ -567,7 +572,7 @@ msgid ""
"unlimited."
msgstr ""
-#: src/main.cc:217
+#: src/main.cc:218
msgid ""
" --select-file=INDEX... Set file to download by specifing its index.\n"
" You can know file index through --show-files\n"
@@ -579,135 +584,190 @@ msgid ""
" ',' and '-' can be used together."
msgstr ""
-#: src/main.cc:224
+#: src/main.cc:226
+msgid " -M, --metalink-file=METALINK_FILE The file path to .metalink file."
+msgstr ""
+
+#: src/main.cc:227
+msgid ""
+" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
+" simultaneously. If more than one connection "
+"per\n"
+" server is required, use -s option.\n"
+" Default: 15"
+msgstr ""
+
+#: src/main.cc:231
+msgid " --metalink-version=VERSION The version of file to download."
+msgstr ""
+
+#: src/main.cc:232
+msgid " --metalink-language=LANGUAGE The language of file to download."
+msgstr ""
+
+#: src/main.cc:233
+msgid ""
+" --metalink-os=OS The operating system the file is targeted."
+msgstr ""
+
+#: src/main.cc:234
+msgid ""
+" --follow-metalink=true|false Setting this option to false prevents aria2 "
+"to\n"
+" enter Metalink mode even if the filename of\n"
+" downloaded file ends with .metalink.\n"
+" Default: true"
+msgstr ""
+
+#: src/main.cc:239
msgid " -v, --version Print the version number and exit."
msgstr ""
-#: src/main.cc:225
+#: src/main.cc:240
msgid " -h, --help Print this message and exit."
msgstr ""
-#: src/main.cc:228
+#: src/main.cc:243
msgid ""
" You can specify multiple URLs. All URLs must point to the same file\n"
" or downloading fails."
msgstr ""
-#: src/main.cc:233
+#: src/main.cc:248
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:237
+#: src/main.cc:252
msgid "Examples:"
msgstr ""
-#: src/main.cc:238
+#: src/main.cc:253
msgid " Download a file by 1 connection:"
msgstr ""
-#: src/main.cc:240
+#: src/main.cc:255
msgid " Download a file by 2 connections:"
msgstr ""
-#: src/main.cc:242
+#: src/main.cc:257
msgid " Download a file by 2 connections, each connects to a different server:"
msgstr ""
-#: src/main.cc:244
+#: src/main.cc:259
msgid " You can mix up different protocols:"
msgstr ""
-#: src/main.cc:247
+#: src/main.cc:263
msgid " Download a torrent:"
msgstr ""
-#: src/main.cc:249
+#: src/main.cc:265
msgid " Download a torrent using local .torrent file:"
msgstr ""
-#: src/main.cc:251
+#: src/main.cc:267
msgid " Download only selected files:"
msgstr ""
-#: src/main.cc:253
+#: src/main.cc:269
msgid " Print file listing of .torrent file:"
msgstr ""
-#: src/main.cc:257
+#: src/main.cc:274
+msgid " Metalink downloading:"
+msgstr ""
+
+#: src/main.cc:276
+msgid " Download a file using local .metalink file:"
+msgstr ""
+
+#: src/main.cc:278
+msgid " Metalink downloading with preferences:"
+msgstr ""
+
+#: src/main.cc:282
#, c-format
msgid "Report bugs to %s"
msgstr ""
-#: src/main.cc:353
+#: src/main.cc:444
msgid "unrecognized proxy format"
msgstr ""
-#: src/main.cc:380
+#: src/main.cc:471
msgid "Currently, supported authentication scheme is basic."
msgstr ""
-#: src/main.cc:389
+#: src/main.cc:480
msgid "retry-wait must be between 0 and 60."
msgstr ""
-#: src/main.cc:406
+#: src/main.cc:497
msgid "ftp-type must be either 'binary' or 'ascii'."
msgstr ""
-#: src/main.cc:415
+#: src/main.cc:506
msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
msgstr ""
-#: src/main.cc:433
+#: src/main.cc:524
msgid "min-segment-size invalid"
msgstr ""
-#: src/main.cc:444
+#: src/main.cc:535
msgid "http-proxy-method must be either 'get' or 'tunnel'."
msgstr ""
-#: src/main.cc:452
+#: src/main.cc:543
msgid "listen-port must be between 1024 and 65535."
msgstr ""
-#: src/main.cc:463
+#: src/main.cc:554
msgid "follow-torrent must be either 'true' or 'false'."
msgstr ""
-#: src/main.cc:477
+#: src/main.cc:568
msgid "direct-file-mapping must be either 'true' or 'false'."
msgstr ""
-#: src/main.cc:485
+#: src/main.cc:576
msgid "upload-limit must be greater than or equal to 0."
msgstr ""
-#: src/main.cc:517
+#: src/main.cc:601
+msgid "follow-metalink must be either 'true' or 'false'."
+msgstr ""
+
+#: src/main.cc:628
msgid "split must be between 1 and 5."
msgstr ""
-#: src/main.cc:527
+#: src/main.cc:638
msgid "timeout must be between 1 and 600"
msgstr ""
-#: src/main.cc:536
+#: src/main.cc:647
msgid "max-tries invalid"
msgstr ""
-#: src/main.cc:565
+#: src/main.cc:669
+msgid "metalink-servers must be greater than 0."
+msgstr ""
+
+#: src/main.cc:687
msgid "specify at least one URL"
msgstr ""
-#: src/main.cc:572
+#: src/main.cc:694
msgid "daemon failed"
msgstr ""
-#: src/main.cc:673
+#: src/main.cc:831
msgid "Files:"
msgstr ""
-#: src/main.cc:704
+#: src/main.cc:862
msgid "Errors occurred while binding port.\n"
msgstr ""
diff --git a/po/de.gmo b/po/de.gmo
index 16f8221e..59e8ef30 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index d8961ee2..7eeab7d1 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: http://aria2.sourceforge.net/\n"
-"POT-Creation-Date: 2006-05-27 00:27+0900\n"
+"POT-Creation-Date: 2006-07-04 01:30+0900\n"
"PO-Revision-Date: 2006-05-05 19:44+0900\n"
"Last-Translator: Hermann J. Beckers <hj.beckers@onlinehome.de>\n"
"Language-Team: deutsch <de@li.org>\n"
@@ -338,7 +338,7 @@ msgstr "Konnte Daten nicht erhalten, Ursache: %s"
msgid "Failed to peek data, cause: %s"
msgstr "Datenermittelung fehlgeschlagen, Ursache: %s"
-#: src/main.cc:65
+#: src/main.cc:76
#, c-format
msgid ""
"\n"
@@ -347,7 +347,7 @@ msgstr ""
"\n"
"Abruf ist vollständig. <%s>\n"
-#: src/main.cc:73
+#: src/main.cc:84
msgid ""
"\n"
"The download was not complete because of errors. Check the log.\n"
@@ -355,7 +355,7 @@ msgstr ""
"\n"
"Abruf wegen Fehlern nicht vollständig. Überprüfen Sie die Log-Datei.\n"
-#: src/main.cc:88
+#: src/main.cc:101
msgid ""
"\n"
"stopping application...\n"
@@ -363,20 +363,20 @@ msgstr ""
"\n"
"Anwendung wird gestoppt ...\n"
-#: src/main.cc:94
+#: src/main.cc:107
msgid "done\n"
msgstr "erledigt\n"
-#: src/main.cc:125
+#: src/main.cc:123
#, c-format
msgid "Unrecognized URL or unsupported protocol: %s\n"
msgstr "URL nicht erkannt oder nicht unterstütztes Protokoll: %s\n"
-#: src/main.cc:131
+#: src/main.cc:129
msgid " version "
msgstr " Version "
-#: src/main.cc:135
+#: src/main.cc:133
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,36 +406,41 @@ 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:149
+#: src/main.cc:147
#, c-format
msgid "Contact Info: %s\n"
msgstr "Kontakt-Info: %s\n"
-#: src/main.cc:155
+#: src/main.cc:153
#, c-format
msgid "Usage: %s [options] URL ...\n"
msgstr "Aufruf: %s [Optionen] URL ...\n"
-#: src/main.cc:157
+#: src/main.cc:155
#, c-format
msgid " %s [options] -T TORRENT_FILE FILE ...\n"
msgstr " %s [Optionen] -T TORRENT_FILE FILE ...\n"
-#: src/main.cc:160
+#: src/main.cc:158
+#, fuzzy, c-format
+msgid " %s [options] -M METALINK_FILE\n"
+msgstr " %s [Optionen] -T TORRENT_FILE FILE ...\n"
+
+#: src/main.cc:161
msgid "Options:"
msgstr "Optionen:"
-#: src/main.cc:161
+#: src/main.cc:162
msgid " -d, --dir=DIR The directory to store downloaded file."
msgstr ""
" -d, --dir=DIR Verzeichnis zum Speichern der abgerufenen "
"Datei."
-#: src/main.cc:162
+#: src/main.cc:163
msgid " -o, --out=FILE The file name for downloaded file."
msgstr " -o, --out=FILE Dateiname für die abgerufene Datei."
-#: src/main.cc:163
+#: src/main.cc:164
msgid ""
" -l, --log=LOG The file path to store log. If '-' is "
"specified,\n"
@@ -446,11 +451,11 @@ msgstr ""
" wird das Log auf die Standardausgabe "
"geschrieben."
-#: src/main.cc:165
+#: src/main.cc:166
msgid " -D, --daemon Run as daemon."
msgstr " -D, --daemon Start als Daemon-Prozeß."
-#: src/main.cc:166
+#: src/main.cc:167
msgid ""
" -s, --split=N Download a file using N connections. N must "
"be\n"
@@ -466,7 +471,7 @@ msgstr ""
" Daher verbindet sich aria2 zu jeder URL mit\n"
" N Verbindungen."
-#: src/main.cc:170
+#: src/main.cc:171
msgid ""
" --retry-wait=SEC Set amount of time in second between requests\n"
" for errors. Specify a value between 0 and 60.\n"
@@ -478,12 +483,12 @@ msgstr ""
"und 60 an.\n"
" Fehlwert: 5"
-#: src/main.cc:173
+#: src/main.cc:174
msgid " -t, --timeout=SEC Set timeout in second. Default: 60"
msgstr ""
" -t, --timeout=SEC Setzt Wartezeit in Sekunden. Fehlwert: 60"
-#: src/main.cc:174
+#: src/main.cc:175
msgid ""
" -m, --max-tries=N Set number of tries. 0 means unlimited.\n"
" Default: 5"
@@ -491,7 +496,7 @@ msgstr ""
" -m, --max-tries=N Anzahl Versuche. 0 bedeutet unbegrenzt.\n"
" Fehlwert: 5"
-#: src/main.cc:176
+#: src/main.cc:177
msgid ""
" --min-segment-size=SIZE[K|M] Set minimum segment size. You can append\n"
" K or M(1K = 1024, 1M = 1024K). This\n"
@@ -504,7 +509,7 @@ msgstr ""
" Wert muss größer oder gleich \n"
" 1024 sein."
-#: src/main.cc:180
+#: src/main.cc:181
msgid ""
" --http-proxy=HOST:PORT Use HTTP proxy server. This affects to all\n"
" URLs."
@@ -512,26 +517,26 @@ msgstr ""
" --http-proxy=HOST:PORT HTTP-Proxyserver benutzen. Dies betrifft alle\n"
" URLs."
-#: src/main.cc:182
+#: src/main.cc:183
msgid " --http-user=USER Set HTTP user. This affects to all URLs."
msgstr ""
" --http-user=USER HTTP-Anwendername angeben. Dies betrifft alle "
"URLs."
-#: src/main.cc:183
+#: src/main.cc:184
msgid ""
" --http-passwd=PASSWD Set HTTP password. This affects to all URLs."
msgstr ""
" --http-passwd=PASSWD HTTP-Passwort setzen. Dies betrifft alle URLs."
-#: src/main.cc:184
+#: src/main.cc:185
msgid ""
" --http-proxy-user=USER Set HTTP proxy user. This affects to all URLs"
msgstr ""
" --http-proxy-user=USER HTTP-Proxy-Anwender setzen. Dies betrifft alle "
"URLs."
-#: src/main.cc:185
+#: src/main.cc:186
msgid ""
" --http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all "
"URLs."
@@ -539,7 +544,7 @@ msgstr ""
" --http-proxy-passwd=PASSWD HTTP-Proxy-Passwort setzen. Dies betrifft alle "
"URLs."
-#: src/main.cc:186
+#: src/main.cc:187
msgid ""
" --http-proxy-method=METHOD Set the method to use in proxy request.\n"
" METHOD is either 'get' or 'tunnel'.\n"
@@ -550,7 +555,7 @@ msgstr ""
" METHOD ist entweder 'get' oder 'tunnel'.\n"
" Fehlwert: tunnel"
-#: src/main.cc:189
+#: src/main.cc:190
msgid ""
" --http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, "
"basic\n"
@@ -562,11 +567,11 @@ msgstr ""
" das einzig zulässige Schema.\n"
" Fehlwert: basic"
-#: src/main.cc:192
+#: src/main.cc:193
msgid " --referer=REFERER Set Referer. This affects to all URLs."
msgstr " --referer=REFERER Referer setzen. Dies betrifft alle URLs."
-#: src/main.cc:193
+#: src/main.cc:194
msgid ""
" --ftp-user=USER Set FTP user. This affects to all URLs.\n"
" Default: anonymous"
@@ -574,7 +579,7 @@ msgstr ""
" --ftp-user=USER FTP-Anwender setzen. Dies betrifft alle URLs.\n"
" Fehlwert: anonymous"
-#: src/main.cc:195
+#: src/main.cc:196
msgid ""
" --ftp-passwd=PASSWD Set FTP password. This affects to all URLs.\n"
" Default: ARIA2USER@"
@@ -582,7 +587,7 @@ msgstr ""
" --ftp-passwd=PASSWD FTP-Passwort setzen. Dies betrifft alle URLs.\n"
" Fehlwert: ARIA2USER@"
-#: src/main.cc:197
+#: src/main.cc:198
msgid ""
" --ftp-type=TYPE Set FTP transfer type. TYPE is either "
"'binary'\n"
@@ -594,11 +599,11 @@ msgstr ""
" oder 'ascii'.\n"
" Fehlwert: binary"
-#: src/main.cc:200
+#: src/main.cc:201
msgid " -p, --ftp-pasv Use passive mode in FTP."
msgstr " -p, --ftp-pasv Passiv-Modus für FTP benutzen."
-#: src/main.cc:201
+#: src/main.cc:202
msgid ""
" --ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either 'get' "
"or\n"
@@ -610,11 +615,11 @@ msgstr ""
" 'tunnel'.\n"
" Fehlwert: tunnel"
-#: src/main.cc:205
+#: src/main.cc:206
msgid " -T, --torrent-file=TORRENT_FILE The file path to .torrent file."
msgstr " -T, --torrent-file=TORRENT_FILE Datenpfad zur torrent-Datei."
-#: src/main.cc:206
+#: src/main.cc:207
msgid ""
" --follow-torrent=true|false Setting this option to false prevents aria2 "
"to\n"
@@ -629,14 +634,14 @@ msgstr ""
" auf .torrent endet.\n"
" Fehlwert: true"
-#: src/main.cc:210
+#: src/main.cc:211
msgid ""
" -S, --show-files Print file listing of .torrent file and exit."
msgstr ""
" -S, --show-files Dateiliste der .torrent-Datei ausgeben und "
"beenden."
-#: src/main.cc:211
+#: src/main.cc:212
msgid ""
" --direct-file-mapping=true|false Directly read from and write to each file\n"
" mentioned in .torrent file.\n"
@@ -646,7 +651,7 @@ msgstr ""
" .torrent-Datei erwähnten Datei.\n"
" Fehlwert: true"
-#: src/main.cc:214
+#: src/main.cc:215
msgid ""
" --listen-port=PORT Set port number to listen to for peer "
"connection."
@@ -654,7 +659,7 @@ msgstr ""
" --listen-port=PORT Port-Nummer zum Lauschen auf Peer-Verbindungen "
"setzen."
-#: src/main.cc:215
+#: src/main.cc:216
msgid ""
" --upload-limit=SPEED Set upload speed limit in KB/sec. aria2 tries "
"to\n"
@@ -666,7 +671,7 @@ msgstr ""
" Sendegeschwindigkeit unter SPEED zu halten. 0 "
"bedeutet keine Begrenzung."
-#: src/main.cc:217
+#: src/main.cc:218
msgid ""
" --select-file=INDEX... Set file to download by specifing its index.\n"
" You can know file index through --show-files\n"
@@ -686,15 +691,65 @@ msgstr ""
" Sie können auch '-' verwenden wie in \"1-5\".\n"
" ',' und '-' können zusammen benutzt werden."
-#: src/main.cc:224
+#: src/main.cc:226
+#, fuzzy
+msgid " -M, --metalink-file=METALINK_FILE The file path to .metalink file."
+msgstr " -T, --torrent-file=TORRENT_FILE Datenpfad zur torrent-Datei."
+
+#: src/main.cc:227
+#, fuzzy
+msgid ""
+" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
+" simultaneously. If more than one connection "
+"per\n"
+" server is required, use -s option.\n"
+" Default: 15"
+msgstr ""
+" --follow-torrent=true|false Setzen dieser Option auf false verhindert die "
+"Nutzung\n"
+" des BitTorrent-Modus, selbst wenn der Abruf-"
+"Dateiname \n"
+" auf .torrent endet.\n"
+" Fehlwert: true"
+
+#: src/main.cc:231
+msgid " --metalink-version=VERSION The version of file to download."
+msgstr ""
+
+#: src/main.cc:232
+msgid " --metalink-language=LANGUAGE The language of file to download."
+msgstr ""
+
+#: src/main.cc:233
+msgid ""
+" --metalink-os=OS The operating system the file is targeted."
+msgstr ""
+
+#: src/main.cc:234
+#, fuzzy
+msgid ""
+" --follow-metalink=true|false Setting this option to false prevents aria2 "
+"to\n"
+" enter Metalink mode even if the filename of\n"
+" downloaded file ends with .metalink.\n"
+" Default: true"
+msgstr ""
+" --follow-torrent=true|false Setzen dieser Option auf false verhindert die "
+"Nutzung\n"
+" des BitTorrent-Modus, selbst wenn der Abruf-"
+"Dateiname \n"
+" auf .torrent endet.\n"
+" Fehlwert: true"
+
+#: src/main.cc:239
msgid " -v, --version Print the version number and exit."
msgstr " -v, --version Versionsnummer ausgeben und beenden."
-#: src/main.cc:225
+#: src/main.cc:240
msgid " -h, --help Print this message and exit."
msgstr " -h, --help Diese Anzeige ausgeben und beenden."
-#: src/main.cc:228
+#: src/main.cc:243
msgid ""
" You can specify multiple URLs. All URLs must point to the same file\n"
" or downloading fails."
@@ -703,7 +758,7 @@ msgstr ""
"verweisen\n"
"oder der Abruf schlägt fehl."
-#: src/main.cc:233
+#: src/main.cc:248
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."
@@ -713,117 +768,140 @@ msgstr ""
" -T-Option. Diese Argumente werden ignoriert, wenn sie die Option --select-"
"file angeben."
-#: src/main.cc:237
+#: src/main.cc:252
msgid "Examples:"
msgstr "Beispiele:"
-#: src/main.cc:238
+#: src/main.cc:253
msgid " Download a file by 1 connection:"
msgstr " Abruf einer Datei über 1 Verbindung:"
-#: src/main.cc:240
+#: src/main.cc:255
msgid " Download a file by 2 connections:"
msgstr " Abruf einer Datei mit 2 Verbindungen:"
-#: src/main.cc:242
+#: src/main.cc:257
msgid " Download a file by 2 connections, each connects to a different server:"
msgstr ""
" Abruf einer Datei über 2 Verbindungen, jede verbindet zu einem anderen "
"Server:"
-#: src/main.cc:244
+#: src/main.cc:259
msgid " You can mix up different protocols:"
msgstr " Sie können verschiedene Protokolle mischen:"
-#: src/main.cc:247
+#: src/main.cc:263
msgid " Download a torrent:"
msgstr " Einen torrent abrufen:"
-#: src/main.cc:249
+#: src/main.cc:265
msgid " Download a torrent using local .torrent file:"
msgstr " Einen torrent mit einer lokalen .torrent-Datei abrufen:"
-#: src/main.cc:251
+#: src/main.cc:267
msgid " Download only selected files:"
msgstr " Nur ausgewählte Dateien abrufen:"
-#: src/main.cc:253
+#: src/main.cc:269
msgid " Print file listing of .torrent file:"
msgstr " Dateiliste einer .torrent-Datei ausgeben:"
-#: src/main.cc:257
+#: src/main.cc:274
+msgid " Metalink downloading:"
+msgstr ""
+
+#: src/main.cc:276
+#, fuzzy
+msgid " Download a file using local .metalink file:"
+msgstr " Einen torrent mit einer lokalen .torrent-Datei abrufen:"
+
+#: src/main.cc:278
+msgid " Metalink downloading with preferences:"
+msgstr ""
+
+#: src/main.cc:282
#, c-format
msgid "Report bugs to %s"
msgstr "Fehler an %s melden"
-#: src/main.cc:353
+#: src/main.cc:444
msgid "unrecognized proxy format"
msgstr "nicht erkanntes Proxy-Format"
-#: src/main.cc:380
+#: src/main.cc:471
msgid "Currently, supported authentication scheme is basic."
msgstr "Derzeit unterstütztes Authentifizierungsschema ist basic."
-#: src/main.cc:389
+#: src/main.cc:480
msgid "retry-wait must be between 0 and 60."
msgstr "retry-wait muss zwischen 0 und 60 liegen."
-#: src/main.cc:406
+#: src/main.cc:497
msgid "ftp-type must be either 'binary' or 'ascii'."
msgstr "ftp-type muss entweder 'binary' oder 'ascii' sein."
-#: src/main.cc:415
+#: src/main.cc:506
msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
msgstr "ftp-via-http-proxy muss entweder 'get' oder 'tunnel' sein."
-#: src/main.cc:433
+#: src/main.cc:524
msgid "min-segment-size invalid"
msgstr "min-segment-size ungültig"
-#: src/main.cc:444
+#: src/main.cc:535
msgid "http-proxy-method must be either 'get' or 'tunnel'."
msgstr "http-proxy-method muss entweder 'get' oder 'tunnel' sein."
-#: src/main.cc:452
+#: src/main.cc:543
msgid "listen-port must be between 1024 and 65535."
msgstr "listen-port muss zwischen 1024 und 65535 liegen."
-#: src/main.cc:463
+#: src/main.cc:554
msgid "follow-torrent must be either 'true' or 'false'."
msgstr "follow-torrent muss entweder 'true' oder 'false' sein."
-#: src/main.cc:477
+#: src/main.cc:568
msgid "direct-file-mapping must be either 'true' or 'false'."
msgstr "direct-file-mapping muss entweder 'true' oder 'false' sein."
-#: src/main.cc:485
+#: src/main.cc:576
msgid "upload-limit must be greater than or equal to 0."
msgstr "upload-limit muss größer oder gleich 0 sein."
-#: src/main.cc:517
+#: src/main.cc:601
+#, fuzzy
+msgid "follow-metalink must be either 'true' or 'false'."
+msgstr "follow-torrent muss entweder 'true' oder 'false' sein."
+
+#: src/main.cc:628
msgid "split must be between 1 and 5."
msgstr "split muss zwischen 1 und 5 liegen."
-#: src/main.cc:527
+#: src/main.cc:638
msgid "timeout must be between 1 and 600"
msgstr "timeout muss zwischen 1 und 600 liegen."
-#: src/main.cc:536
+#: src/main.cc:647
msgid "max-tries invalid"
msgstr "max-tries ungültig"
-#: src/main.cc:565
+#: src/main.cc:669
+#, fuzzy
+msgid "metalink-servers must be greater than 0."
+msgstr "upload-limit muss größer oder gleich 0 sein."
+
+#: src/main.cc:687
msgid "specify at least one URL"
msgstr "Geben Sie zumindest eine URL an"
-#: src/main.cc:572
+#: src/main.cc:694
msgid "daemon failed"
msgstr "Daemon-Start nicht erfolgreich"
-#: src/main.cc:673
+#: src/main.cc:831
msgid "Files:"
msgstr "Dateien:"
-#: src/main.cc:704
+#: src/main.cc:862
msgid "Errors occurred while binding port.\n"
msgstr "Fehler beim Binden an Port aufgetreten.\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index e0f3598d..085a5c1a 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index bbae488f..5be46ffb 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: aria2c 0.2.1\n"
"Report-Msgid-Bugs-To: http://aria2.sourceforge.net/\n"
-"POT-Creation-Date: 2006-05-27 00:27+0900\n"
-"PO-Revision-Date: 2006-05-27 00:25+0900\n"
+"POT-Creation-Date: 2006-07-04 01:30+0900\n"
+"PO-Revision-Date: 2006-07-04 01:41+0900\n"
"Last-Translator: Tatsuhiro Tsujikawa <tujikawa@rednoah.com>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
@@ -341,7 +341,7 @@ msgstr "¥Ç¡¼¥¿¤Î¼õ¿®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿. ¸¶°ø: %s"
msgid "Failed to peek data, cause: %s"
msgstr "¥Ç¡¼¥¿¤Î peek ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿. ¸¶°ø: %s"
-#: src/main.cc:65
+#: src/main.cc:76
#, c-format
msgid ""
"\n"
@@ -350,7 +350,7 @@ msgstr ""
"\n"
"<%s> ¤Î¥À¥¦¥ó¥í¡¼¥É¤¬´°Î»¤·¤Þ¤·¤¿.\n"
-#: src/main.cc:73
+#: src/main.cc:84
msgid ""
"\n"
"The download was not complete because of errors. Check the log.\n"
@@ -358,7 +358,7 @@ msgstr ""
"\n"
"¥À¥¦¥ó¥í¡¼¥É¤Ï¥¨¥é¡¼¤Î¤¿¤á´°Î»¤·¤Æ¤¤¤Þ¤»¤ó. ¥í¥°¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.\n"
-#: src/main.cc:88
+#: src/main.cc:101
msgid ""
"\n"
"stopping application...\n"
@@ -366,22 +366,22 @@ msgstr ""
"\n"
"¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ªÎ»¤·¤Æ¤¤¤Þ¤¹...\n"
-#: src/main.cc:94
+#: src/main.cc:107
msgid "done\n"
msgstr "´°Î»\n"
-#: src/main.cc:125
+#: src/main.cc:123
#, c-format
msgid "Unrecognized URL or unsupported protocol: %s\n"
msgstr ""
"%s ¤Ï, Íý²ò¤Ç¤­¤Ê¤¤ URL ¥Õ¥©¡¼¥Þ¥Ã¥È, ¤Þ¤¿¤Ï, ¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¥×¥í¥È¥³¥ë¤Ç"
"¤¹.\n"
-#: src/main.cc:131
+#: src/main.cc:129
msgid " version "
msgstr " ¥Ð¡¼¥¸¥ç¥ó "
-#: src/main.cc:135
+#: src/main.cc:133
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"
@@ -411,36 +411,41 @@ 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:149
+#: src/main.cc:147
#, c-format
msgid "Contact Info: %s\n"
msgstr "Ï¢ÍíÀè: %s\n"
-#: src/main.cc:155
+#: src/main.cc:153
#, c-format
msgid "Usage: %s [options] URL ...\n"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] URL ...\n"
-#: src/main.cc:157
+#: src/main.cc:155
#, c-format
msgid " %s [options] -T TORRENT_FILE FILE ...\n"
msgstr " %s [¥ª¥×¥·¥ç¥ó] -T TORRENT_FILE FILE ...\n"
-#: src/main.cc:160
+#: src/main.cc:158
+#, c-format
+msgid " %s [options] -M METALINK_FILE\n"
+msgstr " %s [¥ª¥×¥·¥ç¥ó] -M METALINK_FILE\n"
+
+#: src/main.cc:161
msgid "Options:"
msgstr "¥ª¥×¥·¥ç¥ó:"
-#: src/main.cc:161
+#: src/main.cc:162
msgid " -d, --dir=DIR The directory to store downloaded file."
msgstr ""
" -d, --dir=DIR ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê."
-#: src/main.cc:162
+#: src/main.cc:163
msgid " -o, --out=FILE The file name for downloaded file."
msgstr ""
" -o, --out=FILE ¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¥Õ¥¡¥¤¥ë̾."
-#: src/main.cc:163
+#: src/main.cc:164
msgid ""
" -l, --log=LOG The file path to store log. If '-' is "
"specified,\n"
@@ -450,11 +455,11 @@ msgstr ""
"ÎÏ\n"
" ¤Ë½ÐÎϤ·¤Þ¤¹."
-#: src/main.cc:165
+#: src/main.cc:166
msgid " -D, --daemon Run as daemon."
msgstr " -D, --daemon ¥Ç¡¼¥â¥ó¤È¤·¤Æµ¯Æ°¤·¤Þ¤¹."
-#: src/main.cc:166
+#: src/main.cc:167
msgid ""
" -s, --split=N Download a file using N connections. N must "
"be\n"
@@ -473,7 +478,7 @@ msgstr ""
"¥·¥ç\n"
" ¥ó¤ò³ÎΩ¤·¤Þ¤¹."
-#: src/main.cc:170
+#: src/main.cc:171
msgid ""
" --retry-wait=SEC Set amount of time in second between requests\n"
" for errors. Specify a value between 0 and 60.\n"
@@ -484,13 +489,13 @@ msgstr ""
" ¤¹. 0 - 60 ¤ÎÃͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: 5"
-#: src/main.cc:173
+#: src/main.cc:174
msgid " -t, --timeout=SEC Set timeout in second. Default: 60"
msgstr ""
" -t, --timeout=SEC ¥¿¥¤¥à¥¢¥¦¥È¤È¤Ê¤ë»þ´Ö¤òÉäǻØÄꤷ¤Þ¤¹.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: 60"
-#: src/main.cc:174
+#: src/main.cc:175
msgid ""
" -m, --max-tries=N Set number of tries. 0 means unlimited.\n"
" Default: 5"
@@ -499,7 +504,7 @@ msgstr ""
"¹Ô\n"
" ¤·¤Þ¤¹. ¥Ç¥Õ¥©¥ë¥ÈÃÍ: 5"
-#: src/main.cc:176
+#: src/main.cc:177
msgid ""
" --min-segment-size=SIZE[K|M] Set minimum segment size. You can append\n"
" K or M(1K = 1024, 1M = 1024K). This\n"
@@ -512,7 +517,7 @@ msgstr ""
"1024K).\n"
" 1024 °Ê¾å¤ÎÃͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:180
+#: src/main.cc:181
msgid ""
" --http-proxy=HOST:PORT Use HTTP proxy server. This affects to all\n"
" URLs."
@@ -521,14 +526,14 @@ msgstr ""
"¥·\n"
" ¥ç¥ó¤Ï¤¹¤Ù¤Æ¤Î URL ¤Ë±Æ¶Á¤·¤Þ¤¹."
-#: src/main.cc:182
+#: src/main.cc:183
msgid " --http-user=USER Set HTTP user. This affects to all URLs."
msgstr ""
" --http-user=USER HTTP ¤Ç¤Îǧ¾Ú¥æ¡¼¥¶¡¼¤ò»ØÄꤷ¤Þ¤¹. ¤³¤Î¥ª¥×¥·¥ç"
"¥ó\n"
" ¤Ï¤¹¤Ù¤Æ¤Î URL ¤Ë±Æ¶Á¤·¤Þ¤¹."
-#: src/main.cc:183
+#: src/main.cc:184
msgid ""
" --http-passwd=PASSWD Set HTTP password. This affects to all URLs."
msgstr ""
@@ -536,7 +541,7 @@ msgstr ""
"¥·¥ç\n"
" ¥ó¤Ï¤¹¤Ù¤Æ¤Î URL ¤Ë±Æ¶Á¤·¤Þ¤¹."
-#: src/main.cc:184
+#: src/main.cc:185
msgid ""
" --http-proxy-user=USER Set HTTP proxy user. This affects to all URLs"
msgstr ""
@@ -546,7 +551,7 @@ msgstr ""
"¤Þ\n"
" ¤¹."
-#: src/main.cc:185
+#: src/main.cc:186
msgid ""
" --http-proxy-passwd=PASSWD Set HTTP proxy password. This affects to all "
"URLs."
@@ -557,7 +562,7 @@ msgstr ""
"¤·\n"
" ¤Þ¤¹."
-#: src/main.cc:186
+#: src/main.cc:187
msgid ""
" --http-proxy-method=METHOD Set the method to use in proxy request.\n"
" METHOD is either 'get' or 'tunnel'.\n"
@@ -568,7 +573,7 @@ msgstr ""
" ¤¹. 'get' ¤Þ¤¿¤Ï 'tunnel' ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: tunnel"
-#: src/main.cc:189
+#: src/main.cc:190
msgid ""
" --http-auth-scheme=SCHEME Set HTTP authentication scheme. Currently, "
"basic\n"
@@ -580,14 +585,14 @@ msgstr ""
" ¤¤¤ë¤Î¤Ï basic ¤Ç¤¹. \n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: basic"
-#: src/main.cc:192
+#: src/main.cc:193
msgid " --referer=REFERER Set Referer. This affects to all URLs."
msgstr ""
" --referer=REFERER ¥ê¥Õ¥¡¥é¡¼¤ò»ØÄꤷ¤Þ¤¹. ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¹¤Ù¤Æ"
"¤Î\n"
" URL ¤Ë±Æ¶Á¤·¤Þ¤¹."
-#: src/main.cc:193
+#: src/main.cc:194
msgid ""
" --ftp-user=USER Set FTP user. This affects to all URLs.\n"
" Default: anonymous"
@@ -597,7 +602,7 @@ msgstr ""
" ¤Ï¤¹¤Ù¤Æ¤Î URL ¤Ë±Æ¶Á¤·¤Þ¤¹.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: anonymous"
-#: src/main.cc:195
+#: src/main.cc:196
msgid ""
" --ftp-passwd=PASSWD Set FTP password. This affects to all URLs.\n"
" Default: ARIA2USER@"
@@ -607,7 +612,7 @@ msgstr ""
" ¥ó¤Ï¤¹¤Ù¤Æ¤Î URL ¤Ë±Æ¶Á¤·¤Þ¤¹.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: ARIA2USER@"
-#: src/main.cc:197
+#: src/main.cc:198
msgid ""
" --ftp-type=TYPE Set FTP transfer type. TYPE is either "
"'binary'\n"
@@ -618,11 +623,11 @@ msgstr ""
" 'ascii' ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. ¥Ç¥Õ¥©¥ë¥ÈÃÍ: "
"binary"
-#: src/main.cc:200
+#: src/main.cc:201
msgid " -p, --ftp-pasv Use passive mode in FTP."
msgstr " -p, --ftp-pasv FTP ¤Ç passive ¥â¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹."
-#: src/main.cc:201
+#: src/main.cc:202
msgid ""
" --ftp-via-http-proxy=METHOD Use HTTP proxy in FTP. METHOD is either 'get' "
"or\n"
@@ -635,11 +640,11 @@ msgstr ""
"¤¯\n"
" ¤À¤µ¤¤. ¥Ç¥Õ¥©¥ë¥ÈÃÍ: tunnel"
-#: src/main.cc:205
+#: src/main.cc:206
msgid " -T, --torrent-file=TORRENT_FILE The file path to .torrent file."
msgstr " -T, --torrent-file=TORRENT_FILE .torrent ¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò»ØÄê."
-#: src/main.cc:206
+#: src/main.cc:207
msgid ""
" --follow-torrent=true|false Setting this option to false prevents aria2 "
"to\n"
@@ -654,7 +659,7 @@ msgstr ""
" ¤Ï, BitTorrent ¥â¡¼¥É¤ËÆþ¤ê¤Þ¤»¤ó.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: true"
-#: src/main.cc:210
+#: src/main.cc:211
msgid ""
" -S, --show-files Print file listing of .torrent file and exit."
msgstr ""
@@ -662,7 +667,7 @@ msgstr ""
"¤·\n"
" ½ªÎ»¤·¤Þ¤¹."
-#: src/main.cc:211
+#: src/main.cc:212
msgid ""
" --direct-file-mapping=true|false Directly read from and write to each file\n"
" mentioned in .torrent file.\n"
@@ -673,14 +678,14 @@ msgstr ""
" ¤·¤Þ¤¹.\n"
" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: true"
-#: src/main.cc:214
+#: src/main.cc:215
msgid ""
" --listen-port=PORT Set port number to listen to for peer "
"connection."
msgstr ""
" --listen-port=PORT ¥Ô¥¢¤«¤é¤ÎÀܳ¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥ÈÈÖ¹æ¤ò»ØÄê."
-#: src/main.cc:215
+#: src/main.cc:216
msgid ""
" --upload-limit=SPEED Set upload speed limit in KB/sec. aria2 tries "
"to\n"
@@ -693,7 +698,7 @@ msgstr ""
"¤·\n"
" ¤Þ¤¹. 0 ¤Ï®ÅÙ̵À©¸Â¤ò°ÕÌ£¤·¤Þ¤¹."
-#: src/main.cc:217
+#: src/main.cc:218
msgid ""
" --select-file=INDEX... Set file to download by specifing its index.\n"
" You can know file index through --show-files\n"
@@ -714,16 +719,65 @@ msgstr ""
" ¤Þ¤¿, '-' ¤ò»È¤Ã¤ÆÈϰϻØÄê¤â¤Ç¤­¤Þ¤¹: \"1-5\"\n"
" ',' ¤È '-' ¤ÏÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹."
-#: src/main.cc:224
+#: src/main.cc:226
+msgid " -M, --metalink-file=METALINK_FILE The file path to .metalink file."
+msgstr " -M, --metalink-file=METALINK_FILE .metalink ¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤ò»ØÄê."
+
+#: src/main.cc:227
+msgid ""
+" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
+" simultaneously. If more than one connection "
+"per\n"
+" server is required, use -s option.\n"
+" Default: 15"
+msgstr ""
+" -C, --metalink-servers=NUM_SERVERS Ʊ»þ¤ËÀܳ¤¹¤ë¥µ¡¼¥Ð¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹.\n"
+" 1 ¥µ¡¼¥Ð¤ËÊ£¿ô¤ÎÀܳ¤¬É¬Íפʤé¤Ð, -s ¥ª¥×¥·¥ç¥ó"
+"¤ò\n"
+" »ÈÍѤ·¤Æ¤¯¤À¤µ¤¤.\n"
+" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: 15"
+
+#: src/main.cc:231
+msgid " --metalink-version=VERSION The version of file to download."
+msgstr " --metalink-version=VERSION ¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥Ð¡¼¥¸¥ç¥ó."
+
+#: src/main.cc:232
+msgid " --metalink-language=LANGUAGE The language of file to download."
+msgstr " --metalink-language=LANGUAGE ¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¸À¸ì."
+
+#: src/main.cc:233
+msgid ""
+" --metalink-os=OS The operating system the file is targeted."
+msgstr ""
+" --metalink-os=OS ¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë¥ª¥Ú"
+"¥ì¡¼\n"
+" ¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à."
+
+#: src/main.cc:234
+msgid ""
+" --follow-metalink=true|false Setting this option to false prevents aria2 "
+"to\n"
+" enter Metalink mode even if the filename of\n"
+" downloaded file ends with .metalink.\n"
+" Default: true"
+msgstr ""
+" --follow-metalink=true|false ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò false ¤ËÀßÄꤹ¤ë¤È, ¥À¥¦¥ó"
+"¥í¡¼¥É\n"
+" ¤·¤¿¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¤¬ .metalink ¤Ç¤¢¤Ã¤Æ¤â, "
+"aria2\n"
+" ¤Ï, Metalink ¥â¡¼¥É¤ËÆþ¤ê¤Þ¤»¤ó.\n"
+" ¥Ç¥Õ¥©¥ë¥ÈÃÍ: true"
+
+#: src/main.cc:239
msgid " -v, --version Print the version number and exit."
msgstr " -v, --version ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤·, ½ªÎ»¤·¤Þ¤¹."
-#: src/main.cc:225
+#: src/main.cc:240
msgid " -h, --help Print this message and exit."
msgstr ""
" -h, --help ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·, ½ªÎ»¤·¤Þ¤¹."
-#: src/main.cc:228
+#: src/main.cc:243
msgid ""
" You can specify multiple URLs. All URLs must point to the same file\n"
" or downloading fails."
@@ -732,7 +786,7 @@ msgstr ""
"¤ì\n"
" ¤Ð¤Ê¤ê¤Þ¤»¤ó. ¤µ¤â¤Ê¤¯¤Ð¥À¥¦¥ó¥í¡¼¥É¤Ï¼ºÇÔ¤·¤Þ¤¹."
-#: src/main.cc:233
+#: src/main.cc:248
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."
@@ -741,115 +795,135 @@ msgstr ""
"¥ó\n"
" ¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹. --select-file ¥ª¥×¥·¥ç¥ó¤ÈÊ»ÍѤϤǤ­¤Þ¤»¤ó."
-#: src/main.cc:237
+#: src/main.cc:252
msgid "Examples:"
msgstr "Îã:"
-#: src/main.cc:238
+#: src/main.cc:253
msgid " Download a file by 1 connection:"
msgstr " 1 ¥³¥Í¥¯¥·¥ç¥ó¤Ç¤Î¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:240
+#: src/main.cc:255
msgid " Download a file by 2 connections:"
msgstr " 2 ¥³¥Í¥¯¥·¥ç¥ó¤Ç¤Î¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:242
+#: src/main.cc:257
msgid " Download a file by 2 connections, each connects to a different server:"
msgstr " Æó¤Ä¤Î°Û¤Ê¤ë¥µ¡¼¥Ð¡¼¤ËÀܳ¤·¤Æ¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:244
+#: src/main.cc:259
msgid " You can mix up different protocols:"
msgstr " °Û¤Ê¤ë¥×¥í¥È¥³¥ë¤òº®¹ç¤µ¤»¤Æ¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:247
+#: src/main.cc:263
msgid " Download a torrent:"
-msgstr "torrent ¤ò¥À¥¦¥ó¥í¡¼¥É:"
+msgstr " torrent ¤ò¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:249
+#: src/main.cc:265
msgid " Download a torrent using local .torrent file:"
msgstr " ¥í¡¼¥«¥ë .torrent ¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:251
+#: src/main.cc:267
msgid " Download only selected files:"
msgstr " ¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¥À¥¦¥ó¥í¡¼¥É:"
-#: src/main.cc:253
+#: src/main.cc:269
msgid " Print file listing of .torrent file:"
msgstr " ¤³¤Î .torrent ¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤òɽ¼¨:"
-#: src/main.cc:257
+#: src/main.cc:274
+msgid " Metalink downloading:"
+msgstr " Metalink ¤Ç¥À¥¦¥ó¥í¡¼¥É:"
+
+#: src/main.cc:276
+msgid " Download a file using local .metalink file:"
+msgstr " ¥í¡¼¥«¥ë .metalink ¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¥À¥¦¥ó¥í¡¼¥É:"
+
+#: src/main.cc:278
+msgid " Metalink downloading with preferences:"
+msgstr " ¥æ¡¼¥¶ÀßÄê¤Ë¤è¤ë Metalink ¥À¥¦¥ó¥í¡¼¥É:"
+
+#: src/main.cc:282
#, c-format
msgid "Report bugs to %s"
msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤³¤Á¤é¤Ø: %s"
-#: src/main.cc:353
+#: src/main.cc:444
msgid "unrecognized proxy format"
msgstr "Íý²ò¤Ç¤­¤Ê¤¤Proxy¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹."
-#: src/main.cc:380
+#: src/main.cc:471
msgid "Currently, supported authentication scheme is basic."
msgstr "¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëǧ¾ÚÊýË¡¤Ï basic ¤Ç¤¹."
-#: src/main.cc:389
+#: src/main.cc:480
msgid "retry-wait must be between 0 and 60."
msgstr "retry-wait ¤Ï 0 ¤«¤é 60 ¤Î´Ö¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:406
+#: src/main.cc:497
msgid "ftp-type must be either 'binary' or 'ascii'."
msgstr "ftp-type ¤Ï 'binary' ¤Þ¤¿¤Ï 'ascii' ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:415
+#: src/main.cc:506
msgid "ftp-via-http-proxy must be either 'get' or 'tunnel'."
msgstr "ftp-via-http-proxy ¤Ï 'get' ¤Þ¤¿¤Ï 'tunnel' ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:433
+#: src/main.cc:524
msgid "min-segment-size invalid"
msgstr "min-segment-size ¤¬ÉÔÀµ¤Ç¤¹."
-#: src/main.cc:444
+#: src/main.cc:535
msgid "http-proxy-method must be either 'get' or 'tunnel'."
msgstr "http-proxy-method ¤Ï 'get' ¤Þ¤¿¤Ï 'tunnel' ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:452
+#: src/main.cc:543
msgid "listen-port must be between 1024 and 65535."
msgstr "listen-port ¤Ï 1024 - 65535 ¤ÎÃͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:463
+#: src/main.cc:554
msgid "follow-torrent must be either 'true' or 'false'."
msgstr "follow-torrent ¤Ï 'true' ¤Þ¤¿¤Ï 'false ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:477
+#: src/main.cc:568
msgid "direct-file-mapping must be either 'true' or 'false'."
msgstr "direct-file-mapping ¤Ï 'true' ¤Þ¤¿¤Ï 'false ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:485
+#: src/main.cc:576
msgid "upload-limit must be greater than or equal to 0."
msgstr "upload-limit ¤Ï 0 °Ê¾å¤Î¿ô¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:517
+#: src/main.cc:601
+msgid "follow-metalink must be either 'true' or 'false'."
+msgstr "follow-metalink ¤Ï 'true' ¤Þ¤¿¤Ï 'false ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
+
+#: src/main.cc:628
msgid "split must be between 1 and 5."
msgstr "split ¤Ï 1 - 5 ¤ÎÃͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:527
+#: src/main.cc:638
msgid "timeout must be between 1 and 600"
msgstr "timeout ¤Ï 1 - 600 ¤ÎÃͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:536
+#: src/main.cc:647
msgid "max-tries invalid"
msgstr "max-tries ¤¬ÉÔÀµ¤Ç¤¹."
-#: src/main.cc:565
+#: src/main.cc:669
+msgid "metalink-servers must be greater than 0."
+msgstr "metalink-servers ¤Ï 0 °Ê¾å¤Î¿ô¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
+
+#: src/main.cc:687
msgid "specify at least one URL"
msgstr "°ì¸Ä°Ê¾å¤Î URL ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
-#: src/main.cc:572
+#: src/main.cc:694
msgid "daemon failed"
msgstr "¥Ç¡¼¥â¥óµ¯Æ°¤Ë¼ºÇÔ"
-#: src/main.cc:673
+#: src/main.cc:831
msgid "Files:"
msgstr "¥Õ¥¡¥¤¥ë:"
-#: src/main.cc:704
+#: src/main.cc:862
msgid "Errors occurred while binding port.\n"
msgstr "¥Ý¡¼¥È¤ò¥Ð¥¤¥ó¥ÉÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿.\n"
diff --git a/src/AbstractDiskWriter.cc b/src/AbstractDiskWriter.cc
index f249b274..7f6f85c8 100644
--- a/src/AbstractDiskWriter.cc
+++ b/src/AbstractDiskWriter.cc
@@ -31,17 +31,17 @@
#include <fcntl.h>
AbstractDiskWriter::AbstractDiskWriter():fd(0) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
ctx.setAlgo(MessageDigestContext::ALGO_SHA1);
digestInit(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
AbstractDiskWriter::~AbstractDiskWriter() {
closeFile();
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestFree(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void AbstractDiskWriter::openFile(const string& filename) {
@@ -99,7 +99,7 @@ int AbstractDiskWriter::readDataInternal(char* data, int len) {
}
string AbstractDiskWriter::sha1Sum(long long int offset, long long int length) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestReset(ctx);
try {
int BUFSIZE = 16*1024;
@@ -126,7 +126,7 @@ string AbstractDiskWriter::sha1Sum(long long int offset, long long int length) {
}
#else
return "";
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void AbstractDiskWriter::seek(long long int offset) {
diff --git a/src/AbstractDiskWriter.h b/src/AbstractDiskWriter.h
index 41c172e3..fe53c0fe 100644
--- a/src/AbstractDiskWriter.h
+++ b/src/AbstractDiskWriter.h
@@ -23,17 +23,17 @@
#define _D_ABSTRACT_DISK_WRITER_H_
#include "DiskWriter.h"
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
#include "messageDigest.h"
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
class AbstractDiskWriter:public DiskWriter {
protected:
string filename;
int fd;
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
MessageDigestContext ctx;
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
void createFile(const string& filename, int addFlags = 0);
diff --git a/src/Makefile.am b/src/Makefile.am
index cf8fd2b1..3b16130b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -47,7 +47,13 @@ SRCS = Socket.cc Socket.h\
Option.cc Option.h\
Base64.cc Base64.h\
CookieBox.cc CookieBox.h\
- MetaEntry.h\
+ messageDigest.h\
+ LogFactory.cc LogFactory.h\
+ NullLogger.h\
+ Time.cc Time.h
+
+if ENABLE_BITTORRENT
+SRCS += MetaEntry.h\
Data.cc Data.h\
Dictionary.cc Dictionary.h\
List.cc List.h\
@@ -72,7 +78,6 @@ SRCS = Socket.cc Socket.h\
TorrentAutoSaveCommand.cc TorrentAutoSaveCommand.h\
Directory.cc Directory.h\
TrackerWatcherCommand.cc TrackerWatcherCommand.h\
- messageDigest.h\
PeerInteraction.cc PeerInteraction.h\
MultiDiskWriter.cc MultiDiskWriter.h\
DiskAdaptor.cc DiskAdaptor.h\
@@ -80,7 +85,6 @@ SRCS = Socket.cc Socket.h\
DirectDiskAdaptor.cc DirectDiskAdaptor.h\
MultiDiskAdaptor.cc MultiDiskAdaptor.h\
FileEntry.h\
- LogFactory.cc LogFactory.h\
TrackerUpdateCommand.cc TrackerUpdateCommand.h\
ByteArrayDiskWriter.cc ByteArrayDiskWriter.h\
PeerChokeCommand.cc PeerChokeCommand.h\
@@ -100,14 +104,17 @@ SRCS = Socket.cc Socket.h\
RejectMessage.cc RejectMessage.h\
AllowedFastMessage.cc AllowedFastMessage.h\
SuggestPieceMessage.cc SuggestPieceMessage.h\
- SimplePeerMessage.cc SimplePeerMessage.h\
- NullLogger.h\
- Time.cc Time.h\
- Metalinker.cc Metalinker.h\
+ SimplePeerMessage.cc SimplePeerMessage.h
+endif # ENABLE_BITTORRENT
+
+if ENABLE_METALINK
+SRCS += Metalinker.cc Metalinker.h\
MetalinkEntry.cc MetalinkEntry.h\
MetalinkResource.cc MetalinkResource.h\
MetalinkProcessor.h\
Xml2MetalinkProcessor.cc Xml2MetalinkProcessor.h
+endif # ENABLE_METALINK
+
noinst_LIBRARIES = libaria2c.a
libaria2c_a_SOURCES = $(SRCS)
aria2c_LDADD = libaria2c.a @LIBINTL@ @ALLOCA@ @LIBGNUTLS_LIBS@\
diff --git a/src/Makefile.in b/src/Makefile.in
index fd583552..8cffb7f3 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -38,6 +38,65 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = aria2c$(EXEEXT)
+@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\
+@ENABLE_BITTORRENT_TRUE@ MetaFileUtil.cc MetaFileUtil.h\
+@ENABLE_BITTORRENT_TRUE@ MetaEntryVisitor.h\
+@ENABLE_BITTORRENT_TRUE@ ShaVisitor.cc ShaVisitor.h\
+@ENABLE_BITTORRENT_TRUE@ TorrentMan.cc TorrentMan.h\
+@ENABLE_BITTORRENT_TRUE@ PeerConnection.cc PeerConnection.h\
+@ENABLE_BITTORRENT_TRUE@ PeerMessageUtil.cc PeerMessageUtil.h\
+@ENABLE_BITTORRENT_TRUE@ PeerAbstractCommand.cc PeerAbstractCommand.h\
+@ENABLE_BITTORRENT_TRUE@ PeerInitiateConnectionCommand.cc PeerInitiateConnectionCommand.h\
+@ENABLE_BITTORRENT_TRUE@ PeerInteractionCommand.cc PeerInteractionCommand.h\
+@ENABLE_BITTORRENT_TRUE@ Peer.cc Peer.h\
+@ENABLE_BITTORRENT_TRUE@ BitfieldMan.cc BitfieldMan.h\
+@ENABLE_BITTORRENT_TRUE@ TorrentDownloadEngine.cc TorrentDownloadEngine.h\
+@ENABLE_BITTORRENT_TRUE@ TorrentConsoleDownloadEngine.cc TorrentConsoleDownloadEngine.h\
+@ENABLE_BITTORRENT_TRUE@ PeerListenCommand.cc PeerListenCommand.h\
+@ENABLE_BITTORRENT_TRUE@ PeerMessage.cc PeerMessage.h\
+@ENABLE_BITTORRENT_TRUE@ HandshakeMessage.cc HandshakeMessage.h\
+@ENABLE_BITTORRENT_TRUE@ Piece.cc Piece.h\
+@ENABLE_BITTORRENT_TRUE@ RequestSlot.cc RequestSlot.h\
+@ENABLE_BITTORRENT_TRUE@ TorrentAutoSaveCommand.cc TorrentAutoSaveCommand.h\
+@ENABLE_BITTORRENT_TRUE@ Directory.cc Directory.h\
+@ENABLE_BITTORRENT_TRUE@ TrackerWatcherCommand.cc TrackerWatcherCommand.h\
+@ENABLE_BITTORRENT_TRUE@ PeerInteraction.cc PeerInteraction.h\
+@ENABLE_BITTORRENT_TRUE@ MultiDiskWriter.cc MultiDiskWriter.h\
+@ENABLE_BITTORRENT_TRUE@ DiskAdaptor.cc DiskAdaptor.h\
+@ENABLE_BITTORRENT_TRUE@ CopyDiskAdaptor.cc CopyDiskAdaptor.h\
+@ENABLE_BITTORRENT_TRUE@ DirectDiskAdaptor.cc DirectDiskAdaptor.h\
+@ENABLE_BITTORRENT_TRUE@ MultiDiskAdaptor.cc MultiDiskAdaptor.h\
+@ENABLE_BITTORRENT_TRUE@ FileEntry.h\
+@ENABLE_BITTORRENT_TRUE@ TrackerUpdateCommand.cc TrackerUpdateCommand.h\
+@ENABLE_BITTORRENT_TRUE@ ByteArrayDiskWriter.cc ByteArrayDiskWriter.h\
+@ENABLE_BITTORRENT_TRUE@ PeerChokeCommand.cc PeerChokeCommand.h\
+@ENABLE_BITTORRENT_TRUE@ ChokeMessage.cc ChokeMessage.h\
+@ENABLE_BITTORRENT_TRUE@ UnchokeMessage.cc UnchokeMessage.h\
+@ENABLE_BITTORRENT_TRUE@ InterestedMessage.cc InterestedMessage.h\
+@ENABLE_BITTORRENT_TRUE@ NotInterestedMessage.cc NotInterestedMessage.h\
+@ENABLE_BITTORRENT_TRUE@ HaveMessage.cc HaveMessage.h\
+@ENABLE_BITTORRENT_TRUE@ BitfieldMessage.cc BitfieldMessage.h\
+@ENABLE_BITTORRENT_TRUE@ RequestMessage.cc RequestMessage.h\
+@ENABLE_BITTORRENT_TRUE@ PieceMessage.cc PieceMessage.h\
+@ENABLE_BITTORRENT_TRUE@ CancelMessage.cc CancelMessage.h\
+@ENABLE_BITTORRENT_TRUE@ KeepAliveMessage.cc KeepAliveMessage.h\
+@ENABLE_BITTORRENT_TRUE@ PortMessage.cc PortMessage.h\
+@ENABLE_BITTORRENT_TRUE@ HaveAllMessage.cc HaveAllMessage.h\
+@ENABLE_BITTORRENT_TRUE@ HaveNoneMessage.cc HaveNoneMessage.h\
+@ENABLE_BITTORRENT_TRUE@ RejectMessage.cc RejectMessage.h\
+@ENABLE_BITTORRENT_TRUE@ AllowedFastMessage.cc AllowedFastMessage.h\
+@ENABLE_BITTORRENT_TRUE@ SuggestPieceMessage.cc SuggestPieceMessage.h\
+@ENABLE_BITTORRENT_TRUE@ SimplePeerMessage.cc SimplePeerMessage.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\
+@ENABLE_METALINK_TRUE@ Xml2MetalinkProcessor.cc Xml2MetalinkProcessor.h
+
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in alloca.c
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -62,7 +121,126 @@ AR = ar
ARFLAGS = cru
libaria2c_a_AR = $(AR) $(ARFLAGS)
libaria2c_a_LIBADD =
-am__objects_1 = Socket.$(OBJEXT) SocketCore.$(OBJEXT) \
+am__libaria2c_a_SOURCES_DIST = Socket.cc Socket.h SocketCore.cc \
+ SocketCore.h Command.h AbstractCommand.cc AbstractCommand.h \
+ InitiateConnectionCommandFactory.cc \
+ InitiateConnectionCommandFactory.h DownloadCommand.cc \
+ DownloadCommand.h HttpInitiateConnectionCommand.cc \
+ HttpInitiateConnectionCommand.h HttpRequestCommand.cc \
+ HttpRequestCommand.h HttpResponseCommand.cc \
+ HttpResponseCommand.h HttpProxyRequestCommand.cc \
+ HttpProxyRequestCommand.h HttpProxyResponseCommand.cc \
+ HttpProxyResponseCommand.h HttpDownloadCommand.cc \
+ HttpDownloadCommand.h HttpHeader.cc HttpHeader.h \
+ HttpConnection.cc HttpConnection.h FtpConnection.cc \
+ FtpConnection.h FtpInitiateConnectionCommand.cc \
+ FtpInitiateConnectionCommand.h FtpNegotiationCommand.cc \
+ FtpNegotiationCommand.h FtpDownloadCommand.cc \
+ FtpDownloadCommand.h FtpTunnelRequestCommand.cc \
+ FtpTunnelRequestCommand.h FtpTunnelResponseCommand.cc \
+ FtpTunnelResponseCommand.h SleepCommand.cc SleepCommand.h \
+ DownloadEngine.cc DownloadEngine.h ConsoleDownloadEngine.cc \
+ ConsoleDownloadEngine.h Segment.h SegmentMan.cc SegmentMan.h \
+ SegmentSplitter.cc SegmentSplitter.h \
+ SplitFirstSegmentSplitter.cc SplitFirstSegmentSplitter.h \
+ SplitSlowestSegmentSplitter.cc SplitSlowestSegmentSplitter.h \
+ Util.cc Util.h Request.cc Request.h common.h message.h \
+ Exception.h DlAbortEx.h DlRetryEx.h Logger.h SimpleLogger.cc \
+ SimpleLogger.h TransferEncoding.h ChunkedEncoding.cc \
+ ChunkedEncoding.h DiskWriter.h DefaultDiskWriter.cc \
+ DefaultDiskWriter.h PreAllocationDiskWriter.cc \
+ PreAllocationDiskWriter.h AbstractDiskWriter.cc \
+ AbstractDiskWriter.h File.cc File.h Option.cc Option.h \
+ Base64.cc Base64.h CookieBox.cc CookieBox.h messageDigest.h \
+ LogFactory.cc LogFactory.h NullLogger.h Time.cc Time.h \
+ MetaEntry.h Data.cc Data.h Dictionary.cc Dictionary.h List.cc \
+ List.h MetaFileUtil.cc MetaFileUtil.h MetaEntryVisitor.h \
+ ShaVisitor.cc ShaVisitor.h TorrentMan.cc TorrentMan.h \
+ PeerConnection.cc PeerConnection.h PeerMessageUtil.cc \
+ PeerMessageUtil.h PeerAbstractCommand.cc PeerAbstractCommand.h \
+ PeerInitiateConnectionCommand.cc \
+ PeerInitiateConnectionCommand.h PeerInteractionCommand.cc \
+ PeerInteractionCommand.h Peer.cc Peer.h BitfieldMan.cc \
+ BitfieldMan.h TorrentDownloadEngine.cc TorrentDownloadEngine.h \
+ TorrentConsoleDownloadEngine.cc TorrentConsoleDownloadEngine.h \
+ PeerListenCommand.cc PeerListenCommand.h PeerMessage.cc \
+ PeerMessage.h HandshakeMessage.cc HandshakeMessage.h Piece.cc \
+ Piece.h RequestSlot.cc RequestSlot.h TorrentAutoSaveCommand.cc \
+ TorrentAutoSaveCommand.h Directory.cc Directory.h \
+ TrackerWatcherCommand.cc TrackerWatcherCommand.h \
+ PeerInteraction.cc PeerInteraction.h MultiDiskWriter.cc \
+ MultiDiskWriter.h DiskAdaptor.cc DiskAdaptor.h \
+ CopyDiskAdaptor.cc CopyDiskAdaptor.h DirectDiskAdaptor.cc \
+ DirectDiskAdaptor.h MultiDiskAdaptor.cc MultiDiskAdaptor.h \
+ FileEntry.h TrackerUpdateCommand.cc TrackerUpdateCommand.h \
+ ByteArrayDiskWriter.cc ByteArrayDiskWriter.h \
+ PeerChokeCommand.cc PeerChokeCommand.h ChokeMessage.cc \
+ ChokeMessage.h UnchokeMessage.cc UnchokeMessage.h \
+ InterestedMessage.cc InterestedMessage.h \
+ NotInterestedMessage.cc NotInterestedMessage.h HaveMessage.cc \
+ HaveMessage.h BitfieldMessage.cc BitfieldMessage.h \
+ RequestMessage.cc RequestMessage.h PieceMessage.cc \
+ PieceMessage.h CancelMessage.cc CancelMessage.h \
+ KeepAliveMessage.cc KeepAliveMessage.h PortMessage.cc \
+ PortMessage.h HaveAllMessage.cc HaveAllMessage.h \
+ HaveNoneMessage.cc HaveNoneMessage.h RejectMessage.cc \
+ RejectMessage.h AllowedFastMessage.cc AllowedFastMessage.h \
+ SuggestPieceMessage.cc SuggestPieceMessage.h \
+ SimplePeerMessage.cc SimplePeerMessage.h Metalinker.cc \
+ Metalinker.h MetalinkEntry.cc MetalinkEntry.h \
+ MetalinkResource.cc MetalinkResource.h MetalinkProcessor.h \
+ Xml2MetalinkProcessor.cc Xml2MetalinkProcessor.h
+@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) \
+@ENABLE_BITTORRENT_TRUE@ TorrentMan.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerConnection.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerMessageUtil.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerAbstractCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerInitiateConnectionCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerInteractionCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ Peer.$(OBJEXT) BitfieldMan.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ TorrentDownloadEngine.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ TorrentConsoleDownloadEngine.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerListenCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ HandshakeMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ Piece.$(OBJEXT) RequestSlot.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ TorrentAutoSaveCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ Directory.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ TrackerWatcherCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerInteraction.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ MultiDiskWriter.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ DiskAdaptor.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ CopyDiskAdaptor.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ DirectDiskAdaptor.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ MultiDiskAdaptor.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ TrackerUpdateCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ ByteArrayDiskWriter.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PeerChokeCommand.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ ChokeMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ UnchokeMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ InterestedMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ NotInterestedMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ HaveMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ BitfieldMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ RequestMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PieceMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ CancelMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ KeepAliveMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ PortMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ HaveAllMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ HaveNoneMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ RejectMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ AllowedFastMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ SuggestPieceMessage.$(OBJEXT) \
+@ENABLE_BITTORRENT_TRUE@ SimplePeerMessage.$(OBJEXT)
+@ENABLE_METALINK_TRUE@am__objects_2 = Metalinker.$(OBJEXT) \
+@ENABLE_METALINK_TRUE@ MetalinkEntry.$(OBJEXT) \
+@ENABLE_METALINK_TRUE@ MetalinkResource.$(OBJEXT) \
+@ENABLE_METALINK_TRUE@ Xml2MetalinkProcessor.$(OBJEXT)
+am__objects_3 = Socket.$(OBJEXT) SocketCore.$(OBJEXT) \
AbstractCommand.$(OBJEXT) \
InitiateConnectionCommandFactory.$(OBJEXT) \
DownloadCommand.$(OBJEXT) \
@@ -84,35 +262,9 @@ am__objects_1 = Socket.$(OBJEXT) SocketCore.$(OBJEXT) \
ChunkedEncoding.$(OBJEXT) DefaultDiskWriter.$(OBJEXT) \
PreAllocationDiskWriter.$(OBJEXT) AbstractDiskWriter.$(OBJEXT) \
File.$(OBJEXT) Option.$(OBJEXT) Base64.$(OBJEXT) \
- CookieBox.$(OBJEXT) Data.$(OBJEXT) Dictionary.$(OBJEXT) \
- List.$(OBJEXT) MetaFileUtil.$(OBJEXT) ShaVisitor.$(OBJEXT) \
- TorrentMan.$(OBJEXT) PeerConnection.$(OBJEXT) \
- PeerMessageUtil.$(OBJEXT) PeerAbstractCommand.$(OBJEXT) \
- PeerInitiateConnectionCommand.$(OBJEXT) \
- PeerInteractionCommand.$(OBJEXT) Peer.$(OBJEXT) \
- BitfieldMan.$(OBJEXT) TorrentDownloadEngine.$(OBJEXT) \
- TorrentConsoleDownloadEngine.$(OBJEXT) \
- PeerListenCommand.$(OBJEXT) PeerMessage.$(OBJEXT) \
- HandshakeMessage.$(OBJEXT) Piece.$(OBJEXT) \
- RequestSlot.$(OBJEXT) TorrentAutoSaveCommand.$(OBJEXT) \
- Directory.$(OBJEXT) TrackerWatcherCommand.$(OBJEXT) \
- PeerInteraction.$(OBJEXT) MultiDiskWriter.$(OBJEXT) \
- DiskAdaptor.$(OBJEXT) CopyDiskAdaptor.$(OBJEXT) \
- DirectDiskAdaptor.$(OBJEXT) MultiDiskAdaptor.$(OBJEXT) \
- LogFactory.$(OBJEXT) TrackerUpdateCommand.$(OBJEXT) \
- ByteArrayDiskWriter.$(OBJEXT) PeerChokeCommand.$(OBJEXT) \
- ChokeMessage.$(OBJEXT) UnchokeMessage.$(OBJEXT) \
- InterestedMessage.$(OBJEXT) NotInterestedMessage.$(OBJEXT) \
- HaveMessage.$(OBJEXT) BitfieldMessage.$(OBJEXT) \
- RequestMessage.$(OBJEXT) PieceMessage.$(OBJEXT) \
- CancelMessage.$(OBJEXT) KeepAliveMessage.$(OBJEXT) \
- PortMessage.$(OBJEXT) HaveAllMessage.$(OBJEXT) \
- HaveNoneMessage.$(OBJEXT) RejectMessage.$(OBJEXT) \
- AllowedFastMessage.$(OBJEXT) SuggestPieceMessage.$(OBJEXT) \
- SimplePeerMessage.$(OBJEXT) Time.$(OBJEXT) \
- Metalinker.$(OBJEXT) MetalinkEntry.$(OBJEXT) \
- MetalinkResource.$(OBJEXT) Xml2MetalinkProcessor.$(OBJEXT)
-am_libaria2c_a_OBJECTS = $(am__objects_1)
+ CookieBox.$(OBJEXT) LogFactory.$(OBJEXT) Time.$(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)
@@ -133,7 +285,7 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libaria2c_a_SOURCES) $(aria2c_SOURCES)
-DIST_SOURCES = $(libaria2c_a_SOURCES) $(aria2c_SOURCES)
+DIST_SOURCES = $(am__libaria2c_a_SOURCES_DIST) $(aria2c_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -167,6 +319,10 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_BITTORRENT_FALSE = @ENABLE_BITTORRENT_FALSE@
+ENABLE_BITTORRENT_TRUE = @ENABLE_BITTORRENT_TRUE@
+ENABLE_METALINK_FALSE = @ENABLE_METALINK_FALSE@
+ENABLE_METALINK_TRUE = @ENABLE_METALINK_TRUE@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
@@ -264,115 +420,39 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
aria2c_SOURCES = main.cc
-SRCS = Socket.cc Socket.h\
- SocketCore.cc SocketCore.h\
- Command.h\
- AbstractCommand.cc AbstractCommand.h\
- InitiateConnectionCommandFactory.cc InitiateConnectionCommandFactory.h\
- DownloadCommand.cc DownloadCommand.h\
- HttpInitiateConnectionCommand.cc HttpInitiateConnectionCommand.h\
- HttpRequestCommand.cc HttpRequestCommand.h\
- HttpResponseCommand.cc HttpResponseCommand.h\
- HttpProxyRequestCommand.cc HttpProxyRequestCommand.h\
- HttpProxyResponseCommand.cc HttpProxyResponseCommand.h\
- HttpDownloadCommand.cc HttpDownloadCommand.h\
- HttpHeader.cc HttpHeader.h\
- HttpConnection.cc HttpConnection.h\
- FtpConnection.cc FtpConnection.h\
- FtpInitiateConnectionCommand.cc FtpInitiateConnectionCommand.h\
- FtpNegotiationCommand.cc FtpNegotiationCommand.h\
- FtpDownloadCommand.cc FtpDownloadCommand.h\
- FtpTunnelRequestCommand.cc FtpTunnelRequestCommand.h\
- FtpTunnelResponseCommand.cc FtpTunnelResponseCommand.h\
- SleepCommand.cc SleepCommand.h\
- DownloadEngine.cc DownloadEngine.h\
- ConsoleDownloadEngine.cc ConsoleDownloadEngine.h\
- Segment.h\
- SegmentMan.cc SegmentMan.h\
- SegmentSplitter.cc SegmentSplitter.h\
- SplitFirstSegmentSplitter.cc SplitFirstSegmentSplitter.h\
- SplitSlowestSegmentSplitter.cc SplitSlowestSegmentSplitter.h\
- Util.cc Util.h\
- Request.cc Request.h\
- common.h\
- message.h\
- Exception.h\
- DlAbortEx.h\
- DlRetryEx.h\
- Logger.h\
- SimpleLogger.cc SimpleLogger.h\
- TransferEncoding.h\
- ChunkedEncoding.cc ChunkedEncoding.h\
- DiskWriter.h\
- DefaultDiskWriter.cc DefaultDiskWriter.h\
- PreAllocationDiskWriter.cc PreAllocationDiskWriter.h\
- AbstractDiskWriter.cc AbstractDiskWriter.h\
- File.cc File.h\
- Option.cc Option.h\
- Base64.cc Base64.h\
- CookieBox.cc CookieBox.h\
- MetaEntry.h\
- Data.cc Data.h\
- Dictionary.cc Dictionary.h\
- List.cc List.h\
- MetaFileUtil.cc MetaFileUtil.h\
- MetaEntryVisitor.h\
- ShaVisitor.cc ShaVisitor.h\
- TorrentMan.cc TorrentMan.h\
- PeerConnection.cc PeerConnection.h\
- PeerMessageUtil.cc PeerMessageUtil.h\
- PeerAbstractCommand.cc PeerAbstractCommand.h\
- PeerInitiateConnectionCommand.cc PeerInitiateConnectionCommand.h\
- PeerInteractionCommand.cc PeerInteractionCommand.h\
- Peer.cc Peer.h\
- BitfieldMan.cc BitfieldMan.h\
- TorrentDownloadEngine.cc TorrentDownloadEngine.h\
- TorrentConsoleDownloadEngine.cc TorrentConsoleDownloadEngine.h\
- PeerListenCommand.cc PeerListenCommand.h\
- PeerMessage.cc PeerMessage.h\
- HandshakeMessage.cc HandshakeMessage.h\
- Piece.cc Piece.h\
- RequestSlot.cc RequestSlot.h\
- TorrentAutoSaveCommand.cc TorrentAutoSaveCommand.h\
- Directory.cc Directory.h\
- TrackerWatcherCommand.cc TrackerWatcherCommand.h\
- messageDigest.h\
- PeerInteraction.cc PeerInteraction.h\
- MultiDiskWriter.cc MultiDiskWriter.h\
- DiskAdaptor.cc DiskAdaptor.h\
- CopyDiskAdaptor.cc CopyDiskAdaptor.h\
- DirectDiskAdaptor.cc DirectDiskAdaptor.h\
- MultiDiskAdaptor.cc MultiDiskAdaptor.h\
- FileEntry.h\
- LogFactory.cc LogFactory.h\
- TrackerUpdateCommand.cc TrackerUpdateCommand.h\
- ByteArrayDiskWriter.cc ByteArrayDiskWriter.h\
- PeerChokeCommand.cc PeerChokeCommand.h\
- ChokeMessage.cc ChokeMessage.h\
- UnchokeMessage.cc UnchokeMessage.h\
- InterestedMessage.cc InterestedMessage.h\
- NotInterestedMessage.cc NotInterestedMessage.h\
- HaveMessage.cc HaveMessage.h\
- BitfieldMessage.cc BitfieldMessage.h\
- RequestMessage.cc RequestMessage.h\
- PieceMessage.cc PieceMessage.h\
- CancelMessage.cc CancelMessage.h\
- KeepAliveMessage.cc KeepAliveMessage.h\
- PortMessage.cc PortMessage.h\
- HaveAllMessage.cc HaveAllMessage.h\
- HaveNoneMessage.cc HaveNoneMessage.h\
- RejectMessage.cc RejectMessage.h\
- AllowedFastMessage.cc AllowedFastMessage.h\
- SuggestPieceMessage.cc SuggestPieceMessage.h\
- SimplePeerMessage.cc SimplePeerMessage.h\
- NullLogger.h\
- Time.cc Time.h\
- Metalinker.cc Metalinker.h\
- MetalinkEntry.cc MetalinkEntry.h\
- MetalinkResource.cc MetalinkResource.h\
- MetalinkProcessor.h\
- Xml2MetalinkProcessor.cc Xml2MetalinkProcessor.h
-
+SRCS = Socket.cc Socket.h SocketCore.cc SocketCore.h Command.h \
+ AbstractCommand.cc AbstractCommand.h \
+ InitiateConnectionCommandFactory.cc \
+ InitiateConnectionCommandFactory.h DownloadCommand.cc \
+ DownloadCommand.h HttpInitiateConnectionCommand.cc \
+ HttpInitiateConnectionCommand.h HttpRequestCommand.cc \
+ HttpRequestCommand.h HttpResponseCommand.cc \
+ HttpResponseCommand.h HttpProxyRequestCommand.cc \
+ HttpProxyRequestCommand.h HttpProxyResponseCommand.cc \
+ HttpProxyResponseCommand.h HttpDownloadCommand.cc \
+ HttpDownloadCommand.h HttpHeader.cc HttpHeader.h \
+ HttpConnection.cc HttpConnection.h FtpConnection.cc \
+ FtpConnection.h FtpInitiateConnectionCommand.cc \
+ FtpInitiateConnectionCommand.h FtpNegotiationCommand.cc \
+ FtpNegotiationCommand.h FtpDownloadCommand.cc \
+ FtpDownloadCommand.h FtpTunnelRequestCommand.cc \
+ FtpTunnelRequestCommand.h FtpTunnelResponseCommand.cc \
+ FtpTunnelResponseCommand.h SleepCommand.cc SleepCommand.h \
+ DownloadEngine.cc DownloadEngine.h ConsoleDownloadEngine.cc \
+ ConsoleDownloadEngine.h Segment.h SegmentMan.cc SegmentMan.h \
+ SegmentSplitter.cc SegmentSplitter.h \
+ SplitFirstSegmentSplitter.cc SplitFirstSegmentSplitter.h \
+ SplitSlowestSegmentSplitter.cc SplitSlowestSegmentSplitter.h \
+ Util.cc Util.h Request.cc Request.h common.h message.h \
+ Exception.h DlAbortEx.h DlRetryEx.h Logger.h SimpleLogger.cc \
+ SimpleLogger.h TransferEncoding.h ChunkedEncoding.cc \
+ ChunkedEncoding.h DiskWriter.h DefaultDiskWriter.cc \
+ DefaultDiskWriter.h PreAllocationDiskWriter.cc \
+ PreAllocationDiskWriter.h AbstractDiskWriter.cc \
+ AbstractDiskWriter.h File.cc File.h Option.cc Option.h \
+ Base64.cc Base64.h CookieBox.cc CookieBox.h messageDigest.h \
+ LogFactory.cc LogFactory.h NullLogger.h Time.cc Time.h \
+ $(am__append_1) $(am__append_2)
noinst_LIBRARIES = libaria2c.a
libaria2c_a_SOURCES = $(SRCS)
aria2c_LDADD = libaria2c.a @LIBINTL@ @ALLOCA@ @LIBGNUTLS_LIBS@\
diff --git a/src/MultiDiskWriter.cc b/src/MultiDiskWriter.cc
index 3a67a920..f40f6da0 100644
--- a/src/MultiDiskWriter.cc
+++ b/src/MultiDiskWriter.cc
@@ -26,17 +26,17 @@
#include <errno.h>
MultiDiskWriter::MultiDiskWriter(int pieceLength):pieceLength(pieceLength) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
ctx.setAlgo(MessageDigestContext::ALGO_SHA1);
digestInit(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
MultiDiskWriter::~MultiDiskWriter() {
clearEntries();
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestFree(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void MultiDiskWriter::clearEntries() {
@@ -143,7 +143,7 @@ int MultiDiskWriter::readData(char* data, int len, long long int offset) {
return totalReadLength;
}
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
void MultiDiskWriter::hashUpdate(DiskWriterEntry* entry, long long int offset, long long int length) {
int BUFSIZE = 16*1024;
char buf[BUFSIZE];
@@ -162,10 +162,10 @@ void MultiDiskWriter::hashUpdate(DiskWriterEntry* entry, long long int offset, l
digestUpdate(ctx, buf, r);
}
}
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
string MultiDiskWriter::sha1Sum(long long int offset, long long int length) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
long long int fileOffset = offset;
bool reading = false;
int rem = length;
@@ -194,6 +194,6 @@ string MultiDiskWriter::sha1Sum(long long int offset, long long int length) {
}
#else
return "";
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
diff --git a/src/MultiDiskWriter.h b/src/MultiDiskWriter.h
index f2a36f6d..0cd18cb5 100644
--- a/src/MultiDiskWriter.h
+++ b/src/MultiDiskWriter.h
@@ -48,10 +48,10 @@ private:
bool isInRange(const DiskWriterEntry* entry, long long int offset) const;
int calculateLength(const DiskWriterEntry* entry, long long int fileOffset, int rem) const;
void clearEntries();
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
MessageDigestContext ctx;
void hashUpdate(DiskWriterEntry* entry, long long int offset, long long int length);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
public:
MultiDiskWriter(int pieceLength);
diff --git a/src/ShaVisitor.cc b/src/ShaVisitor.cc
index 0781e4dd..6807e7c2 100644
--- a/src/ShaVisitor.cc
+++ b/src/ShaVisitor.cc
@@ -23,21 +23,21 @@
#include "Util.h"
ShaVisitor::ShaVisitor() {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
ctx.setAlgo(MessageDigestContext::ALGO_SHA1);
digestInit(ctx);
digestReset(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
ShaVisitor::~ShaVisitor() {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestFree(ctx);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void ShaVisitor::visit(const Data* d) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
if(d->isNumber()) {
digestUpdate(ctx, "i", 1);
} else {
@@ -49,11 +49,11 @@ void ShaVisitor::visit(const Data* d) {
if(d->isNumber()) {
digestUpdate(ctx, "e", 1);
}
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void ShaVisitor::visit(const Dictionary* d) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestUpdate(ctx, "d", 1);
const Order& v = d->getOrder();
for(Order::const_iterator itr = v.begin(); itr != v.end(); itr++) {
@@ -65,17 +65,17 @@ void ShaVisitor::visit(const Dictionary* d) {
this->visit(e);
}
digestUpdate(ctx, "e", 1);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void ShaVisitor::visit(const List* l) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestUpdate(ctx, "l", 1);
for(MetaList::const_iterator itr = l->getList().begin(); itr != l->getList().end(); itr++) {
this->visit(*itr);
}
digestUpdate(ctx, "e", 1);
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
void ShaVisitor::visit(const MetaEntry* e) {
@@ -89,8 +89,8 @@ void ShaVisitor::visit(const MetaEntry* e) {
}
void ShaVisitor::getHash(unsigned char* hashValue, int& len) {
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
digestFinal(ctx, hashValue);
len = 20;
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
}
diff --git a/src/ShaVisitor.h b/src/ShaVisitor.h
index c49bb846..87f98d9a 100644
--- a/src/ShaVisitor.h
+++ b/src/ShaVisitor.h
@@ -27,15 +27,15 @@
#include "Dictionary.h"
#include "List.h"
#include "common.h"
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
#include "messageDigest.h"
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
class ShaVisitor : public MetaEntryVisitor {
private:
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
MessageDigestContext ctx;
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
public:
ShaVisitor();
~ShaVisitor();
diff --git a/src/Util.cc b/src/Util.cc
index ffc1e7a9..89130fb2 100644
--- a/src/Util.cc
+++ b/src/Util.cc
@@ -360,20 +360,20 @@ string Util::getContentDispositionFilename(const string& header) {
return trim(header.substr(filenamesp, filenameep-filenamesp));
}
+#ifdef ENABLE_MESSAGE_DIGEST
void Util::sha1Sum(unsigned char* digest, const void* data, int dataLength) {
-#ifdef ENABLE_SHA1DIGEST
MessageDigestContext ctx(MessageDigestContext::ALGO_SHA1);
digestInit(ctx);
digestReset(ctx);
digestUpdate(ctx, data, dataLength);
digestFinal(ctx, digest);
digestFree(ctx);
-#endif // ENABLE_SHA1DIGEST
}
+#endif // ENABLE_MESSAGE_DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
void Util::fileChecksum(const string& filename, unsigned char* digest,
MessageDigestContext::HashAlgo algo) {
-#ifdef ENABLE_SHA1DIGEST
MessageDigestContext ctx(algo);
digestInit(ctx);
digestReset(ctx);
@@ -403,9 +403,10 @@ void Util::fileChecksum(const string& filename, unsigned char* digest,
}
digestFinal(ctx, digest);
digestFree(ctx);
-#endif // ENABLE_SHA1DIGEST
}
+#endif // ENABLE_MESSAGE_DIGEST
+#ifdef ENABLE_BITTORRENT
Integers Util::computeFastSet(string ipaddr, const unsigned char* infoHash,
int pieces, int fastSetSize) {
Integers fastSet;
@@ -441,6 +442,7 @@ Integers Util::computeFastSet(string ipaddr, const unsigned char* infoHash,
}
return fastSet;
}
+#endif // ENABLE_BITTORRENT
/*
int Util::countBit(unsigned int n) {
diff --git a/src/Util.h b/src/Util.h
index 75afb8cc..37dcf245 100644
--- a/src/Util.h
+++ b/src/Util.h
@@ -23,9 +23,9 @@
#define _D_UTIL_H_
#include "common.h"
-#ifdef ENABLE_SHA1DIGEST
+#ifdef ENABLE_MESSAGE_DIGEST
#include "messageDigest.h"
-#endif // ENABLE_SHA1DIGEST
+#endif // ENABLE_MESSAGE_DIGEST
#include <string>
#include <utility>
#include <deque>
@@ -83,15 +83,21 @@ public:
static string getContentDispositionFilename(const string& header);
// digest must be at least 20 bytes long.
+#ifdef ENABLE_MESSAGE_DIGEST
static void sha1Sum(unsigned char* digest, const void* data, int dataLength);
+#endif // ENABLE_MESSAGE_DIGEST
// Before call this method, allocate enough memory to the parameter "digest".
// For sha1, you need 20 bytes. For md5, 16 bytes.
+#ifdef ENABLE_MESSAGE_DIGEST
static void fileChecksum(const string& filename, unsigned char* digest,
MessageDigestContext::HashAlgo algo);
+#endif // ENABLE_MESSAGE_DIGEST
+#ifdef ENABLE_BITTORRENT
static Integers computeFastSet(string ipaddr, const unsigned char* infoHash,
int pieces, int fastSetSize);
+#endif // ENABLE_BITTORRENT
static int countBit(unsigned int);
diff --git a/src/Xml2MetalinkProcessor.cc b/src/Xml2MetalinkProcessor.cc
index 81011803..bb3281a9 100644
--- a/src/Xml2MetalinkProcessor.cc
+++ b/src/Xml2MetalinkProcessor.cc
@@ -88,8 +88,8 @@ MetalinkEntry* Xml2MetalinkProcessor::getEntry(const string& xpath) {
entry->version = Util::trim(xpathContent(xpath+"/m:version"));
entry->language = Util::trim(xpathContent(xpath+"/m:language"));
entry->os = Util::trim(xpathContent(xpath+"/m:os"));
- entry->md5 = Util::trim(xpathContent(xpath+"/m:verification/m:hash[@type=\"md5\"]"));
- entry->sha1 = Util::trim(xpathContent(xpath+"/m:verification/m:hash[@type=\"sha1\"]"));
+ entry->md5 = Util::toLower(Util::trim(xpathContent(xpath+"/m:verification/m:hash[@type=\"md5\"]")));
+ entry->sha1 = Util::toLower(Util::trim(xpathContent(xpath+"/m:verification/m:hash[@type=\"sha1\"]")));
for(int index = 1; 1; index++) {
MetalinkResource* resource =
getResource(xpath+"/m:resources/m:url["+Util::itos(index)+"]");
diff --git a/src/main.cc b/src/main.cc
index 51dfd800..154dbe07 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -21,9 +21,7 @@
/* copyright --> */
#include "HttpInitiateConnectionCommand.h"
#include "ConsoleDownloadEngine.h"
-#include "TorrentConsoleDownloadEngine.h"
#include "SegmentMan.h"
-#include "TorrentMan.h"
#include "SplitSlowestSegmentSplitter.h"
#include "LogFactory.h"
#include "common.h"
@@ -31,13 +29,22 @@
#include "Util.h"
#include "InitiateConnectionCommandFactory.h"
#include "prefs.h"
-#include "PeerListenCommand.h"
-#include "TorrentAutoSaveCommand.h"
-#include "TrackerWatcherCommand.h"
-#include "TrackerUpdateCommand.h"
-#include "ByteArrayDiskWriter.h"
-#include "PeerChokeCommand.h"
-#include "Xml2MetalinkProcessor.h"
+
+#ifdef ENABLE_BITTORRENT
+# include "TorrentConsoleDownloadEngine.h"
+# include "TorrentMan.h"
+# include "PeerListenCommand.h"
+# include "TorrentAutoSaveCommand.h"
+# include "TrackerWatcherCommand.h"
+# include "TrackerUpdateCommand.h"
+# include "ByteArrayDiskWriter.h"
+# include "PeerChokeCommand.h"
+#endif // ENABLE_BITTORRENT
+
+#ifdef ENABLE_METALINK
+# include "Xml2MetalinkProcessor.h"
+#endif // ENABLE_METALINK
+
#include <deque>
#include <algorithm>
#include <time.h>
@@ -86,7 +93,9 @@ void setSignalHander(int signal, void (*handler)(int), int flags) {
}
DownloadEngine* e;
+#ifdef ENABLE_BITTORRENT
TorrentDownloadEngine* te;
+#endif // ENABLE_BITTORRENT
void handler(int signal) {
printf(_("\nstopping application...\n"));
@@ -96,28 +105,14 @@ void handler(int signal) {
e->cleanQueue();
delete e;
printf(_("done\n"));
- exit(0);
+ exit(EXIT_SUCCESS);
}
+#ifdef ENABLE_BITTORRENT
void torrentHandler(int signal) {
- /*
- printf(_("\nstopping application...\n"));
- fflush(stdout);
- te->torrentMan->diskAdaptor->closeFile();
- if(te->torrentMan->downloadComplete() && te->isFilenameFixed()) {
- te->torrentMan->remove();
- //te->torrentMan->deleteTempFile();
- printDownloadCompeleteMessage();
- } else {
- te->torrentMan->save();
- }
- te->cleanQueue();
- delete te;
- printf(_("done\n"));
- exit(0);
- */
te->torrentMan->setHalt(true);
}
+#endif // ENABLE_BITTORRENT
void createRequest(int cuid, const string& url, string referer, Requests& requests) {
Request* req = new Request();
@@ -159,6 +154,9 @@ void showUsage() {
#ifdef ENABLE_BITTORRENT
printf(_(" %s [options] -T TORRENT_FILE FILE ...\n"), PACKAGE_NAME);
#endif // ENABLE_BITTORRENT
+#ifdef ENABLE_METALINK
+ printf(_(" %s [options] -M METALINK_FILE\n"), PACKAGE_NAME);
+#endif // ENABLE_METALINK
cout << endl;
cout << _("Options:") << endl;
cout << _(" -d, --dir=DIR The directory to store downloaded file.") << endl;
@@ -224,6 +222,20 @@ void showUsage() {
" You can also use '-' to specify rangelike \"1-5\".\n"
" ',' and '-' can be used together.") << endl;
#endif // ENABLE_BITTORRENT
+#ifdef ENABLE_METALINK
+ cout << _(" -M, --metalink-file=METALINK_FILE The file path to .metalink file.") << endl;
+ cout << _(" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
+ " simultaneously. If more than one connection per\n"
+ " server is required, use -s option.\n"
+ " Default: 15") << endl;
+ cout << _(" --metalink-version=VERSION The version of file to download.") << endl;
+ cout << _(" --metalink-language=LANGUAGE The language of file to download.") << endl;
+ cout << _(" --metalink-os=OS The operating system the file is targeted.") << endl;
+ cout << _(" --follow-metalink=true|false Setting this option to false prevents aria2 to\n"
+ " enter Metalink mode even if the filename of\n"
+ " downloaded file ends with .metalink.\n"
+ " Default: true") << endl;
+#endif // ENABLE_METALINK
cout << _(" -v, --version Print the version number and exit.") << endl;
cout << _(" -h, --help Print this message and exit.") << endl;
cout << endl;
@@ -247,6 +259,7 @@ void showUsage() {
cout << _(" You can mix up different protocols:") << endl;
cout << " aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip" << endl;
#ifdef ENABLE_BITTORRENT
+ cout << endl;
cout << _(" Download a torrent:") << endl;
cout << " aria2c -t 180 -o test.torrent http://AAA.BBB.CCC/file.torrent" << endl;
cout << _(" Download a torrent using local .torrent file:") << endl;
@@ -255,8 +268,17 @@ void showUsage() {
cout << " aria2c -t 180 -T test.torrent dir/file1.zip dir/file2.zip" << endl;
cout << _(" Print file listing of .torrent file:") << endl;
cout << " aria2c -t 180 -T test.torrent -S" << endl;
- cout << endl;
#endif // ENABLE_BITTORRENT
+#ifdef ENABLE_METALINK
+ cout << endl;
+ cout << _(" Metalink downloading:") << endl;
+ cout << " aria2c http://AAA.BBB.CCC/file.metalink" << endl;
+ cout << _(" Download a file using local .metalink file:") << endl;
+ cout << " aria2c -M test.metalink" << endl;
+ cout << _(" Metalink downloading with preferences:") << endl;
+ cout << " aria2c -M test.metalink --metalink-version=1.1.1 --metalink-language=en-US" << endl;
+#endif // ENABLE_METALINK
+ cout << endl;
printf(_("Report bugs to %s"), "<tujikawa at users dot sourceforge dot net>");
cout << endl;
}
@@ -329,7 +351,7 @@ int main(int argc, char* argv[]) {
string metalinkVersion;
string metalinkLanguage;
string metalinkOs;
- int metalinkConnection = 15;
+ int metalinkServers = 15;
Integers selectFileIndexes;
#ifdef ENABLE_BITTORRENT
bool followTorrent = true;
@@ -396,7 +418,11 @@ int main(int argc, char* argv[]) {
#endif // ENABLE_BITTORRENT
#ifdef ENABLE_METALINK
{ "metalink-file", required_argument, NULL, 'M' },
- { "metalink-connection", required_argument, NULL, 'C' },
+ { "metalink-servers", required_argument, NULL, 'C' },
+ { "metalink-version", required_argument, &lopt, 100 },
+ { "metalink-language", required_argument, &lopt, 101 },
+ { "metalink-os", required_argument, &lopt, 102 },
+ { "follow-metalink", required_argument, &lopt, 103 },
#endif // ENABLE_METALINK
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
@@ -417,7 +443,7 @@ int main(int argc, char* argv[]) {
!(0 < port && port <= 65535)) {
cerr << _("unrecognized proxy format") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
op->put(PREF_HTTP_PROXY_HOST, proxy.first);
op->put(PREF_HTTP_PROXY_PORT, Util::itos(port));
@@ -453,7 +479,7 @@ int main(int argc, char* argv[]) {
if(!(0 <= wait && wait <= 60)) {
cerr << _("retry-wait must be between 0 and 60.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
op->put(PREF_RETRY_WAIT, Util::itos(wait));
break;
@@ -470,7 +496,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("ftp-type must be either 'binary' or 'ascii'.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 12:
@@ -479,7 +505,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("ftp-via-http-proxy must be either 'get' or 'tunnel'.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 13: {
@@ -497,7 +523,7 @@ int main(int argc, char* argv[]) {
if(size < 1024) {
cerr << _("min-segment-size invalid") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
op->put(PREF_MIN_SEGMENT_SIZE, Util::llitos(size));
break;
@@ -508,7 +534,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("http-proxy-method must be either 'get' or 'tunnel'.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 15:
@@ -516,7 +542,7 @@ int main(int argc, char* argv[]) {
if(!(1024 <= listenPort && listenPort <= 65535)) {
cerr << _("listen-port must be between 1024 and 65535.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 16:
@@ -527,7 +553,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("follow-torrent must be either 'true' or 'false'.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 18:
@@ -541,7 +567,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("direct-file-mapping must be either 'true' or 'false'.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 20: {
@@ -549,7 +575,7 @@ int main(int argc, char* argv[]) {
if(0 > uploadSpeed) {
cerr << _("upload-limit must be greater than or equal to 0.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
op->put(PREF_UPLOAD_LIMIT, Util::itos(uploadSpeed));
break;
@@ -557,6 +583,26 @@ int main(int argc, char* argv[]) {
case 21:
Util::unfoldRange(optarg, selectFileIndexes);
break;
+ case 100:
+ metalinkVersion = string(optarg);
+ break;
+ case 101:
+ metalinkLanguage = string(optarg);
+ break;
+ case 102:
+ metalinkOs = string(optarg);
+ break;
+ case 103:
+ if(string(optarg) == "true") {
+ followMetalink = true;
+ } else if(string(optarg) == "false") {
+ followMetalink = false;
+ } else {
+ cerr << _("follow-metalink must be either 'true' or 'false'.") << endl;
+ showUsage();
+ exit(EXIT_FAILURE);
+ }
+ break;
}
break;
}
@@ -581,7 +627,7 @@ int main(int argc, char* argv[]) {
if(!(1 <= split && split <= 5)) {
cerr << _("split must be between 1 and 5.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 't': {
@@ -591,7 +637,7 @@ int main(int argc, char* argv[]) {
} else {
cerr << _("timeout must be between 1 and 600") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
}
@@ -600,7 +646,7 @@ int main(int argc, char* argv[]) {
if(retries < 0) {
cerr << _("max-tries invalid") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
op->put(PREF_MAX_TRIES, Util::itos(retries));
break;
@@ -618,35 +664,35 @@ int main(int argc, char* argv[]) {
metalinkFile = string(optarg);
break;
case 'C':
- metalinkConnection = (int)strtol(optarg, NULL, 10);
- if(metalinkConnection <= 0) {
- cerr << _("metalink-connection must be greater than 0.") << endl;
+ metalinkServers = (int)strtol(optarg, NULL, 10);
+ if(metalinkServers <= 0) {
+ cerr << _("metalink-servers must be greater than 0.") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
break;
case 'v':
showVersion();
- exit(0);
+ exit(EXIT_SUCCESS);
case 'h':
showUsage();
- exit(0);
+ exit(EXIT_SUCCESS);
default:
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
}
if(torrentFile.empty() && metalinkFile.empty()) {
if(optind == argc) {
cerr << _("specify at least one URL") << endl;
showUsage();
- exit(1);
+ exit(EXIT_FAILURE);
}
}
if(daemonMode) {
if(daemon(1, 1) < 0) {
perror(_("daemon failed"));
- exit(1);
+ exit(EXIT_FAILURE);
}
}
@@ -660,9 +706,9 @@ int main(int argc, char* argv[]) {
#ifdef HAVE_LIBGNUTLS
gnutls_global_init();
#endif // HAVE_LIBGNUTLS
-#ifdef HAVE_LIBXML2
+#ifdef ENABLE_METALINK
xmlInitParser();
-#endif // HAVE_LIBXML2
+#endif // ENABLE_METALINK
srandom(time(NULL));
if(stdoutLog) {
LogFactory::setLogFile("/dev/stdout");
@@ -675,7 +721,7 @@ int main(int argc, char* argv[]) {
} catch(Exception* ex) {
cerr << ex->getMsg() << endl;
delete ex;
- exit(1);
+ exit(EXIT_FAILURE);
}
setSignalHander(SIGPIPE, SIG_IGN, 0);
@@ -699,6 +745,7 @@ int main(int argc, char* argv[]) {
for_each(requests.begin(), requests.end(), Deleter());
requests.clear();
}
+#ifdef ENABLE_METALINK
if(!metalinkFile.empty() || followMetalink && readyToMetalinkMode) {
string targetMetalinkFile = metalinkFile.empty() ?
downloadedMetalinkFile : metalinkFile;
@@ -709,8 +756,8 @@ int main(int argc, char* argv[]) {
metalinkLanguage,
metalinkOs);
if(entry == NULL) {
- printf("No file matched with your preference");
- exit(1);
+ printf("No file matched with your preference.\n");
+ exit(EXIT_FAILURE);
}
entry->dropUnsupportedResource();
entry->reorderResourcesByPreference();
@@ -719,14 +766,17 @@ int main(int argc, char* argv[]) {
for(MetalinkResources::const_iterator itr = entry->resources.begin();
itr != entry->resources.end(); itr++) {
MetalinkResource* resource = *itr;
- createRequest(cuidCounter, resource->url, referer, requests);
- cuidCounter++;
+ for(int s = 1; s <= split; s++) {
+ createRequest(cuidCounter, resource->url, referer, requests);
+ cuidCounter++;
+ }
}
Requests reserved;
- if((int)requests.size() > metalinkConnection) {
- copy(requests.begin()+metalinkConnection, requests.end(),
+ int maxConnection = metalinkServers*split;
+ if((int)requests.size() > maxConnection) {
+ copy(requests.begin()+maxConnection, requests.end(),
insert_iterator<Requests>(reserved, reserved.end()));
- requests.erase(requests.begin()+metalinkConnection, requests.end());
+ requests.erase(requests.begin()+maxConnection, requests.end());
}
setSignalHander(SIGINT, handler, 0);
@@ -749,7 +799,10 @@ int main(int argc, char* argv[]) {
}
delete metalinker;
- } else if(!torrentFile.empty() || followTorrent && readyToTorrentMode) {
+ }
+#endif // ENABLE_METALINK
+#ifdef ENABLE_BITTORRENT
+ if(!torrentFile.empty() || followTorrent && readyToTorrentMode) {
try {
//op->put(PREF_MAX_TRIES, "0");
setSignalHander(SIGINT, torrentHandler, SA_RESETHAND);
@@ -785,7 +838,7 @@ int main(int argc, char* argv[]) {
Util::llitos(itr->length, true).c_str());
cout << "---+---------------------------------------------------------------------------" << endl;
}
- exit(0);
+ exit(EXIT_SUCCESS);
} else {
if(selectFileIndexes.empty()) {
Strings targetFiles;
@@ -807,7 +860,7 @@ int main(int argc, char* argv[]) {
}
if(port == -1) {
printf(_("Errors occurred while binding port.\n"));
- exit(1);
+ exit(EXIT_FAILURE);
}
te->torrentMan->setPort(port);
te->commands.push_back(listenCommand);
@@ -832,16 +885,17 @@ int main(int argc, char* argv[]) {
} catch(Exception* ex) {
cerr << ex->getMsg() << endl;
delete ex;
- exit(1);
+ exit(EXIT_FAILURE);
}
}
+#endif // ENABLE_BITTORRENT
delete op;
LogFactory::release();
#ifdef HAVE_LIBGNUTLS
gnutls_global_deinit();
#endif // HAVE_LIBGNUTLS
-#ifdef HAVE_LIBXML2
+#ifdef ENABLE_METALINK
xmlCleanupParser();
-#endif // HAVE_LIBXML2
+#endif // ENABLE_METALINK
return 0;
}
diff --git a/src/messageDigest.h b/src/messageDigest.h
index a514441c..b084f07b 100644
--- a/src/messageDigest.h
+++ b/src/messageDigest.h
@@ -24,7 +24,7 @@
#include "common.h"
-#ifdef ENABLE_BITTORRENT
+#ifdef ENABLE_SSL
#ifdef HAVE_LIBSSL
#include <openssl/evp.h>
@@ -103,6 +103,6 @@ memcpy(HASH, gcry_md_read(CTX.ctx, 0), gcry_md_get_algo_dlen(CTX.algo));\
#define digestFree(CTX) gcry_md_close(CTX.ctx)
#endif // HAVE_LIBGCRYPT
-#endif // ENABLE_BITTORRENT
+#endif // ENABLE_SSL
#endif // _D_MESSAGE_DIGEST_H_
diff --git a/test/Makefile.in b/test/Makefile.in
index 0c1606b2..da4b35df 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -120,6 +120,10 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_BITTORRENT_FALSE = @ENABLE_BITTORRENT_FALSE@
+ENABLE_BITTORRENT_TRUE = @ENABLE_BITTORRENT_TRUE@
+ENABLE_METALINK_FALSE = @ENABLE_METALINK_FALSE@
+ENABLE_METALINK_TRUE = @ENABLE_METALINK_TRUE@
EXEEXT = @EXEEXT@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@