Import Upstream version 2.15

parent 5194b0b9
aclocal.m4
autom4te.cache/
axel-*.tar.gz
compile
config.*
configure
depcomp
install-sh
m4/
/autom4te.cache/
/m4/
/po/Makefile.in.in
/po/Makevars.template
/po/POTFILES
/po/Rules-quot
/po/axel.pot
/po/remove-potcdate.sed
/po/stamp-po
/src/axel
/aclocal.m4
/compile
/config.*
/configure
/depcomp
/install-sh
/missing
/stamp-h1
.deps/
Makefile
!/man/Makefile
Makefile.in
missing
po/*.gmo
po/axel.pot
po/Makefile
po/Makefile.in.in
po/Makevars.template
po/POTFILES
po/remove-potcdate.sed
po/Rules-quot
po/stamp-po
src/*.o
src/.deps
src/axel
src/Makefile.in
stamp-h1
TAGS
*.gmo
*.o
*.tar.*
.#*
.*.swp
\#*#*
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"
cache:
ccache: true
directories:
- autom4te.cache
- m4
addons:
apt:
......@@ -33,22 +16,43 @@ addons:
- libssl-dev
- clang
cache:
ccache: true
env:
global:
- G_CFLAGS="-O3 -fPIC -Werror"
- MAKEFLAGS="-j4"
- target=distcheck
matrix:
- CONF_FLAGS="--without-ssl"
- CONF_FLAGS="--with-ssl"
os:
- linux
- osx
compiler:
- gcc
- clang
matrix:
exclude:
- os: osx
compiler: gcc
before_install:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update ; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew install gettext openssl; fi
install:
- if [ "$TRAVIS_OS_NAME" = osx ]; then
HOMEBREW_NO_AUTO_UPDATE=1
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
- if [ "${TRAVIS_OS_NAME}" = osx ]; then
target=all
GETTEXT="/usr/local/opt/gettext"
OPENSSL="/usr/local/opt/openssl";
export LIBRARY_PATH="$GETTEXT/lib"
CPATH="$OPENSSL/include:$GETTEXT/include"
PATH="$GETTEXT/bin:$PATH";
fi
- autoreconf -i &&
./configure $CONF_FLAGS CFLAGS="$G_CFLAGS" &&
make DIST_TARGETS=dist-gzip GZIP_ENV=--fast $target
2.15 version:
- Changes in source code by:
* Antonio Quartulli <a@unstable.cc>
* Ismael Luceno <ismael@iodev.co.uk>
- Translations:
* Nicol Dalla Longa <nicol.dallalonga@gmail.com>
Italian translation
* Casa Taloyum <casatwy@msn.com>
Added some missing Simplified Chinese translation strings
* Mahyuddin <yudi.al@gmail.com>
Indonesian translation
Read the ChangeLog to see the changes.
2.14.1 version:
- Changes is souce code by:
- Changes in source code by:
* Antonio Quartulli <a@unstable.cc>
* Ismael Luceno <ismael@iodev.co.uk>
......@@ -10,7 +28,7 @@
2.14 version:
- Changes is souce code by:
- Changes in source code by:
* Antonio Quartulli <a@unstable.cc>
* Ismael Luceno <ismael@iodev.co.uk>
......
Version: 2.15, 2017-10-11
[ Antonio Quartulli ]
* Added a 65K limit on the number of connections
* Fixed progress report when total size isn't available
* Fixed size sanity check in HTTP Resp Header
* Fixes to the usage/help text
* Lots of security bugfixes
* Made dependency on axel->conn in axel_close() explicit
* Respect file size even when range request is not supported
* Return error if socket can't be created
[ Casa Taloyum ]
* Added some missing Simplified Chinese translation strings
[ Ismael Luceno ]
* Added "Accept" HTTP header to the requests, required by some sites
* Code cleanups and small bugfixes
* Fixed User-Agent, now it's "Axel/{VERSION} ({ARCH})"
* Fixed a race condition in the speed testing code
* Implemented connection and I/O timeouts
* Improvements to the buildsystem and scripts
* Updates to the documentation
[ Mahyuddin ]
* Indonesian translation
[Nicol Dalla Longa]
* Italian translation
Version 2.14.1, 2017-09-16
[ Antonio Quartulli ]
......
AUTOMAKE_OPTIONS = dist-bzip2 dist-xz
# XXX Fix disagreement between aclocal and make
# (aclocal doesn't update based on mtime)
ACLOCAL = touch $@; @ACLOCAL@
SUBDIRS = src po
man_MANS = man/axel.1
dist_man_MANS = man/axel.1
.txt.1:
$(MAKE) -C $(@D) $(@F)
EXTRA_DIST = \
CONTRIBUTING.md \
CREDITS \
doc/axelrc.example \
man/axel.txt \
man/Makefile
distclean-local:
-rm -rf autom4te.cache/ \
......@@ -23,3 +38,29 @@ distclean-local:
po/axel.pot \
po/stamp-po \
src/Makefile.in
remove_git_dep = sed -i -e \
'/^am__aclocal/,/[^\\]$$/ s:[$$](top_srcdir)/[.]git/[^ ]* *::g'
dist-hook:
rm -rf $(distdir)/.git
read _ RELDATE _ < $(top_srcdir)/VERSION; \
TZ= find $(distdir) \
-name Makefile.in -exec $(remove_git_dep) '{}' ';' \
-exec touch -d "$$RELDATE" '{}' + \
-o -exec touch -d "$$RELDATE" '{}' +
MSG = echo '==>'
ERR = ! echo '!!! ERROR:'
.PHONY: relcheck
relcheck:
@$(MSG) 'Checking for non-UTF8 translations...'
@$(AWK) -f $(top_srcdir)/scripts/pocheck.awk $(top_srcdir)/po/*.po
@$(MSG) 'Checking the state of the project...'
@ m=`git status --porcelain=1 | wc -l`; \
test "$$m" = 0 \
&& $(MSG) 'the working tree is clean' \
|| $(ERR) "$$m" 'modified files in the working tree'
@test -f "$(top_srcdir)/.git/refs/tags/v$(VERSION)" \
&& $(MSG) 'v$(VERSION) tag found' \
|| $(ERR) 'v$(VERSION) tag missing'
@$(MSG) Everything OK
......@@ -54,7 +54,7 @@ Run `./autogen.sh` to create the configure script, then proceed with the
instructions in [INSTALL](INSTALL). The basic actions for most users,
after ./autogen.sh, is running ./configure, make and make install.
To build without SSL/TLS support, use ./configure --without-openssl
To build without SSL/TLS support, use ./configure --without-ssl
## 4. Install on macOS with Homebrew ##
......
2.15 2017-10-11T00:35:09Z
# TODO: we need a true replacement for AC_INIT...
# _AXEL_READL(FILE, HARD-DEP?)
# ---------------------------------------------------------------------
m4_define([_AXEL_READL],
[m4_bpatsubst(m4_quote(m4_if([$2],,
[m4_sinclude([$1])],
[m4_apply([m4_include], [[$1]])])), [ *
])])
# _AXEL_GIT_HEAD
# ---------------------------------------------------------------------
m4_define([_AXEL_GIT_HEAD],
[m4_define([__HEAD], m4_quote(_AXEL_READL([.git/HEAD])))dnl
m4_if(m4_substr(m4_quote(__HEAD), 0, 4), [ref:],
[m4_quote(_AXEL_READL([.git/]m4_bpatsubst(__HEAD, [^ref: *])))],
[m4_quote(__HEAD)])[]dnl
m4_undefine([__HEAD])dnl
])
# _AXEL_GIT_TAG(TAG)
# ---------------------------------------------------------------------
m4_define([_AXEL_GIT_TAG],
[m4_quote(_AXEL_READL([.git/refs/tags/$1]))])
# AXEL_VER_READ(FILE)
# ---------------------------------------------------------------------
AC_DEFUN_ONCE([AXEL_VER_READ],
[_AC_INIT_LITERAL([$1])
m4_define([_AXEL_VERSION], m4_quote(m4_bpatsubst(m4_quote(_AXEL_READL([$1],1)), [ .*])))
m4_define([_AXEL_COMMIT], m4_quote(_AXEL_GIT_HEAD))
m4_define([_AXEL_VERSUF],
[m4_if(m4_quote(_AXEL_COMMIT),,,
[m4_if(m4_quote(_AXEL_COMMIT), m4_quote(_AXEL_GIT_TAG([v]_AXEL_VERSION)),,
[[+g]m4_quote(m4_substr(_AXEL_COMMIT, 0, 6))])])])
m4_define([AC_PACKAGE_STRING], m4_quote(AC_PACKAGE_NAME AC_PACKAGE_VERSION))
m4_define([AC_PACKAGE_VERSION], m4_quote(_AXEL_VERSION[]_AXEL_VERSUF))
])
# AXEL_PKG(PACKAGE-NAME, BUG-REPORT, [TAR-NAME])
# ---------------------------------------------------------------------
AC_DEFUN_ONCE([AXEL_PKG],
[_AC_INIT_LITERAL([$1])
_AC_INIT_LITERAL([$2])
AC_BEFORE([AXEL_VER_READ])
m4_define([AC_PACKAGE_NAME], [$1])
m4_define([AC_PACKAGE_TARNAME],
m4_default([$3], [m4_bpatsubst(m4_tolower([$1]),
[[^_abcdefghijklmnopqrstuvwxyz0123456789]],
[-])]))
m4_define([AC_PACKAGE_BUGREPORT], [$2])
])
......@@ -7,12 +7,18 @@
# This file is under same license of Axel
AC_PREREQ([2.69])
AC_INIT([axel], [2.14.1], [https://github.com/axel-download-accelerator/axel/issues])
AXEL_PKG([axel], [https://github.com/axel-download-accelerator/axel/issues])
AXEL_VER_READ([VERSION])
AC_INIT
AC_CONFIG_SRCDIR([src/conf.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE
AM_SILENT_RULES([yes])
# Checks for programs.
AC_PROG_CC
AC_PROG_CC_C99
......@@ -20,11 +26,6 @@ if test "x$ac_cv_prog_cc_c99" = "xno"; then
AC_MSG_ERROR([C99 compiler required])
fi
AC_CHECK_PROGS([GETTEXT], [gettext], "no")
if test "x$GETTEXT" = "xno"; then
AC_MSG_ERROR([axel requires gettext])
fi
# Checks for libraries.
# Checks for header files.
......
When updating, change these files (if needed):
- VERSION [0]
- ChangeLog [1]
- AUTHORS
- ChangeLog (**)
- CREDITS
- configure.ac (VERSION)
- manpage version and date
- src/text.c (years in Copyright lines near EOF)
- run: make man/axel.1
- run: make -C po update-po
When done:
- run: make relcheck
- run: make distcheck
- test Debian packaging
- make a pull-request
-> run 'make update-po' in po/ to update the .po files.
(**) $ git shortlog -w80,0 --format='* %s' 2.13.1..v2.14
[0] $ scripts/mknextver
[1] $ scripts/mkchangelog
P_DESC = "light command line download accelerator"
.SUFFIXES: .txt .1
.txt.1:
read P_VERSION P_DATE _ < ../VERSION && \
tmp=$$(mktemp tmpXXXXXX) && \
> "$$tmp" \
txt2man -d "$$(date -d"$$P_DATE" '+%B %_d, %Y')" \
-t "$(<:.txt=)" -r "$(<:.txt=)-$$P_VERSION" -s 1 \
-v $(P_DESC) $< && \
mv "$$tmp" $@ || { rm -f "$$tmp"; exit 1; }
.\" Text automatically generated by txt2man
.TH axel 1 "10 September 2017" "axel-2.14" "light command line download accelerator"
.TH axel 1 "October 9, 2017" "axel-2.15" "light command line download accelerator"
.SH NAME
\fBaxel \fP- light command line download accelerator
\fB
......@@ -16,8 +16,8 @@
Axel is a program that downloads a file from a FTP or HTTP server through multiple connection.
Each connection downloads its own part of the file.
.PP
Unlike most other programs, Axel downloads all the data directly to the destination file, using
one single thread. It just saves some time at the end because the program does not have to
Unlike most other programs, Axel downloads all the data directly to the destination file.
It saves some time at the end because the program does not have to
concatenate all the downloaded parts.
.PP
Axel supports HTTP, HTTPS, FTP and FTPS protocols.
......@@ -109,6 +109,10 @@ this parameter. The default value will include "Axel", its version and the platf
A brief summary of all the options.
.TP
.B
\fB--timeout\fP=x, \fB-T\fP x
Set I/O and connection timeout
.TP
.B
\fB--version\fP, \fB-V\fP
Get version information.
.SH NOTE
......@@ -138,8 +142,7 @@ kernel image.
.fam T
.fi
This will do a search for the linux-2.4.17.tar.bz2 file on filesearching.com and it'll use the four (if possible)
fastest mirrors for the download (possibly including ftp.kernel.org). Of course, the commands are a single
line, but they're too long to fit on one line in this page.
fastest mirrors for the download (possibly including ftp.kernel.org).
.PP
.nf
.fam C
......@@ -159,11 +162,12 @@ Personal configuration file.
.PP
These files are not documented in a manpage, but the example file which comes with the program contains
enough information. The position of the system-wide configuration file might be different. In source code this
example file is at doc/ directory. On Debian systems, it is at /usr/share/doc/\fBaxel\fP/examples/ directory.
example file is at doc/ directory. It's generally installed under /usr/share/doc/\fBaxel\fP/examples/, or the
equivalent for your system.
.SH COPYRIGHT
Axel was originally written by Wilmer van der Gaast and other authors over time. Please, see the AUTHORS and CREDITS files.
.PP
The current Axel homepage (since 2015) is https://github.com/\fBaxel\fP-download-accelerator/\fBaxel\fP
The project homepage is <https://github.com/\fBaxel\fP-download-accelerator/\fBaxel\fP>
.SH HELP THIS PROJECT
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.
......@@ -8,8 +8,8 @@ DESCRIPTION
Axel is a program that downloads a file from a FTP or HTTP server through multiple connection.
Each connection downloads its own part of the file.
Unlike most other programs, Axel downloads all the data directly to the destination file, using
one single thread. It just saves some time at the end because the program does not have to
Unlike most other programs, Axel downloads all the data directly to the destination file.
It saves some time at the end because the program does not have to
concatenate all the downloaded parts.
Axel supports HTTP, HTTPS, FTP and FTPS protocols.
......@@ -71,6 +71,8 @@ OPTIONS
--help, -h A brief summary of all the options.
--timeout=x, -T x Set I/O and connection timeout
--version, -V Get version information.
NOTE
......@@ -94,8 +96,7 @@ EXAMPLES
$ axel ftp://ftp.{be,nl,uk,de}.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
This will do a search for the linux-2.4.17.tar.bz2 file on filesearching.com and it'll use the four (if possible)
fastest mirrors for the download (possibly including ftp.kernel.org). Of course, the commands are a single
line, but they're too long to fit on one line in this page.
fastest mirrors for the download (possibly including ftp.kernel.org).
$ axel -S4 ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
......@@ -106,12 +107,13 @@ FILES
These files are not documented in a manpage, but the example file which comes with the program contains
enough information. The position of the system-wide configuration file might be different. In source code this
example file is at doc/ directory. On Debian systems, it is at /usr/share/doc/axel/examples/ directory.
example file is at doc/ directory. It's generally installed under /usr/share/doc/axel/examples/, or the
equivalent for your system.
COPYRIGHT
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/axel-download-accelerator/axel
The project homepage is <https://github.com/axel-download-accelerator/axel>
HELP THIS PROJECT
If you intent to help, please, read the CONTRIBUTING.md file. On Debian systems, this file will be available at
......
#!/bin/bash
# Generate the manpage
# Copyright 2016-2017 Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
# This file is under BSD-3-Clause
P_DATE="10 September 2017"
P_NAME=axel
P_VERSION=2.14
P_MANLEVEL=1
P_DESCRIPT="light command line download accelerator"
TEST=$(txt2man -h 2> /dev/null)
[ ! "$TEST" ] && { echo "ERROR: You need install txt2man program."; exit 1; }
[ -e $P_NAME.txt ] || { echo "ERROR: $P_NAME.txt not found."; exit 1; }
txt2man -d "$P_DATE" -t $P_NAME -r $P_NAME-$P_VERSION -s $P_MANLEVEL -v "$P_DESCRIPT" $P_NAME.txt > $P_NAME.$P_MANLEVEL
de ja nl pt_BR ru zh_CN
de id_ID it ja nl pt_BR ru zh_CN
......@@ -8,7 +8,7 @@ subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --omit-header
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -5,18 +5,18 @@ get_ver() {
git describe --abbrev=0 --tags --match 'v*' "$@"
}
if [ "$1" = -h -o $# = 0 ]; then
if [ "$1" = -h ]; then
cat >/dev/stderr <<-!
Usage: $0 version [commit]
Usage: $0 [commit]
!
exit 1
exit 0
fi
set -- "$@" HEAD
prev="$(get_ver "$2")"
prev="$(get_ver "$1")"
git shortlog --format='* %s' -w80,0 "$prev".."$2" |
git shortlog --format='* %s' -w80,0 "$prev".."$1" |
awk '
!/^\*/ && /:$/ {
$NF=""
......@@ -27,9 +27,12 @@ awk '
print author, ">", $0
}
' | sort |
awk -vver="$1" -F' > ' '
awk '
BEGIN {
printf "Version: %s, %s\n", ver, strftime("%Y-%m-%d")
getline < "VERSION"
sub(/T.*/, "", $2)
printf "Version: %s, %s\n", $1, $2
FS=" > "
}
END {
print "\n\n"
......
#!/bin/sh
if [ $# = 0 ]; then
set -- "$(awk -F'[^0-9]' '{print $1"."$2+1}' VERSION)"
fi
echo "${1#v} $(date -u '+%Y-%m-%dT%H:%M:%SZ')"
END { exit broken }
BEGIN { OFS=":" }
/^$/ || /^"Content-Type:/ {
if (!/charset=(UTF|utf)-8/) {
print FILENAME, FNR, $0
++broken
}
nextfile
}
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 \
axel.h \
conf.c \
conf.h \
conn.c \
conn.h \
ftp.c \
ftp.h \
http.c \
http.h \
search.c \
search.h \
ssl.c \
ssl.h \
tcp.c \
tcp.h \
text.c
AM_CPPFLAGS = -DLOCALEDIR=\""$(localedir)"\"
AM_CPPFLAGS += -D_BSD_SOURCE -D_DEFAULT_SOURCE
This diff is collapsed.
......@@ -79,7 +79,7 @@
/* Internationalization */
#define PACKAGE "axel"
#define _( x ) gettext( x )
#define _(x) gettext(x)
#include <libintl.h>
#include <locale.h>
......@@ -87,10 +87,10 @@
#define MAX_STRING 1024
#define MAX_ADD_HEADERS 10
#define MAX_REDIRECT 20
#define DEFAULT_USER_AGENT "Axel " VERSION " (" ARCH ")"
#define DEFAULT_IO_TIMEOUT 120
#define DEFAULT_USER_AGENT "Axel/" VERSION " (" ARCH ")"
typedef struct
{
typedef struct {
void *next;
char text[MAX_STRING];
} message_t;
......@@ -106,11 +106,10 @@ typedef message_t if_t;
#include "ssl.h"
#include "search.h"
#define min( a, b ) ( (a) < (b) ? (a) : (b) )
#define max( a, b ) ( (a) > (b) ? (a) : (b) )
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
typedef struct
{
typedef struct {
conn_t *conn;
conf_t *conf;
char filename[MAX_STRING];
......@@ -125,20 +124,21 @@ typedef struct
url_t *url;
} axel_t;
axel_t *axel_new( conf_t *conf, int count, const void *url );
int axel_open( axel_t *axel );
void axel_start( axel_t *axel );
void axel_do( axel_t *axel );
void axel_close( axel_t *axel );
void print_messages( axel_t *axel );
axel_t *axel_new(conf_t *conf, int count, const void *url);
int axel_open(axel_t *axel);
void axel_start(axel_t *axel);
void axel_do(axel_t *axel);
void axel_close(axel_t *axel);
void print_messages(axel_t *axel);
double gettime();
static inline int axel_nanosleep( struct timespec delay )
static inline int
axel_nanosleep(struct timespec delay)
{
int res;
while( ( res = nanosleep( &delay, &delay ) ) && errno == EINTR );
while ((res = nanosleep(&delay, &delay)) && errno == EINTR) ;
return res;
}
#endif /* AXEL_AXEL_H */
#endif /* AXEL_AXEL_H */
This diff is collapsed.
......@@ -42,16 +42,15 @@
#ifndef AXEL_CONF_H
#define AXEL_CONF_H
typedef struct
{
typedef struct {
char default_filename[MAX_STRING];
char http_proxy[MAX_STRING];
char no_proxy[MAX_STRING];
uint16_t num_connections;
int strip_cgi_parameters;
int save_state_interval;
int connection_timeout;
int reconnect_delay;
int num_connections;
int max_redirect;
int buffer_size;
int max_speed;
......@@ -69,14 +68,16 @@ typedef struct
int search_amount;
int search_top;
unsigned io_timeout;
int add_header_count;
char add_header[MAX_ADD_HEADERS][MAX_STRING];
char user_agent[MAX_STRING];
} conf_t;
int conf_loadfile( conf_t *conf, char *file );
int conf_init( conf_t *conf );
void conf_free( conf_t *conf );
int conf_loadfile(conf_t *conf, char *file);
int conf_init(conf_t *conf);
void conf_free(conf_t *conf);
#endif /* AXEL_CONF_H */
#endif /* AXEL_CONF_H */
This diff is collapsed.
......@@ -42,8 +42,8 @@
#ifndef AXEL_CONN_H
#define AXEL_CONN_H
#define PROTO_SECURE_MASK (1<<0) /* bit 0 - 0 = insecure, 1 = secure */
#define PROTO_PROTO_MASK (1<<1) /* bit 1 = 0 = ftp, 1 = http */
#define PROTO_SECURE_MASK (1<<0) /* bit 0 - 0 = insecure, 1 = secure */
#define PROTO_PROTO_MASK (1<<1) /* bit 1 = 0 = ftp, 1 = http */
#define PROTO_INSECURE (0<<0)
#define PROTO_SECURE (1<<0)
......@@ -70,8 +70,7 @@
#define PROTO_DEFAULT PROTO_HTTP
#define PROTO_DEFAULT_PORT PROTO_HTTP_PORT
typedef struct
{
typedef struct {
conf_t *conf;
int proto;
......@@ -86,7 +85,7 @@ typedef struct