Import Upstream version 2.4

parent 2a6925b8
Version 2.4
- Fix a buffer overflow caused by wrong size limits when copying strings (Closes: #311569), thanks Michael Schwendt and the Fedora project members
- Fix thread hangups due to incorrect synchronization (Closes: #311469), thanks Yao Shi
- Removed Fedora packaging file. axel will be available in the Fedora repositories soon.
- Use /etc/ instead of /usr/etc/ as the default system-wide configuration location.
- Respect environment CFLAGS in configure.
- Allow special characters in arguments to configure.
- Add MimeType and fix Categories in the desktop file.
Version 2.3 Version 2.3
- Wait for thread termination in axel.c:axel_do (Closes: #311255), thanks John Ripa - Wait for thread termination in axel.c:axel_do (Closes: #311255), thanks John Ripa
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
.SUFFIXES: .po .mo .SUFFIXES: .po .mo
# Add your translation here.. # Add your translation here..
MOFILES = nl.mo de.mo ru.mo zh_cn.mo MOFILES = nl.mo de.mo ru.mo zh_CN.mo
all: $(OUTFILE) all: $(OUTFILE)
...@@ -68,7 +68,7 @@ uninstall-bin: ...@@ -68,7 +68,7 @@ uninstall-bin:
tar: tar:
version=$$(sed -n 's/#define AXEL_VERSION_STRING[ \t]*"\([^"]*\)"/\1/p' < axel.h) && \ version=$$(sed -n 's/#define AXEL_VERSION_STRING[ \t]*"\([^"]*\)"/\1/p' < axel.h) && \
tar --create --transform "s#^#axel-$${version}/#" "--file=axel-$${version}.tar" --exclude-vcs -- *.c *.h *.po *.1 configure Makefile axelrc.example axel.spec gui API CHANGES COPYING CREDITS README && \ tar --create --transform "s#^#axel-$${version}/#" "--file=axel-$${version}.tar" --exclude-vcs -- *.c *.h *.po *.1 configure Makefile axelrc.example gui API CHANGES COPYING CREDITS README && \
gzip --best < "axel-$${version}.tar" > "axel-$${version}.tar.gz" && \ gzip --best < "axel-$${version}.tar" > "axel-$${version}.tar.gz" && \
bzip2 --best < "axel-$${version}.tar" > "axel-$${version}.tar.bz2" bzip2 --best < "axel-$${version}.tar" > "axel-$${version}.tar.bz2"
......
...@@ -129,7 +129,8 @@ one line in this page.) ...@@ -129,7 +129,8 @@ one line in this page.)
.SH FILES .SH FILES
.PP .PP
\fI/etc/axelrc\fP System-wide configuration file \fI/etc/axelrc\fP System-wide configuration file. Note that development versions
place this file in /usr/local/etc.
.PP .PP
\fI~/.axelrc\fP Personal configuration file \fI~/.axelrc\fP Personal configuration file
.PP .PP
......
...@@ -238,8 +238,12 @@ void axel_start( axel_t *axel ) ...@@ -238,8 +238,12 @@ void axel_start( axel_t *axel )
if( axel->conn[i].currentbyte <= axel->conn[i].lastbyte ) if( axel->conn[i].currentbyte <= axel->conn[i].lastbyte )
{ {
if( axel->conf->verbose >= 2 ) if( axel->conf->verbose >= 2 )
{
axel_message( axel, _("Connection %i downloading from %s:%i using interface %s"), axel_message( axel, _("Connection %i downloading from %s:%i using interface %s"),
i, axel->conn[i].host, axel->conn[i].port, axel->conn[i].local_if ); i, axel->conn[i].host, axel->conn[i].port, axel->conn[i].local_if );
}
axel->conn[i].state = 1;
if( pthread_create( axel->conn[i].setup_thread, NULL, setup_thread, &axel->conn[i] ) != 0 ) if( pthread_create( axel->conn[i].setup_thread, NULL, setup_thread, &axel->conn[i] ) != 0 )
{ {
axel_message( axel, _("pthread error!!!") ); axel_message( axel, _("pthread error!!!") );
...@@ -248,7 +252,6 @@ void axel_start( axel_t *axel ) ...@@ -248,7 +252,6 @@ void axel_start( axel_t *axel )
else else
{ {
axel->conn[i].last_transfer = gettime(); axel->conn[i].last_transfer = gettime();
axel->conn[i].state = 1;
} }
} }
...@@ -397,9 +400,10 @@ conn_check: ...@@ -397,9 +400,10 @@ conn_check:
if( axel->conf->verbose >= 2 ) if( axel->conf->verbose >= 2 )
axel_message( axel, _("Connection %i downloading from %s:%i using interface %s"), axel_message( axel, _("Connection %i downloading from %s:%i using interface %s"),
i, axel->conn[i].host, axel->conn[i].port, axel->conn[i].local_if ); i, axel->conn[i].host, axel->conn[i].port, axel->conn[i].local_if );
axel->conn[i].state = 1;
if( pthread_create( axel->conn[i].setup_thread, NULL, setup_thread, &axel->conn[i] ) == 0 ) if( pthread_create( axel->conn[i].setup_thread, NULL, setup_thread, &axel->conn[i] ) == 0 )
{ {
axel->conn[i].state = 1;
axel->conn[i].last_transfer = gettime(); axel->conn[i].last_transfer = gettime();
} }
else else
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
#define MAX_STRING 1024 #define MAX_STRING 1024
#define MAX_ADD_HEADERS 10 #define MAX_ADD_HEADERS 10
#define MAX_REDIR 5 #define MAX_REDIR 5
#define AXEL_VERSION_STRING "2.3" #define AXEL_VERSION_STRING "2.4"
#define DEFAULT_USER_AGENT "Axel " AXEL_VERSION_STRING " (" ARCH ")" #define DEFAULT_USER_AGENT "Axel " AXEL_VERSION_STRING " (" ARCH ")"
typedef struct typedef struct
......
# note: version 2.0 is in devel, version 1.1 is stable
%define build_stable_version 0
%if %{build_stable_version}
%define ver 1.1
%define build_number 1
%else
%define ver 2.0
%define build_number 0.1
%define snapshot .20080705
%define source_folder axel-svn-trunk
%endif
Name: axel
Version: %{ver}
Release: %{build_number}%{?snapshot}%{?dist}
Summary: A lightweight download accelerator by using multiple connections
Group: Applications/Internet
License: GPLv2
URL: http://axel.alioth.debian.org
Source0: http://download.alioth.debian.org/axel/axel/%{ver}/axel-%{ver}%{?snapshot}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
#BuildRequires:
#Requires:
%description
Axel tries to accelerate HTTP/FTP downloading process by using multiple
connections for one file. It can use multiple mirrors for a download. Axel has
no dependencies and is lightweight, so it might be useful as a wget clone on
byte-critical systems.
%prep
%setup -q %{?source_folder:-n %{source_folder}}
%build
%configure --etcdir=%{_sysconfdir} --i18n=1
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc API CHANGES COPYING CREDITS README
%{_bindir}/axel
%config(noreplace) %{_sysconfdir}/axelrc
%{_mandir}/man1/*
%changelog
* Sat Jul 05 2008 bbbush <bbbush.yuan@gmail.com> - 2.0-0.1.20080705
- create spec.
.\" .\"
.\"man-page for Axel .\" Axel 手册页
.\" .\"
.\"起源于一本由Richard Stone和Neil Matthew写的、名为《Beginning Linux Programming》的书的man-page样本。 .\" 起源于一本由Richard Stone和Neil Matthew写的、名为《Linux程序设计》的书的手册页样本。
.\"
.\" 翻译于08-10-17
.\" 校对于08-11-11
.\" .\"
.\''翻译08-10-17
.\''校对08-11-11
.\''
.TH AXEL 1 .TH AXEL 1
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
[\fI选项\fP] \fIurl1\fP [\fIurl2\fP] [\fIurl...\fP] [\fI选项\fP] \fIurl1\fP [\fIurl2\fP] [\fIurl...\fP]
.SH 描述 .SH 描述
Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序,每个连接下载文件的一部分。 Axel\ 是一个通过多个连接从一个\ HTTP\ 或\ FTP\ 服务器下载文件的程序,每个连接下载文件的一部分。
跟其它程序不一样,Axel会使用单一线程直接下载所有数据到目标文件。 跟其它程序不一样,\ Axel\ 会使用单一线程直接下载所有数据到目标文件。
这样正好可以节省时间,因为程序没有必要如锁链般连接到所有要下载的部分。 这样正好可以节省时间,因为程序没有必要如锁链般连接到所有要下载的部分。
.SH 选项 .SH 选项
.PP .PP
必需要有一个参数--您想下载的文件的URL。 必需要有一个参数--您想下载的文件的\ URL\ 。\
当从FTP下载,文件名可能包含通配符,程序会尝试解析完整的文件名。 当从\ FTP\ 下载,文件名可能包含通配符,程序会尝试解析完整的文件名。
也可以指定多个URL,程序将会通过那些地址下载。 也可以指定多个\ URL\ ,程序将会通过那些地址下载。\
请注意,程序不会检查文件是否相同。 请注意,程序不会检查文件是否相同。
.PP .PP
...@@ -34,7 +34,7 @@ Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序 ...@@ -34,7 +34,7 @@ Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序
.TP .TP
\fB\-\-max\-speed=x\fP, \fB\-s\ x\fP \fB\-\-max\-speed=x\fP, \fB\-s\ x\fP
您可以在这里指定一个速率(每秒字节),Axel将会尝试保持平均速率在这个速率附近。 您可以在这里指定一个速率(每秒字节,B/s),\ Axel\ 将会尝试保持平均速率在这个速率附近。\
它很有用──如果您不想程序吃掉您所有的带宽。 它很有用──如果您不想程序吃掉您所有的带宽。
.TP .TP
...@@ -43,13 +43,13 @@ Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序 ...@@ -43,13 +43,13 @@ Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序
.TP .TP
\fB\-\-output=x\fP, \fB\-o\ x\fP \fB\-\-output=x\fP, \fB\-o\ x\fP
下载的数据将会被保存为一个跟URL地址文件名同名的本地文件, 下载的数据将会被保存为一个跟\ URL\ 地址文件名同名的本地文件,\
除非您使用这个选项指定使用一个不一样的名字。 除非您使用这个选项指定使用一个不一样的名字。
您也可以指定一个目录,程序将会追加文件名。 您也可以指定一个目录,程序将会追加文件名。
.TP .TP
\fB\-\-search[=x]\fP, \fB-S[x]\fP \fB\-\-search[=x]\fP, \fB-S[x]\fP
Axel能使用filesearching.com搜索引擎,对镜像执行搜索。您使用这个选项它才会这么做。 Axel\ 能使用\ filesearching.com\ 搜索引擎,对镜像执行搜索。您使用这个选项它才会这么做。
您也可以指定应该使用多少个不同的镜像来下载。 您也可以指定应该使用多少个不同的镜像来下载。
对镜像搜索非常耗时,因为程序会测试每个服务器的速率,与及文件是否仍然有效。 对镜像搜索非常耗时,因为程序会测试每个服务器的速率,与及文件是否仍然有效。
...@@ -79,35 +79,43 @@ Axel能使用filesearching.com搜索引擎,对镜像执行搜索。您使用 ...@@ -79,35 +79,43 @@ Axel能使用filesearching.com搜索引擎,对镜像执行搜索。您使用
获取版本信息。 获取版本信息。
.SH 注意 .SH 注意
如果您的平台识别getopt_lang调用,长(两杠破折号)选项才会被支持。 如果您的平台识别\ getopt_lang\ 调用,长(两杠破折号)选项才会被支持。\
否则(像*BSD),只能使用短选项。 否则(像\ *BSD\ ),只能使用短选项。
.SH 返回值 .SH 返回值
当下载成功,程序返回0,如果真的出错返回1,如果下载被中断返回2,如果返回其它,它肯定是一个臭虫…… 当下载成功,程序返回0,如果真的出错返回1,如果下载被中断返回2,如果返回其它,它肯定是一个臭虫……
.SH 例子 .SH 例子
.nf .nf
axel ftp://ftp.{be,nl,uk,de}.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2 axel\ ftp://ftp.{be,nl,uk,de}.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
.fi .fi
它将会使用Belgian,Dutch,English和German的kenel.org镜像下载Linux 2.4.17 kernel映象。 它将会使用\ Belgian\ 、\ Dutch\ 、\ English\ 和\ German\ 的\ kenel.org\ 镜像下载\ Linux\ 2.4.17\ kernel\ 映象。
.nf .nf
axel \-S4 ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2 axel\ \-S4\ ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
.fi .fi
它将会在filesearching.com搜索linux-2.4.17.tar.bz2文件, 它将会在\ filesearching.com\ 搜索\ linux-2.4.17.tar.bz2\ 文件,\
然后从四个(如果可能的话)最快的镜像中下载(可能包括ftp.kernel.org)。 然后从四个(如果可能的话)最快的镜像中下载(可能包括\ ftp.kernel.org\ )。
(当然,这个命令是一个独立行,但他们太长而不能在这个页面内显示为一行。) (当然,这个命令是一个独立行,但他们太长而不能在这个页面内显示为一行。)
让\ Gentoo\ GNU/Linux\ 的\ Portage\ 软件包管理器调用\ Axel\ 来下载,把下面的命令添加进\ /etc/make.conf\ 。
.nf
FETCHCOMMAND='/usr/bin/axel -a -o "${DISTDIR}/${FILE}.axel" "${URI}" && mv "${DISTDIR}/${FILE}.axel" "${DISTDIR}/${FILE}"'
RESUMECOMMAND="${FETCHCOMMAND}"
.fi
.SH 文件 .SH 文件
.PP .PP
\fI/etc/axelrc\fP 系统全局配置文件 \fI/etc/axelrc\fP 系统全局配置文件
.PP .PP
\fI~/.axelrc\fP 个人配置文件 \fI~/.axelrc\fP 个人配置文件
.PP .PP
这些文件正文不会在一个man-page内显示,但我希望跟程序一起安装的样本文件包含足够的信息。 这些文件正文不会在一个手册页内显示,但我希望跟程序一起安装的样本文件包含足够的信息。
配置文件在不同系统的位置可能不一样。 配置文件在不同系统的位置可能不一样。
.SH 版权 .SH 版权
...@@ -122,9 +130,10 @@ Axel is Copyright 2001-2002 Wilmer van der Gaast. ...@@ -122,9 +130,10 @@ Axel is Copyright 2001-2002 Wilmer van der Gaast.
.SH 作者 .SH 作者
Wilmer van der Gaast. <wilmer@gaast.net> Wilmer van der Gaast. <wilmer@gaast.net>
.SH 译者 .SH 翻译
李蠡 Shuge Lee <shuge.lee@gmail.com> 蠡\ Shuge\ Lee\ <shuge.lee@gmail.com>
.SH 校对 .SH 校对
李进 Li Jin <punkid.online@gmail.com> 李进\ Li\ Jin\ <punkid.online@gmail.com>
.\" 最后更新09-02-06
...@@ -9,10 +9,11 @@ ...@@ -9,10 +9,11 @@
prefix='/usr/local' prefix='/usr/local'
bindir='$prefix/bin' bindir='$prefix/bin'
etcdir='$prefix/etc' etcdir='$prefix/etc'
mandir='$prefix/share/man' sharedir='$prefix/share'
locale='$prefix/share/locale' mandir='$sharedir/man'
locale='$sharedir/locale'
i18n=0 i18n=1
debug=0 debug=0
strip=1 strip=1
...@@ -40,21 +41,31 @@ Option Description Default ...@@ -40,21 +41,31 @@ Option Description Default
EOF EOF
exit; exit;
fi fi
eval "$e"
keyname=$(expr "$e" : '\(.*\)=.*' | sed 's/[^a-z0-9_]/_/g')
value=$(expr "$e" : '.*=\(.*\)' | sed "s/'/_/g")
eval "$keyname='$value'"
shift; shift;
done done
# Expand $prefix # Expand $prefix
bindir=`eval echo $bindir` bindir=`eval echo $bindir`
etcdir=`eval echo $etcdir` etcdir=`eval echo $etcdir`
sharedir=`eval echo $sharedir`
mandir=`eval echo $mandir` mandir=`eval echo $mandir`
locale=`eval echo $locale` locale=`eval echo $locale`
if test "$etcdir" = "/usr/etc"; then
# FHS explicitely forbids /usr/etc
etcdir='/etc'
fi
cat<<EOF>Makefile.settings cat<<EOF>Makefile.settings
## Axel settings, generated by configure ## Axel settings, generated by configure
PREFIX=$prefix PREFIX=$prefix
BINDIR=$bindir BINDIR=$bindir
ETCDIR=$etcdir ETCDIR=$etcdir
SHAREDIR=$sharedir
MANDIR=$mandir MANDIR=$mandir
LOCALE=$locale LOCALE=$locale
...@@ -85,8 +96,9 @@ if [ "$i18n" = "1" ]; then ...@@ -85,8 +96,9 @@ if [ "$i18n" = "1" ]; then
fi; fi;
fi fi
echo 'CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -Os' >> Makefile.settings echo "CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os ${CFLAGS}" >> Makefile.settings
if [ "$debug" = "1" ]; then if [ "$debug" = "1" ]; then
echo 'CFLAGS+=-g' >> Makefile.settings
echo 'DEBUG=1' >> Makefile.settings echo 'DEBUG=1' >> Makefile.settings
echo '#define DEBUG' >> config.h; echo '#define DEBUG' >> config.h;
fi fi
......
...@@ -2,7 +2,7 @@ msgid "" ...@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Axel\n" "Project-Id-Version: Axel\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-01-05 11:14+0530\n" "POT-Creation-Date: 2009-04-27 13:21+0530\n"
"PO-Revision-Date: 2008-09-15 22:08+0200\n" "PO-Revision-Date: 2008-09-15 22:08+0200\n"
"Last-Translator: Hermann J. Beckers <hj.beckers@onlinehome.de>\n" "Last-Translator: Hermann J. Beckers <hj.beckers@onlinehome.de>\n"
"Language-Team: deutsch <de@li.org>\n" "Language-Team: deutsch <de@li.org>\n"
...@@ -50,35 +50,35 @@ msgstr "Schlechtes Datei-/Betriebssystem, Umgehung.." ...@@ -50,35 +50,35 @@ msgstr "Schlechtes Datei-/Betriebssystem, Umgehung.."
msgid "Starting download" msgid "Starting download"
msgstr "Starte Abruf" msgstr "Starte Abruf"
#: axel.c:241 axel.c:398 #: axel.c:242 axel.c:401
#, c-format #, c-format
msgid "Connection %i downloading from %s:%i using interface %s" msgid "Connection %i downloading from %s:%i using interface %s"
msgstr "Verbindung %i: Abruf von %s:%i ber Schnittstelle %s" msgstr "Verbindung %i: Abruf von %s:%i ber Schnittstelle %s"
#: axel.c:245 axel.c:407 #: axel.c:249 axel.c:411
msgid "pthread error!!!" msgid "pthread error!!!"
msgstr "pthread Fehler!!!" msgstr "pthread Fehler!!!"
#: axel.c:314 #: axel.c:317
#, c-format #, c-format
msgid "Error on connection %i! Connection closed" msgid "Error on connection %i! Connection closed"
msgstr "Fehler bei Verbindung %i! Verbindung getrennt" msgstr "Fehler bei Verbindung %i! Verbindung getrennt"
#: axel.c:328 #: axel.c:331
#, c-format #, c-format
msgid "Connection %i unexpectedly closed" msgid "Connection %i unexpectedly closed"
msgstr "Verbindung %i unerwartet getrennt" msgstr "Verbindung %i unerwartet getrennt"
#: axel.c:332 axel.c:349 #: axel.c:335 axel.c:352
#, c-format #, c-format
msgid "Connection %i finished" msgid "Connection %i finished"
msgstr "Verbindung %i beendet" msgstr "Verbindung %i beendet"
#: axel.c:361 #: axel.c:364
msgid "Write error!" msgid "Write error!"
msgstr "Schreibfehler!" msgstr "Schreibfehler!"
#: axel.c:373 #: axel.c:376
#, c-format #, c-format
msgid "Connection %i timed out" msgid "Connection %i timed out"
msgstr "Time-out bei Verbindung %i" msgstr "Time-out bei Verbindung %i"
...@@ -143,47 +143,57 @@ msgstr "Ung ...@@ -143,47 +143,57 @@ msgstr "Ung
msgid "Can't redirect stdout to /dev/null.\n" msgid "Can't redirect stdout to /dev/null.\n"
msgstr "Kann Standardausgabe nicht nach /dev/null umleiten.\n" msgstr "Kann Standardausgabe nicht nach /dev/null umleiten.\n"
#: text.c:182 #: text.c:176
#, c-format
msgid "Error when trying to read URL (Too long?).\n"
msgstr "Fehler beim Lesen der URL (Zu lang?).\n"
#: text.c:185
#, c-format #, c-format
msgid "Can't handle URLs of length over %d\n" msgid "Can't handle URLs of length over %d\n"
msgstr "Kann URLs mit mehr als %d Zeichen nicht nutzen\n" msgstr "Kann URLs mit mehr als %d Zeichen nicht nutzen\n"
#: text.c:187 #: text.c:190
#, c-format #, c-format
msgid "Initializing download: %s\n" msgid "Initializing download: %s\n"
msgstr "Starte Abruf: %s\n" msgstr "Starte Abruf: %s\n"
#: text.c:194 #: text.c:197
#, c-format #, c-format
msgid "Doing search...\n" msgid "Doing search...\n"
msgstr "Suche gestartet...\n" msgstr "Suche gestartet...\n"
#: text.c:198 #: text.c:201
#, c-format #, c-format
msgid "File not found\n" msgid "File not found\n"
msgstr "Datei nicht gefunden\n" msgstr "Datei nicht gefunden\n"
#: text.c:202 #: text.c:205
#, c-format #, c-format
msgid "Testing speeds, this can take a while...\n" msgid "Testing speeds, this can take a while...\n"
msgstr "Teste Geschwindigkeiten, das kann etwas dauern...\n" msgstr "Teste Geschwindigkeiten, das kann etwas dauern...\n"
#: text.c:207 #: text.c:210
#, c-format #, c-format
msgid "%i usable servers found, will use these URLs:\n" msgid "%i usable servers found, will use these URLs:\n"
msgstr "%i benutzbare Server gefunden, werde diese URLs benutzen:\n" msgstr "%i benutzbare Server gefunden, werde diese URLs benutzen:\n"
#: text.c:269 #: text.c:269
#, c-format #, c-format
msgid "Filename too long!\n"
msgstr "Dateiname zu lang!\n"
#: text.c:281
#, c-format
msgid "No state file, cannot resume!\n" msgid "No state file, cannot resume!\n"
msgstr "Keine Status-Datei, Fortsetzung nicht mglich!\n" msgstr "Keine Status-Datei, Fortsetzung nicht mglich!\n"
#: text.c:274 #: text.c:286
#, c-format #, c-format
msgid "State file found, but no downloaded data. Starting from scratch.\n" msgid "State file found, but no downloaded data. Starting from scratch.\n"
msgstr "Status-Datei gefunden, aber noch nichts bertragen. Neustart.\n" msgstr "Status-Datei gefunden, aber noch nichts bertragen. Neustart.\n"
#: text.c:405 #: text.c:417
#, c-format #, c-format
msgid "" msgid ""
"\n" "\n"
...@@ -192,47 +202,47 @@ msgstr "" ...@@ -192,47 +202,47 @@ msgstr ""
"\n" "\n"
"%s abgerufen in %s. (%.2f KB/s)\n" "%s abgerufen in %s. (%.2f KB/s)\n"
#: text.c:427 #: text.c:439
#, fuzzy, c-format #, fuzzy, c-format
msgid "%lld byte" msgid "%lld byte"
msgstr "%i Byte" msgstr "%i Byte"
#: text.c:429 #: text.c:441
#, fuzzy, c-format #, fuzzy, c-format
msgid "%lld bytes" msgid "%lld bytes"
msgstr "%i Bytes" msgstr "%i Bytes"
#: text.c:431 #: text.c:443
#, c-format #, c-format
msgid "%.1f kilobytes" msgid "%.1f kilobytes"
msgstr "%.1f Kilobytes" msgstr "%.1f Kilobytes"
#: text.c:433 #: text.c:445
#, c-format #, c-format
msgid "%.1f megabytes" msgid "%.1f megabytes"
msgstr "%.1f Megabytes" msgstr "%.1f Megabytes"
#: text.c:442 #: text.c:454
#, c-format #, c-format
msgid "%i second" msgid "%i second"
msgstr "%i Sekunde" msgstr "%i Sekunde"
#: text.c:444 #: text.c:456
#, c-format #, c-format
msgid "%i seconds" msgid "%i seconds"
msgstr "%i Sekunden" msgstr "%i Sekunden"
#: text.c:446 #: text.c:458
#, c-format #, c-format
msgid "%i:%02i seconds" msgid "%i:%02i seconds"
msgstr "%i:%02i Sekunden" msgstr "%i:%02i Sekunden"
#: text.c:448 #: text.c:460
#, c-format #, c-format
msgid "%i:%02i:%02i seconds" msgid "%i:%02i:%02i seconds"
msgstr "%i:%02i:%02i Sekunden" msgstr "%i:%02i:%02i Sekunden"
#: text.c:528 #: text.c:540
#, c-format #, c-format
msgid "" msgid ""
"Usage: axel [options] url1 [url2] [url...]\n" "Usage: axel [options] url1 [url2] [url...]\n"
...@@ -268,7 +278,7 @@ msgstr "" ...@@ -268,7 +278,7 @@ msgstr ""
"\n" "\n"
"Fehler an lintux@lintux.cx melden.\n" "Fehler an lintux@lintux.cx melden.\n"
#: text.c:545 #: text.c:557
#, c-format #, c-format
msgid "" msgid ""
"Usage: axel [options] url1 [url2] [url...]\n" "Usage: axel [options] url1 [url2] [url...]\n"
...@@ -294,8 +304,8 @@ msgstr "" ...@@ -294,8 +304,8 @@ msgstr ""
"--num-connections=x\t-n x\tmaximale gleichzeitige Verbindungen\n" "--num-connections=x\t-n x\tmaximale gleichzeitige Verbindungen\n"
"--output=f\t\t-o f\tlokale Ausgabe-Datei\n" "--output=f\t\t-o f\tlokale Ausgabe-Datei\n"
"--search=[x]\t\t-S [x] Suche nach Spiegelservern und Abruf von x Servern\n" "--search=[x]\t\t-S [x] Suche nach Spiegelservern und Abruf von x Servern\n"
"--header=x\f\t-H x\tSende HTTP-Header\n" "--header=x\t\t-H x\tSende HTTP-Header\n"
"--user-agent=x\f\t-U x\tSetze Browser-Kennung\n" "--user-agent=x\t\t-U x\tSetze Browser-Kennung\n"
"--no-proxy\t\t-N\tkeinen Proxy-Server benutzen\n" "--no-proxy\t\t-N\tkeinen Proxy-Server benutzen\n"
"--quiet\t\t\t-q\tkeine Meldungen auf Standard-Ausgabe\n" "--quiet\t\t\t-q\tkeine Meldungen auf Standard-Ausgabe\n"
"--verbose\t\t-v\tzustzliche Status-Information\n" "--verbose\t\t-v\tzustzliche Status-Information\n"
...@@ -304,7 +314,7 @@ msgstr "" ...@@ -304,7 +314,7 @@ msgstr ""
"\n" "\n"
"Fehler an lintux@lintux.cx melden.\n" "Fehler an lintux@lintux.cx melden.\n"
#: text.c:566 #: text.c:578
#, c-format #, c-format
msgid "Axel version %s (%s)\n" msgid "Axel version %s (%s)\n"
msgstr "Axel Version %s (%s)\n" msgstr "Axel Version %s (%s)\n"
...@@ -7,3 +7,5 @@ install: ...@@ -7,3 +7,5 @@ install:
install -m 0755 axel-kapt $(DESTDIR)$(BINDIR) install -m 0755 axel-kapt $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man1/ mkdir -p $(DESTDIR)$(MANDIR)/man1/
install -m 0644 axel-kapt.1 $(DESTDIR)$(MANDIR)/man1/ install -m 0644 axel-kapt.1 $(DESTDIR)$(MANDIR)/man1/
mkdir -p $(DESTDIR)$(SHAREDIR)/applications/
install -m 0644 axel-kapt.desktop $(DESTDIR)$(SHAREDIR)/applications/
...@@ -45,7 +45,7 @@ config :horizontal "OPTIONS" -> checks term max connex search; ...@@ -45,7 +45,7 @@ config :horizontal "OPTIONS" -> checks term max connex search;
verb "Verbose" -> @|" --verbose "; verb "Verbose" -> @|" --verbose ";
quiet "Quiet" -> @|" -q "; quiet "Quiet" -> @|" -q ";
term "Terminal Type" -> @combo("konsole", "rxvt", "xterm", "aterm"); term "Terminal Type" -> @string()="xterm";
max "Max bps"-> @integer()=0; max "Max bps"-> @integer()=0;
connex :horizontal "Connections" -> @integer()=4; connex :horizontal "Connections" -> @integer()=4;
search :framed "ftp Search" -> numsites | ! @ ; search :framed "ftp Search" -> numsites | ! @ ;
......
...@@ -5,7 +5,8 @@ GenericName=Axel Front-end ...@@ -5,7 +5,8 @@ GenericName=Axel Front-end
Comment=Front-end for Axel - a light download accelerator Comment=Front-end for Axel - a light download accelerator
Type=Application Type=Application
Exec=axel-kapt %f Exec=axel-kapt %f
MimeType=text/html;
Icon=connect_creating Icon=connect_creating
Terminal=false Terminal=false
X-KDE-SubstituteUID=false X-KDE-SubstituteUID=false
Categories=Utility;Network;KDE; Categories=Network;FileTransfer;KDE;
...@@ -124,7 +124,7 @@ void http_addheader( http_t *conn, char *format, ... ) ...@@ -124,7 +124,7 @@ void http_addheader( http_t *conn, char *format, ... )
strcat( s, "\r\n" ); strcat( s, "\r\n" );
va_end( params ); va_end( params );
strncat( conn->request, s, MAX_QUERY ); strncat( conn->request, s, MAX_QUERY - strlen(conn->request) - 1);
} }
int http_exec( http_t *conn ) int http_exec( http_t *conn )
......