Import Upstream version 2.14

parent 10dc0b74
sudo: required
dist: trusty
os: linux
language: c
matrix:
include:
- os: linux
compiler: gcc
- os: linux
compiler: clang
- os: osx
osx_image: xcode8.3
compiler: clang
- os: linux
compiler: gcc
env: CONF_FLAGS="--without-ssl"
- os: linux
compiler: clang
env: CONF_FLAGS="--without-ssl"
- os: osx
osx_image: xcode8.3
compiler: clang
env: CONF_FLAGS="--without-ssl"
addons:
apt:
packages:
- linux-libc-dev
- autopoint
- libssl-dev
- clang
cache:
ccache: true
before_install:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update ; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew install gettext openssl; fi
script:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
export GETTEXT="/usr/local/opt/gettext";
export OPENSSL="/usr/local/opt/openssl";
export PATH="$GETTEXT/bin:$PATH";
export OSX_AG_FLAGS="-I$GETTEXT/share/aclocal/";
export OSX_CFLAGS="-I$OPENSSL/include -I$GETTEXT/include";
export OSX_LDFLAGS="-L$GETTEXT/lib";
fi
- ./autogen.sh $OSX_AG_FLAGS &&
./configure $CONF_FLAGS CFLAGS="-O3 -Werror $OSX_CFLAGS" LDFLAGS="$OSX_LDFLAGS" &&
make
...@@ -4,5 +4,6 @@ Philipp Hagemeister <phihag@phihag.de> ...@@ -4,5 +4,6 @@ Philipp Hagemeister <phihag@phihag.de>
Joao Eriberto Mota Filho <eriberto@eriberto.pro.br> Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
Stephen Thirlwall <sdt@dr.com> Stephen Thirlwall <sdt@dr.com>
Ismael Luceno <ismael@iodev.co.uk> Ismael Luceno <ismael@iodev.co.uk>
Antonio Quartulli <a@unstable.cc>
-- Updated by Eriberto, Wed, 02 Aug 2017 17:11:30 -0300 -- Updated by Eriberto, Sat, 26 Aug 2017 22:55:30 -0300
## HOW TO CONTRIBUTE TO AXEL DEVELOPMENT ## HOW TO CONTRIBUTE TO AXEL DEVELOPMENT
Axel is available at https://github.com/eribertomota/axel Axel is available at https://github.com/axel-download-accelerator/axel
If you are interested in contribute to axel development, please, follow If you are interested in contribute to axel development, please, follow
these steps: these steps:
1. Send me a patch that fix an issue or that implement a new feature. 1. Send a patch that fix an issue or that implement a new feature.
Alternatively, you can do a 'pull request'[1] in GitHub. Alternatively, you can do a 'pull request'[1] in GitHub.
[1] https://help.github.com/articles/using-pull-requests [1] https://help.github.com/articles/using-pull-requests
2. Ask for join to the Axel project in GitHub, if you want to work 2. Ask for join to the Axel project in GitHub, if you want to work
officially. Note that this second step is not compulsory. However, officially. Note that this second step is not compulsory. However,
to accept you in project, I need a minimum collaboration before. to accept you in project, is needed a minimum previous collaboration.
To find issues and bugs to fix, you can check these addresses: To find issues and bugs to fix, you can check these addresses:
- https://github.com/eribertomota/axel/issues - https://github.com/axel-download-accelerator/axel/issues
- https://alioth.debian.org/tracker/?atid=413085&group_id=100070&func=browse - https://alioth.debian.org/tracker/?atid=413085&group_id=100070&func=browse
(ALIOTH IS THE OLD HOMEPAGE, BUT HAS OPENED BUGS) (ALIOTH IS THE OLD HOMEPAGE, BUT HAS OPENED BUGS)
- https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=axel - https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=axel
...@@ -26,11 +26,12 @@ To find issues and bugs to fix, you can check these addresses: ...@@ -26,11 +26,12 @@ To find issues and bugs to fix, you can check these addresses:
- https://bugs.archlinux.org/?project=5&cat[]=33&string=axel - https://bugs.archlinux.org/?project=5&cat[]=33&string=axel
- https://bugs.gentoo.org/buglist.cgi?quicksearch=net-misc%2Faxel - https://bugs.gentoo.org/buglist.cgi?quicksearch=net-misc%2Faxel
If you want to join, please contact me: eriberto at eriberto.pro.br If you want to join, please make a contact.
There is a group here[2] to discuss and to coordinate the development. There is a group here[2] to discuss and to coordinate the development.
You can also find other developers in the #axel channel on freenode.
[2] https://groups.google.com/forum/#!forum/axel-accelerator-dev [2] https://groups.google.com/forum/#!forum/axel-accelerator-dev
-- Eriberto, Sun, 20 Mar 2016 16:27:53 -0300, -- Eriberto, Sun, 20 Mar 2016 16:27:53 -0300,
updated on Sun, 02 Apr 2017 23:13:00 -0300. updated on Sun, 08 Sep 2017 23:27:00 -0300.
2.14 version:
- Changes is souce code by:
* Antonio Quartulli <a@unstable.cc>
* Ismael Luceno <ismael@iodev.co.uk>
* Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
Read the ChangeLog to see the changes.
2.13 and 2.13.1 versions: 2.13 and 2.13.1 versions:
- Ismael Luceno <ismael@iodev.co.uk> is officially coordinating the Axel - Ismael Luceno <ismael@iodev.co.uk> is officially coordinating the Axel
...@@ -32,7 +42,7 @@ ...@@ -32,7 +42,7 @@
- Phillip Berndt <phillip.berndt@googlemail.com> - Phillip Berndt <phillip.berndt@googlemail.com>
Added a feature to extract file sizes from the Content-Range header. More Added a feature to extract file sizes from the Content-Range header. More
details here: details here:
https://github.com/eribertomota/axel/commit/bcc98626791eb082c992d578fe93be72cfedef51 https://github.com/axel-download-accelerator/axel/commit/bcc98626791eb082c992d578fe93be72cfedef51
- Stephen Thirlwall <sdt@dr.com> - Stephen Thirlwall <sdt@dr.com>
Fixed rpl_malloc not found when cross-compiling. Fixed rpl_malloc not found when cross-compiling.
......
Version 2.14, 2017-09-10
[ Antonio Quartulli ]
* Added basic travis-ci support.
* Added --no-clobber option.
* Added port to Host HTTP header when different from service default.
* Allow user to choose between IPv4 and IPv6.
* Alternate-output: use better representation.
* Avoid bad-free when deallocating multiple URLs.
* Avoid memory leak in case of failure in main function.
* Avoid racy access to last_transfer.
* Avoid segfault when quiet and alternate behaviour are both specified.
* Convert usleep to nanosleep.
* Don't include openssl.h when without-openssl is specified.
* Don't leak buffer on program termination.
* Don't link with -pthread on OSX.
* Ensure alternate output can be setup and prevent crash.
* Ensure 'progress' has space for null terminator.
* Fixed a memory leak.
* Fixed a NULL dereference.
* Fixed race segfault upon connection to HTTPS server.
* Fixed use-after-free of axel->conn member.
* Implemented HTTP proxy authentication.
* Improved code in option parsing routine.
* Improved http_auth_token to avoid buffering.
* Increased default number of max redirects to 20 and make it configurable.
* Make axel thread safe.
* Make SSL initialization race free.
* Mention IRC channel in README and CONTRIBUTING files.
* Reset 'enabled' attribute in conn_disconnect().
* SSL: don't declare tcp->ssl if OpenSSL is disabled.
* Use boolean variables as such.
* Some minor fixes and changes.
[ Ismael Luceno ]
* Added -D_DEFAULT_SOURCE and -D_BSD_SOURCE to CPPFLAGS.
* Added guard to header files.
* conf: Reorder check for "interfaces" key.
* configure: Force a C99 compiler.
* configure: Let autoconf take care of LFS.
* Fixed conn_set prototype.
* Fixed http_header and http_filename prototypes.
* Improve configuration parsing code.
* Report truncated state file properly.
* Some minor fixes and changes.
[ Joao Eriberto Mota Filho ]
* Added i18n for new messages.
* Updated general docs, as AUTHORS and ChangeLog files.
* Updated project homepage in all files.
* Updated the copyright notices in all headers.
* Updated the manpage.
* Updated the pt_BR translation.
* Updated the README.md file.
* Final tests, release and Debian packaging.
Version 2.13.1, 2017-08-03 Version 2.13.1, 2017-08-03
[ Joao Eriberto Mota Filho ] [ Joao Eriberto Mota Filho ]
* Updated .po files. * Updated .po files.
Version 2.13, 2017-08-02 Version 2.13, 2017-08-02
[ David Polverari ] [ David Polverari ]
...@@ -86,7 +149,7 @@ Version 2.10, 2016-06-04 ...@@ -86,7 +149,7 @@ Version 2.10, 2016-06-04
* Stephen implemented SSL/TLS. Consequently, the licensing for Axel from now on * Stephen implemented SSL/TLS. Consequently, the licensing for Axel from now on
will be GPL-2+ with OpenSSL exception. All previous authors agree with that. will be GPL-2+ with OpenSSL exception. All previous authors agree with that.
For details, see https://github.com/eribertomota/axel/issues/15. For details, see https://github.com/axel-download-accelerator/axel/issues/15.
* Downgraded gettext minimum version to 0.18 in configure.ac. It will produce a * Downgraded gettext minimum version to 0.18 in configure.ac. It will produce a
message 'AM_PROG_MKDIR_P macro is deprecated' when building, but that is message 'AM_PROG_MKDIR_P macro is deprecated' when building, but that is
normal. normal.
......
...@@ -15,14 +15,16 @@ ...@@ -15,14 +15,16 @@
Axel needs your help. **If you are a programmer** and if you wants to Axel needs your help. **If you are a programmer** and if you wants to
help a nice project, this is your opportunity. help a nice project, this is your opportunity.
My name is Eriberto and **I am not a C developer**. I imported Axel from Axel was imported from its old repository[1] to GitHub (the original
its old repository[1] to GitHub (the original homepage and developers homepage and developers are inactive). After this, all patches found
are inactive). After this, I applied all patches found in Debian project in Debian project and other places for this program were applied. All
and other places for this program. All my initial work was registered in initial work was registered in ChangeLog file (version 2.5 and later
ChangeLog file (version 2.5 and later releases). I also maintain Axel releases). Axel is being packaged in Debian[2].
packaged in Debian[2].
If you are interested to help Axel, read the [CONTRIBUTING.md](CONTRIBUTING.md) file. Additionally, there is a group to discuss and to coordinate the development process[3]. If you are interested to help Axel, read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
Additionally, there is a group to discuss and to coordinate the
development process[3]. You can also find other developers in the
#axel channel on freenode.
[1] https://alioth.debian.org/projects/axel [1] https://alioth.debian.org/projects/axel
[2] https://packages.qa.debian.org/a/axel.html [2] https://packages.qa.debian.org/a/axel.html
...@@ -44,7 +46,7 @@ Axel supports HTTP, HTTPS, FTP and FTPS protocols. ...@@ -44,7 +46,7 @@ Axel supports HTTP, HTTPS, FTP and FTPS protocols.
Axel was originally developed by Wilmer van der Gaast. Thanks for your Axel was originally developed by Wilmer van der Gaast. Thanks for your
efforts. Over time, Axel got several contributions from people. Please, efforts. Over time, Axel got several contributions from people. Please,
see the files AUTHORS and CREDITS. see AUTHORS and CREDITS files in source code.
## 3. Building from source ## ## 3. Building from source ##
......
# Autoconf for axel # Autoconf for axel
# Copyright 2016 Joao Eriberto Mota Filho # Copyright 2016 Joao Eriberto Mota Filho
# Copyright 2016 Stephen Thirlwall # Copyright 2016 Stephen Thirlwall
# Copyright 2017 Antonio Quartulli
# Copyright 2017 Ismael Luceno
# Copyright 2017 Vlad Glagolev # Copyright 2017 Vlad Glagolev
# This file is under same license of Axel # This file is under same license of Axel
AC_PREREQ([2.69]) AC_PREREQ([2.69])
AC_INIT([axel], [2.13.1], [https://github.com/eribertomota/axel/issues]) AC_INIT([axel], [2.14], [https://github.com/axel-download-accelerator/axel/issues])
AC_CONFIG_SRCDIR([src/conf.h]) AC_CONFIG_SRCDIR([src/conf.h])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
...@@ -13,6 +15,11 @@ AM_INIT_AUTOMAKE ...@@ -13,6 +15,11 @@ AM_INIT_AUTOMAKE
# Checks for programs. # Checks for programs.
AC_PROG_CC AC_PROG_CC
AC_PROG_CC_C99
if test "x$ac_cv_prog_cc_c99" = "xno"; then
AC_MSG_ERROR([C99 compiler required])
fi
AC_CHECK_PROGS([GETTEXT], [gettext], "no") AC_CHECK_PROGS([GETTEXT], [gettext], "no")
if test "x$GETTEXT" = "xno"; then if test "x$GETTEXT" = "xno"; then
AC_MSG_ERROR([axel requires gettext]) AC_MSG_ERROR([axel requires gettext])
...@@ -27,26 +34,29 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netine ...@@ -27,26 +34,29 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netine
AC_TYPE_SIZE_T AC_TYPE_SIZE_T
# Checks for library functions. # Checks for library functions.
AC_CHECK_FUNCS([malloc realloc gettimeofday inet_ntoa memset select setlocale socket strcasecmp strchr strrchr strstr]) AC_CHECK_FUNCS([malloc realloc gettimeofday inet_ntoa memset select setlocale socket strncasecmp strchr strrchr strstr])
# Optional (but included-by-default) openssl support # Optional (but included-by-default) ssl support
AC_ARG_WITH([openssl], AC_ARG_WITH([ssl],
AC_HELP_STRING([--without-openssl],[disable TLS support]), [], [with_openssl=yes]) AC_HELP_STRING([--without-ssl],[disable TLS support]), [], [with_ssl=yes])
AS_IF([test "x$with_openssl" != xno], [ AS_IF([test "x$with_ssl" != xno], [
AC_DEFINE([HAVE_OPENSSL], [1], [OpenSSL]) AC_DEFINE([HAVE_SSL], [1], [SSL])
AC_SEARCH_LIBS([SSL_new], [ssl], [], [ AC_SEARCH_LIBS([SSL_new], [ssl], [], [
AC_MSG_ERROR([libssl not found]) AC_MSG_ERROR([libssl not found])
]) ])
AC_SEARCH_LIBS([ERR_get_error], [crypto], [], [ AC_SEARCH_LIBS([ERR_get_error], [crypto], [], [
AC_MSG_ERROR([libcrypto not found]) AC_MSG_ERROR([libcrypto not found])
]) ])
], AC_MSG_NOTICE([OpenSSL support disabled])) ], AC_MSG_NOTICE([SSL support disabled]))
# Add Gettext # Add Gettext
AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18]) AM_GNU_GETTEXT_VERSION([0.18])
# Large file support
AC_SYS_LARGEFILE
#### Definitions #### #### Definitions ####
# OS # OS
...@@ -54,26 +64,23 @@ arch=$(uname -s) ...@@ -54,26 +64,23 @@ arch=$(uname -s)
AC_DEFINE_UNQUOTED([ARCH], ["$arch"], ["Define architecture"]) AC_DEFINE_UNQUOTED([ARCH], ["$arch"], ["Define architecture"])
# Flags # Flags
CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall" CFLAGS="$CFLAGS -Wall"
LDFLAGS="$LDFLAGS $LIBINTL"
case "$arch" in case "$arch" in
FreeBSD | OpenBSD | NetBSD | Darwin ) Darwin )
LDFLAGS="$LDFLAGS -lintl -pthread"
;;
Linux | GNU/kFreeBSD | GNU )
LDFLAGS="$LDFLAGS -pthread"
;; ;;
SunOS ) SunOS )
LDFLAGS="$LDFLAGS -lintl -pthread -lsocket -lnsl" LDFLAGS="$LDFLAGS -pthread -lsocket -lnsl"
;; ;;
HP-UX ) HP-UX )
if [ -d /usr/local/lib/hpux32 ]; then if [ -d /usr/local/lib/hpux32 ]; then
AXEL_EXTRA_FLAGS="-L/usr/local/lib/hpux32" AXEL_EXTRA_FLAGS="-L/usr/local/lib/hpux32"
fi fi
LDFLAGS="$LDFLAGS $AXEL_EXTRA_FLAGS -lintl -lpthread" LDFLAGS="$LDFLAGS $AXEL_EXTRA_FLAGS -lpthread"
;; ;;
* ) * )
LDFLAGS="$LDFLAGS -lintl -pthread" LDFLAGS="$LDFLAGS -pthread"
;; ;;
esac esac
......
...@@ -7,7 +7,7 @@ Roadmap for Axel v2 ...@@ -7,7 +7,7 @@ Roadmap for Axel v2
Roadmap for Axel v3 (by Philipp Hagemeister, 2008-2010) Roadmap for Axel v3 (by Philipp Hagemeister, 2008-2010)
=================== ===================
Note: This document provides only a rough overview what to do next. Refer to the bugtracker ( https://github.com/eribertomota/axel/issues ) for detailled information. Note: This document provides only a rough overview what to do next. Refer to the bugtracker ( https://github.com/axel-download-accelerator/axel/issues ) for detailled information.
Pre-release version numbers of Axel 3 will start with 2.99. Starting with the 3.x series, the following version scheme will be adopted: Pre-release version numbers of Axel 3 will start with 2.99. Starting with the 3.x series, the following version scheme will be adopted:
x.y.z x.y.z
......
...@@ -5,7 +5,7 @@ When updating, change these files (if needed): ...@@ -5,7 +5,7 @@ When updating, change these files (if needed):
- CREDITS - CREDITS
- configure.ac (VERSION) - configure.ac (VERSION)
- manpage version and date - manpage version and date
- src/axel.h (AXEL_VERSION_STRING) (check copyright years in header)
- src/text.c (years in Copyright lines near EOF) - src/text.c (years in Copyright lines near EOF)
- test Debian packaging
-> run 'make update-po' in po/ to update the .po files. -> run 'make update-po' in po/ to update the .po files.
...@@ -21,6 +21,11 @@ ...@@ -21,6 +21,11 @@
# #
# num_connections = 4 # num_connections = 4
# Set the maximum number of redirects that Axel is allowed to follow. The
# default value is 20.
#
# max_redirect = 20
# If no data comes from a connection for this number of seconds, abort (and # If no data comes from a connection for this number of seconds, abort (and
# resume) the connection. # resume) the connection.
# #
...@@ -29,6 +34,14 @@ ...@@ -29,6 +34,14 @@
# Set proxies. no_proxy is a comma-separated list of domains which are # Set proxies. no_proxy is a comma-separated list of domains which are
# local, axel won't use any proxy for them. You don't have to specify full # local, axel won't use any proxy for them. You don't have to specify full
# hostnames there. # hostnames there.
# Choose the IP protocol to use among IPv4 and IPv6. When a protocol is
# chosen, no connection attempt will be performed with the other. Possible
# value are "ipv4" or "ipv6". By default anyone will be used based on
# the address returned by the resolv library.
#
# use_protocol= ipv4
# #
# Note: If the HTTP_PROXY environment variable is set correctly already, # Note: If the HTTP_PROXY environment variable is set correctly already,
# you don't have to set it again here. The setting should be in the same # you don't have to set it again here. The setting should be in the same
...@@ -100,3 +113,11 @@ ...@@ -100,3 +113,11 @@
# a scp-alike interface. # a scp-alike interface.
# #
# alternate_output = 1 # alternate_output = 1
#
# Set this to 1 to avoid axel to download a file if one with the same name
# already exists in the current folder and no state file is found.
# Normally, axel will add .<number> to the name of the file in cases where
# that file already exists. With the no_clobber option, axel will skip
# downloading this file altogether.
#
# no_clobber = 1
.\" Text automatically generated by txt2man .\" Text automatically generated by txt2man
.TH axel 1 "02 August 2017" "axel-2.13" "light command line download accelerator" .TH axel 1 "10 September 2017" "axel-2.14" "light command line download accelerator"
.SH NAME .SH NAME
\fBaxel \fP- light command line download accelerator \fBaxel \fP- light command line download accelerator
\fB \fB
...@@ -42,6 +42,11 @@ bandwidth. ...@@ -42,6 +42,11 @@ bandwidth.
Specify an alternative number of connections. Specify an alternative number of connections.
.TP .TP
.B .B
\fB--max-redirect\fP=x
Specify an alternative number of redirections to follow when connecting to the
server (default is 20).
.TP
.B
\fB--output\fP=x, \fB-o\fP x \fB--output\fP=x, \fB-o\fP x
Downloaded data will be put in a local file with the same name, unless you specify Downloaded data will be put in a local file with the same name, unless you specify
a different name using this option. You can specify a directory as well, the program a different name using this option. You can specify a directory as well, the program
...@@ -56,6 +61,14 @@ time-consuming because the program tests every server's speed, and it checks ...@@ -56,6 +61,14 @@ time-consuming because the program tests every server's speed, and it checks
whether the file's still available. whether the file's still available.
.TP .TP
.B .B
\fB--ipv6\fP, \fB-6\fP
Use the IPv6 protocol only when connecting to the host.
.TP
.B
\fB--ipv4\fP, \fB-4\fP
Use the IPv4 protocol only when connecting to the host.
.TP
.B
\fB--no-proxy\fP, \fB-N\fP \fB--no-proxy\fP, \fB-N\fP
Do not use any proxy server to download the file. Not possible when a transparent proxy Do not use any proxy server to download the file. Not possible when a transparent proxy
is active somewhere, of course. is active somewhere, of course.
...@@ -64,6 +77,8 @@ is active somewhere, of course. ...@@ -64,6 +77,8 @@ is active somewhere, of course.
\fB--insecure\fP, \fB-k\fP \fB--insecure\fP, \fB-k\fP
Do not verify the SSL certificate. Only use this if you are getting certificate errors Do not verify the SSL certificate. Only use this if you are getting certificate errors
and you are sure of the sites authenticity. and you are sure of the sites authenticity.
.PP
\fB--no-clobber\fP, \fB-c\fP Skip download if a file with the same name already exists in the current folder and no state file is found.
.TP .TP
.B .B
\fB--verbose\fP, \fB-v\fP \fB--verbose\fP, \fB-v\fP
...@@ -107,7 +122,7 @@ The trivial usage to download a file is similar to: ...@@ -107,7 +122,7 @@ The trivial usage to download a file is similar to:
.PP .PP
.nf .nf
.fam C .fam C
$ axel http://cdimage.debian.org/debian-cd/8.4.0/amd64/iso-cd/debian-8.4.0-amd64-netinst.iso $ axel http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.1.0-amd64-netinst.iso
$ axel ftp://ftp.nl.kernel.org/pub/linux/kernel/v2.2/linux-2.2.20.tar.bz2 $ axel ftp://ftp.nl.kernel.org/pub/linux/kernel/v2.2/linux-2.2.20.tar.bz2
...@@ -148,7 +163,7 @@ example file is at doc/ directory. On Debian systems, it is at /usr/share/doc/\f ...@@ -148,7 +163,7 @@ example file is at doc/ directory. On Debian systems, it is at /usr/share/doc/\f
.SH COPYRIGHT .SH COPYRIGHT
Axel was originally written by Wilmer van der Gaast and other authors over time. Please, see the AUTHORS and CREDITS files. Axel was originally written by Wilmer van der Gaast and other authors over time. Please, see the AUTHORS and CREDITS files.
.PP .PP
The current Axel homepage (since 2015) is https://github.com/eribertomota/\fBaxel\fP The current Axel homepage (since 2015) is https://github.com/\fBaxel\fP-download-accelerator/\fBaxel\fP
.SH HELP THIS PROJECT .SH HELP THIS PROJECT
If you intent to help, please, read the CONTRIBUTING.md file. On Debian systems, this file will be available at If you intent to help, please, read the CONTRIBUTING.md file. On Debian systems, this file will be available at
/usr/share/doc/\fBaxel\fP/ directory. /usr/share/doc/\fBaxel\fP/ directory.
...@@ -30,6 +30,9 @@ OPTIONS ...@@ -30,6 +30,9 @@ OPTIONS
--num-connections=x, -n x Specify an alternative number of connections. --num-connections=x, -n x Specify an alternative number of connections.
--max-redirect=x Specify an alternative number of redirections to follow when connecting to the
server (default is 20).
--output=x, -o x Downloaded data will be put in a local file with the same name, unless you specify --output=x, -o x Downloaded data will be put in a local file with the same name, unless you specify
a different name using this option. You can specify a directory as well, the program a different name using this option. You can specify a directory as well, the program
will append the filename. will append the filename.
...@@ -40,12 +43,18 @@ OPTIONS ...@@ -40,12 +43,18 @@ OPTIONS
time-consuming because the program tests every server's speed, and it checks time-consuming because the program tests every server's speed, and it checks
whether the file's still available. whether the file's still available.
--ipv6, -6 Use the IPv6 protocol only when connecting to the host.
--ipv4, -4 Use the IPv4 protocol only when connecting to the host.
--no-proxy, -N Do not use any proxy server to download the file. Not possible when a transparent proxy --no-proxy, -N Do not use any proxy server to download the file. Not possible when a transparent proxy
is active somewhere, of course. is active somewhere, of course.
--insecure, -k Do not verify the SSL certificate. Only use this if you are getting certificate errors --insecure, -k Do not verify the SSL certificate. Only use this if you are getting certificate errors
and you are sure of the sites authenticity. and you are sure of the sites authenticity.
--no-clobber, -c Skip download if a file with the same name already exists in the current folder and no state file is found.
--verbose, -v Show more status messages. Use it more than once to see more details. --verbose, -v Show more status messages. Use it more than once to see more details.
--quiet, -q No output to stdout. --quiet, -q No output to stdout.
...@@ -75,7 +84,7 @@ RETURN VALUE ...@@ -75,7 +84,7 @@ RETURN VALUE
EXAMPLES EXAMPLES
The trivial usage to download a file is similar to: The trivial usage to download a file is similar to:
$ axel http://cdimage.debian.org/debian-cd/8.4.0/amd64/iso-cd/debian-8.4.0-amd64-netinst.iso $ axel http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.1.0-amd64-netinst.iso
$ axel ftp://ftp.nl.kernel.org/pub/linux/kernel/v2.2/linux-2.2.20.tar.bz2 $ axel ftp://ftp.nl.kernel.org/pub/linux/kernel/v2.2/linux-2.2.20.tar.bz2
...@@ -102,7 +111,7 @@ FILES ...@@ -102,7 +111,7 @@ FILES
COPYRIGHT COPYRIGHT
Axel was originally written by Wilmer van der Gaast and other authors over time. Please, see the AUTHORS and CREDITS files. Axel was originally written by Wilmer van der Gaast and other authors over time. Please, see the AUTHORS and CREDITS files.
The current Axel homepage (since 2015) is https://github.com/eribertomota/axel The current Axel homepage (since 2015) is https://github.com/axel-download-accelerator/axel
HELP THIS PROJECT HELP THIS PROJECT
If you intent to help, please, read the CONTRIBUTING.md file. On Debian systems, this file will be available at If you intent to help, please, read the CONTRIBUTING.md file. On Debian systems, this file will be available at
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
# Copyright 2016-2017 Joao Eriberto Mota Filho <eriberto@eriberto.pro.br> # Copyright 2016-2017 Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
# This file is under BSD-3-Clause # This file is under BSD-3-Clause
P_DATE="02 August 2017" P_DATE="10 September 2017"
P_NAME=axel P_NAME=axel
P_VERSION=2.13 P_VERSION=2.14
P_MANLEVEL=1 P_MANLEVEL=1
P_DESCRIPT="light command line download accelerator" P_DESCRIPT="light command line download accelerator"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -2,3 +2,4 @@ bin_PROGRAMS = axel ...@@ -2,3 +2,4 @@ bin_PROGRAMS = axel
axel_SOURCES = axel.c conf.c conn.c ftp.c http.c search.c ssl.c tcp.c text.c axel_SOURCES = axel.c conf.c conn.c ftp.c http.c search.c ssl.c tcp.c text.c
AM_CPPFLAGS = -DLOCALEDIR=\""$(localedir)"\" AM_CPPFLAGS = -DLOCALEDIR=\""$(localedir)"\"
AM_CPPFLAGS += -D_BSD_SOURCE -D_DEFAULT_SOURCE
This diff is collapsed.
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
Copyright 2008-2009 Philipp Hagemeister Copyright 2008-2009 Philipp Hagemeister
Copyright 2015-2017 Joao Eriberto Mota Filho Copyright 2015-2017 Joao Eriberto Mota Filho
Copyright 2016 Stephen Thirlwall Copyright 2016 Stephen Thirlwall
Copyright 2017 Antonio Quartulli
Copyright 2017 Ismael Luceno Copyright 2017 Ismael Luceno
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
...@@ -39,6 +40,9 @@ ...@@ -39,6 +40,9 @@
/* Main include file */ /* Main include file */
#ifndef AXEL_AXEL_H
#define AXEL_AXEL_H
#include "config.h" #include "config.h"
#include <time.h> #include <time.h>
...@@ -57,6 +61,7 @@ ...@@ -57,6 +61,7 @@
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdbool.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/time.h> #include <sys/time.h>
#include <sys/types.h> #include <sys/types.h>
...@@ -68,7 +73,9 @@ ...@@ -68,7 +73,9 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <net/if.h> #include <net/if.h>
#include <pthread.h> #include <pthread.h>
#ifdef HAVE_SSL
#include <openssl/ssl.h> #include <openssl/ssl.h>
#endif
/* Internationalization */ /* Internationalization */
#define PACKAGE "axel" #define PACKAGE "axel"
...@@ -79,9 +86,8 @@ ...@@ -79,9 +86,8 @@
/* Compiled-in settings */ /* Compiled-in settings */
#define MAX_STRING 1024 #define MAX_STRING 1024
#define MAX_ADD_HEADERS 10 #define MAX_ADD_HEADERS 10
#define MAX_REDIR 5 #define MAX_REDIRECT 20
#define AXEL_VERSION_STRING "2.13.1" #define DEFAULT_USER_AGENT "Axel " VERSION " (" ARCH ")"
#define DEFAULT_USER_AGENT "Axel " AXEL_VERSION_STRING " (" ARCH ")"
typedef struct typedef struct
{ {
...@@ -106,13 +112,13 @@ typedef message_t if_t; ...@@ -106,13 +112,13 @@ typedef message_t if_t;
typedef struct typedef struct
{ {
conn_t *conn; conn_t *conn;
conf_t conf[1]; conf_t *conf;
char filename[MAX_STRING]; char filename[MAX_STRING];
double start_time; double start_time;
int next_state, finish_time; int next_state, finish_time;
long long bytes_done, start_byte, size; long long bytes_done, start_byte, size;
int bytes_per_second; int bytes_per_second;
int delay_time; struct timespec delay_time;
int outfd; int outfd;
int ready; int ready;
message_t *message, *last_message; message_t *message, *last_message;
...@@ -127,3 +133,12 @@ void axel_close( axel_t *axel ); ...@@ -127,3 +133,12 @@ void axel_close( axel_t *axel );
void print_messages( axel_t *axel ); void print_messages( axel_t *axel );