Import Upstream version 2.3

parent 6877646f
Version 2.3
- Wait for thread termination in axel.c:axel_do (Closes: #311255), thanks John Ripa
- New Chinese translation and manpage, thanks Shuge Lee
- Fix LFS support for FTP (Closes: #311320)
- Fix LFS support (Closes: #311324), thanks Rodrigue Le Bayon
Version 2.2:
- Fix a buffer overflow in http.c:http_encode.
Version 2.1:
- Fix version string. 2.0 still reported 1.1, thanks Ajay R Ramjatan
- Fix new MB/s display (was showing B/s). Thanks Philipp Hagemeister
Version 2.0:
- Large file support thanks thanks David Turnbull
......
......@@ -12,7 +12,7 @@
.SUFFIXES: .po .mo
# Add your translation here..
MOFILES = nl.mo de.mo ru.mo
MOFILES = nl.mo de.mo ru.mo zh_cn.mo
all: $(OUTFILE)
......@@ -29,14 +29,17 @@ clean:
rm -f *.o $(OUTFILE) search core *.mo
distclean: clean
rm -f Makefile.settings config.h
rm -f Makefile.settings config.h axel-*.tar axel-*.tar.gz axel-*.tar.bz2
install-man:
mkdir -p $(DESTDIR)$(MANDIR)/man1/
cp axel.1 $(DESTDIR)$(MANDIR)/man1/axel.1
mkdir -p $(DESTDIR)$(MANDIR)/zh_CN/man1/
cp axel_zh_CN.1 $(DESTDIR)$(MANDIR)/zh_CN/man1/axel.1
uninstall-man:
rm -f $(MANDIR)/man1/axel.1
rm -f $(MANDIR)/zh_CN/man1/axel.1
install-etc:
mkdir -p $(DESTDIR)$(ETCDIR)/
......@@ -48,7 +51,7 @@ uninstall-etc:
### MAIN PROGRAM
$(OUTFILE): axel.o conf.o conn.o ftp.o http.o search.o tcp.o text.o
$(CC) axel.o conf.o conn.o ftp.o http.o search.o tcp.o text.o -o $(OUTFILE) $(LFLAGS)
$(CC) *.o -o $(OUTFILE) $(LFLAGS)
ifndef DEBUG
-$(STRIP) $(OUTFILE)
endif
......@@ -63,10 +66,11 @@ install-bin:
uninstall-bin:
rm -f $(BINDIR)/$(OUTFILE)
tar: distclean
x=`pwd | sed -e 's/\/.*\///'`; \
cd ..; \
tar czf $$x.tar.gz $$x
tar:
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 && \
gzip --best < "axel-$${version}.tar" > "axel-$${version}.tar.gz" && \
bzip2 --best < "axel-$${version}.tar" > "axel-$${version}.tar.bz2"
### I18N FILES
......
......@@ -78,6 +78,18 @@ This will show an alternate progress indicator. A bar displays the progress
and status of the different threads, along with current speed and an
estimate for the remaining download time.
.TP
\fB\-\-header=x\fP, \fB\-H\ x\fP
Add an additional HTTP header. This option should be in the form "Header:
Value". See RFC 2616 section 4.2 and 14 for details on the format and
standardized headers.
.TP
\fB\-\-user-agent=x\fP, \fB\-U\ x\fP
Set the HTTP user agent to use. Some websites serve different content based upon
this parameter. The default value will include "Axel", its version and the
platform.
.TP
\fB\-\-help\fP, \fB\-h\fP
A brief summary of all the options.
......@@ -129,12 +141,7 @@ of the system-wide configuration file might be different.
Axel is Copyright 2001-2002 Wilmer van der Gaast.
.SH BUGS
.PP
I'm sure there are some bugs left somewhere, please tell me about them and
I will try to fix them.
A known bug is that the program does weird things when downloading using
hundreds of connections. Well, just don't do that.
Please report bugs at https://alioth.debian.org/tracker/?group_id=100070&atid=413085.
.SH AUTHORS
Wilmer van der Gaast. <wilmer@gaast.net>
......@@ -261,8 +261,8 @@ void axel_start( axel_t *axel )
void axel_do( axel_t *axel )
{
fd_set fds[1];
int hifd, i, j;
long long int size;
int hifd, i;
long long int remaining,size;
struct timeval timeval[1];
/* Create statefile if necessary */
......@@ -340,9 +340,9 @@ void axel_do( axel_t *axel )
conn_disconnect( &axel->conn[i] );
continue;
}
/* j == Bytes to go */
j = axel->conn[i].lastbyte - axel->conn[i].currentbyte + 1;
if( j < size )
/* remaining == Bytes to go */
remaining = axel->conn[i].lastbyte - axel->conn[i].currentbyte + 1;
if( remaining < size )
{
if( axel->conf->verbose )
{
......@@ -350,7 +350,7 @@ void axel_do( axel_t *axel )
}
axel->conn[i].enabled = 0;
conn_disconnect( &axel->conn[i] );
size = j;
size = remaining;
/* Don't terminate, still stuff to write! */
}
/* This should always succeed.. */
......@@ -386,7 +386,10 @@ conn_check:
if( !axel->conn[i].enabled && axel->conn[i].currentbyte < axel->conn[i].lastbyte )
{
if( axel->conn[i].state == 0 )
{
{
// Wait for termination of this thread
pthread_join(*(axel->conn[i].setup_thread), NULL);
conn_set( &axel->conn[i], axel->url->text );
axel->url = axel->url->next;
/* axel->conn[i].local_if = axel->conf->interfaces->text;
......
......@@ -67,8 +67,8 @@
#define MAX_STRING 1024
#define MAX_ADD_HEADERS 10
#define MAX_REDIR 5
#define AXEL_VERSION_STRING "1.1"
#define USER_AGENT "Axel " AXEL_VERSION_STRING " (" ARCH ")"
#define AXEL_VERSION_STRING "2.3"
#define DEFAULT_USER_AGENT "Axel " AXEL_VERSION_STRING " (" ARCH ")"
typedef struct
{
......
.\"
.\"man-page for Axel
.\"
.\"起源于一本由Richard Stone和Neil Matthew写的、名为《Beginning Linux Programming》的书的man-page样本。
.\"
.\''翻译08-10-17
.\''校对08-11-11
.\''
.TH AXEL 1
.SH 名称
\fBAxel\fP \- Linux 下轻量的下载加速器。
.SH 总览
.B axel
[\fI选项\fP] \fIurl1\fP [\fIurl2\fP] [\fIurl...\fP]
.SH 描述
Axel是一个通过多个连接从一个HTTP或FTP服务器下载文件的程序,每个连接下载文件的一部分。
跟其它程序不一样,Axel会使用单一线程直接下载所有数据到目标文件。
这样正好可以节省时间,因为程序没有必要如锁链般连接到所有要下载的部分。
.SH 选项
.PP
必需要有一个参数--您想下载的文件的URL。
当从FTP下载,文件名可能包含通配符,程序会尝试解析完整的文件名。
也可以指定多个URL,程序将会通过那些地址下载。
请注意,程序不会检查文件是否相同。
.PP
其它选项:
.TP
\fB\-\-max\-speed=x\fP, \fB\-s\ x\fP
您可以在这里指定一个速率(每秒字节),Axel将会尝试保持平均速率在这个速率附近。
它很有用──如果您不想程序吃掉您所有的带宽。
.TP
\fB\-\-num\-connections=x\fP, \fB\-n\ x\fP
您可以在这里指定一个最终连接数。
.TP
\fB\-\-output=x\fP, \fB\-o\ x\fP
下载的数据将会被保存为一个跟URL地址文件名同名的本地文件,
除非您使用这个选项指定使用一个不一样的名字。
您也可以指定一个目录,程序将会追加文件名。
.TP
\fB\-\-search[=x]\fP, \fB-S[x]\fP
Axel能使用filesearching.com搜索引擎,对镜像执行搜索。您使用这个选项它才会这么做。
您也可以指定应该使用多少个不同的镜像来下载。
对镜像搜索非常耗时,因为程序会测试每个服务器的速率,与及文件是否仍然有效。
.TP
\fB\-\-no\-proxy\fP, \fB\-N\fP
不使用代理服务器下载文件。当然,当一个透明代理是有效时,这是不可能的。
.TP
\fB\-\-verbose\fP
如果您想看到更多的状态信息,您可以使用这个选项。如果您想看到更多,就使用它多几次。
.TP
\fB\-\-quiet\fP, \fB-q\fP
不输出到标准输出(stdout)。
.TP
\fB\-\-alternate\fP, \fB-a\fP
这将会显示一个文本进度指示器。一个显示不同线程进度和状态,当前速率和评估剩余下载时间的棒形图。
.TP
\fB\-\-help\fP, \fB\-h\fP
一个对所有选项的简洁摘要。
.TP
\fB\-\-version\fP, \fB\-V\fP
获取版本信息。
.SH 注意
如果您的平台识别getopt_lang调用,长(两杠破折号)选项才会被支持。
否则(像*BSD),只能使用短选项。
.SH 返回值
当下载成功,程序返回0,如果真的出错返回1,如果下载被中断返回2,如果返回其它,它肯定是一个臭虫……
.SH 例子
.nf
axel ftp://ftp.{be,nl,uk,de}.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
.fi
它将会使用Belgian,Dutch,English和German的kenel.org镜像下载Linux 2.4.17 kernel映象。
.nf
axel \-S4 ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
.fi
它将会在filesearching.com搜索linux-2.4.17.tar.bz2文件,
然后从四个(如果可能的话)最快的镜像中下载(可能包括ftp.kernel.org)。
(当然,这个命令是一个独立行,但他们太长而不能在这个页面内显示为一行。)
.SH 文件
.PP
\fI/etc/axelrc\fP 系统全局配置文件
.PP
\fI~/.axelrc\fP 个人配置文件
.PP
这些文件正文不会在一个man-page内显示,但我希望跟程序一起安装的样本文件包含足够的信息。
配置文件在不同系统的位置可能不一样。
.SH 版权
Axel is Copyright 2001-2002 Wilmer van der Gaast.
.SH 臭虫
.PP
我坚信在某些地方仍然会有臭虫,请告诉我,我会尝试修复它们。
已知臭虫是当使用上百个连接下载时,程序会发生异常。您应该避免它。
.SH 作者
Wilmer van der Gaast. <wilmer@gaast.net>
.SH 译者
李蠡 Shuge Lee <shuge.lee@gmail.com>
.SH 校对
李进 Li Jin <punkid.online@gmail.com>
......@@ -110,6 +110,7 @@ int conf_loadfile( conf_t *conf, char *file )
get_config_number( add_header_count );
for(i=0;i<conf->add_header_count;i++)
get_config_string( add_header[i] );
get_config_string( user_agent );
}
fclose( fp );
......@@ -140,7 +141,8 @@ int conf_init( conf_t *conf )
conf->search_threads = 3;
conf->search_amount = 15;
conf->search_top = 3;
conf->add_header_count = 0;
conf->add_header_count = 0;
strncpy( conf->user_agent, DEFAULT_USER_AGENT, MAX_STRING );
conf->interfaces = malloc( sizeof( if_t ) );
memset( conf->interfaces, 0, sizeof( if_t ) );
......
......@@ -47,6 +47,8 @@ typedef struct
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 );
......
......@@ -85,7 +85,7 @@ if [ "$i18n" = "1" ]; then
fi;
fi
echo 'CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g' >> Makefile.settings
echo 'CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -Os' >> Makefile.settings
if [ "$debug" = "1" ]; then
echo 'DEBUG=1' >> Makefile.settings
echo '#define DEBUG' >> config.h;
......@@ -100,7 +100,9 @@ if [ "$i18n" = "1" ]; then
fi;
fi
if type gcc > /dev/null 2> /dev/null; then
if [ "${CC}" != "" ]; then
echo "CC=${CC}" >> Makefile.settings;
elif type gcc > /dev/null 2> /dev/null; then
echo "CC=gcc" >> Makefile.settings;
elif type cc > /dev/null 2> /dev/null; then
echo "CC=cc" >> Makefile.settings;
......
......@@ -257,6 +257,7 @@ int conn_setup( conn_t *conn )
conn->http->firstbyte = conn->currentbyte;
conn->http->lastbyte = conn->lastbyte;
http_get( conn->http, s );
http_addheader( conn->http, "User-Agent: %s", conn->conf->user_agent );
for( i = 0; i < conn->conf->add_header_count; i++)
http_addheader( conn->http, "%s", conn->conf->add_header[i] );
}
......
......@@ -42,9 +42,9 @@ typedef struct
ftp_t ftp[1];
http_t http[1];
long long size; /* File size, not 'connection size'.. */
long long currentbyte;
long long lastbyte;
long long int size; /* File size, not 'connection size'.. */
long long int currentbyte;
long long int lastbyte;
int fd;
int enabled;
int supported;
......
......@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Axel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-09-12 17:21+0530\n"
"PO-Revision-Date: 2007-12-15 15:18GMT\n"
"POT-Creation-Date: 2009-01-05 11:14+0530\n"
"PO-Revision-Date: 2008-09-15 22:08+0200\n"
"Last-Translator: Hermann J. Beckers <hj.beckers@onlinehome.de>\n"
"Language-Team: deutsch <de@li.org>\n"
"MIME-Version: 1.0\n"
......@@ -50,12 +50,12 @@ msgstr "Schlechtes Datei-/Betriebssystem, Umgehung.."
msgid "Starting download"
msgstr "Starte Abruf"
#: axel.c:241 axel.c:395
#: axel.c:241 axel.c:398
#, c-format
msgid "Connection %i downloading from %s:%i using interface %s"
msgstr "Verbindung %i: Abruf von %s:%i ber Schnittstelle %s"
#: axel.c:245 axel.c:404
#: axel.c:245 axel.c:407
msgid "pthread error!!!"
msgstr "pthread Fehler!!!"
......@@ -88,15 +88,15 @@ msgstr "Time-out bei Verbindung %i"
msgid "Error in %s line %i.\n"
msgstr "Fehler in %s Zeile %i.\n"
#: conn.c:348 ftp.c:124
#: conn.c:349 ftp.c:124
#, c-format
msgid "Too many redirects.\n"
msgstr "Zu viele Weiterleitungen (redirects).\n"
#: conn.c:367
#: conn.c:368
#, c-format
msgid "Unknown HTTP error.\n"
msgstr "Unbekannter HTTP Fehler.\n"
msgstr "Unbekannter HTTP-Fehler.\n"
#: ftp.c:35 http.c:60
#, c-format
......@@ -128,7 +128,7 @@ msgstr "Fehler beim
msgid "Error writing command %s\n"
msgstr "Fehler beim Schreiben des Befehls %s\n"
#: ftp.c:311 http.c:151
#: ftp.c:311 http.c:150
#, c-format
msgid "Connection gone.\n"
msgstr "Verbindung geschlossen.\n"
......@@ -138,52 +138,52 @@ msgstr "Verbindung geschlossen.\n"
msgid "Invalid proxy string: %s\n"
msgstr "Ungltige Proxy-Angabe: %s\n"
#: text.c:150
#: text.c:154
#, c-format
msgid "Can't redirect stdout to /dev/null.\n"
msgstr "Kann Standardausgabe nicht nach /dev/null umleiten.\n"
#: text.c:178
#: text.c:182
#, c-format
msgid "Can't handle URLs of length over %d\n"
msgstr "Kann URLs mit mehr als %d Zeichen nicht nutzen\n"
#: text.c:183
#: text.c:187
#, c-format
msgid "Initializing download: %s\n"
msgstr "Starte Abruf: %s\n"
#: text.c:190
#: text.c:194
#, c-format
msgid "Doing search...\n"
msgstr "Suche gestartet...\n"
#: text.c:194
#: text.c:198
#, c-format
msgid "File not found\n"
msgstr "Datei nicht gefunden\n"
#: text.c:198
#: text.c:202
#, c-format
msgid "Testing speeds, this can take a while...\n"
msgstr "Teste Geschwindigkeiten, das kann etwas dauern...\n"
#: text.c:203
#: text.c:207
#, c-format
msgid "%i usable servers found, will use these URLs:\n"
msgstr "%i benutzbare Server gefunden, werde diese URLs benutzen:\n"
#: text.c:265
#: text.c:269
#, c-format
msgid "No state file, cannot resume!\n"
msgstr "Keine Status-Datei, Fortsetzung nicht mglich!\n"
#: text.c:270
#: text.c:274
#, c-format
msgid "State file found, but no downloaded data. Starting from scratch.\n"
msgstr "Status-Datei gefunden, aber noch nichts bertragen. Neustart.\n"
#: text.c:401
#: text.c:405
#, c-format
msgid ""
"\n"
......@@ -192,48 +192,48 @@ msgstr ""
"\n"
"%s abgerufen in %s. (%.2f KB/s)\n"
#: text.c:423
#: text.c:427
#, fuzzy, c-format
msgid "%lld byte"
msgstr "%i Byte"
#: text.c:425
#: text.c:429
#, fuzzy, c-format
msgid "%lld bytes"
msgstr "%i Bytes"
#: text.c:427
#: text.c:431
#, c-format
msgid "%.1f kilobytes"
msgstr "%.1f Kilobytes"
#: text.c:429
#: text.c:433
#, c-format
msgid "%.1f megabytes"
msgstr "%.1f Megabytes"
#: text.c:438
#: text.c:442
#, c-format
msgid "%i second"
msgstr "%i Sekunde"
#: text.c:440
#: text.c:444
#, c-format
msgid "%i seconds"
msgstr "%i Sekunden"
#: text.c:442
#: text.c:446
#, c-format
msgid "%i:%02i seconds"
msgstr "%i:%02i Sekunden"
#: text.c:444
#: text.c:448
#, c-format
msgid "%i:%02i:%02i seconds"
msgstr "%i:%02i:%02i Sekunden"
#: text.c:524
#, fuzzy, c-format
#: text.c:528
#, c-format
msgid ""
"Usage: axel [options] url1 [url2] [url...]\n"
"\n"
......@@ -242,6 +242,7 @@ msgid ""
"-o f\tSpecify local output file\n"
"-S [x]\tSearch for mirrors and download from x servers\n"
"-H x\tAdd header string\n"
"-U x\tSet user agent\n"
"-N\tJust don't use any proxy server\n"
"-q\tLeave stdout alone\n"
"-v\tMore status information\n"
......@@ -257,6 +258,8 @@ msgstr ""
"-n x\tmaximale gleichzeitige Verbindungen\n"
"-o f\tlokale Ausgabe-Datei\n"
"-S [x]\tSuche nach Spiegelservern und Abruf von x Servern\n"
"-H x\tSende HTTP-Header\n"
"-U x\tSetze Browser-Kennung\n"
"-N\tkeinen Proxy-Server benutzen\n"
"-q\tkeine Meldungen auf Standard-Ausgabe\n"
"-v\tzustzliche Status-Information\n"
......@@ -265,8 +268,8 @@ msgstr ""
"\n"
"Fehler an lintux@lintux.cx melden.\n"
#: text.c:540
#, fuzzy, c-format
#: text.c:545
#, c-format
msgid ""
"Usage: axel [options] url1 [url2] [url...]\n"
"\n"
......@@ -275,6 +278,7 @@ msgid ""
"--output=f\t\t-o f\tSpecify local output file\n"
"--search[=x]\t\t-S [x]\tSearch for mirrors and download from x servers\n"
"--header=x\t\t-H x\tAdd header string\n"
"--user-agent=x\t\t-U x\tSet user agent\n"
"--no-proxy\t\t-N\tJust don't use any proxy server\n"
"--quiet\t\t\t-q\tLeave stdout alone\n"
"--verbose\t\t-v\tMore status information\n"
......@@ -290,6 +294,8 @@ msgstr ""
"--num-connections=x\t-n x\tmaximale gleichzeitige Verbindungen\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"
"--header=x\f\t-H x\tSende HTTP-Header\n"
"--user-agent=x\f\t-U x\tSetze Browser-Kennung\n"
"--no-proxy\t\t-N\tkeinen Proxy-Server benutzen\n"
"--quiet\t\t\t-q\tkeine Meldungen auf Standard-Ausgabe\n"
"--verbose\t\t-v\tzustzliche Status-Information\n"
......@@ -298,7 +304,7 @@ msgstr ""
"\n"
"Fehler an lintux@lintux.cx melden.\n"
#: text.c:560
#: text.c:566
#, c-format
msgid "Axel version %s (%s)\n"
msgstr "Axel Version %s (%s)\n"
......@@ -98,9 +98,9 @@ int ftp_cwd( ftp_t *conn, char *cwd )
}
/* Get file size. Should work with all reasonable servers now */
int ftp_size( ftp_t *conn, char *file, int maxredir )
long long int ftp_size( ftp_t *conn, char *file, int maxredir )
{
int i, j, size = MAX_STRING;
long long int i, j, size = MAX_STRING;
char *reply, *s, fn[MAX_STRING];
/* Try the SIZE command first, if possible */
......@@ -109,7 +109,7 @@ int ftp_size( ftp_t *conn, char *file, int maxredir )
ftp_command( conn, "SIZE %s", file );
if( ftp_wait( conn ) / 100 == 2 )
{
sscanf( conn->message, "%*i %i", &i );
sscanf( conn->message, "%*i %lld", &i );
return( i );
}
else if( conn->status / 10 != 50 )
......@@ -202,10 +202,10 @@ int ftp_size( ftp_t *conn, char *file, int maxredir )
else
{
s = strstr( reply, "\n-" );
i = sscanf( s, "%*s %*i %*s %*s %i %*s %*i %*s %100s", &size, fn );
i = sscanf( s, "%*s %*i %*s %*s %lld %*s %*i %*s %100s", &size, fn );
if( i < 2 )
{
i = sscanf( s, "%*s %*i %i %*i %*s %*i %*i %100s", &size, fn );
i = sscanf( s, "%*s %*i %lld %*i %*s %*i %*i %100s", &size, fn );
if( i < 2 )
{
return( -2 );
......
......@@ -43,4 +43,4 @@ int ftp_wait( ftp_t *conn );
int ftp_command( ftp_t *conn, char *format, ... );
int ftp_cwd( ftp_t *conn, char *cwd );
int ftp_data( ftp_t *conn );
int ftp_size( ftp_t *conn, char *file, int maxredir );
long long int ftp_size( ftp_t *conn, char *file, int maxredir );
......@@ -103,7 +103,6 @@ void http_get( http_t *conn, char *lurl )
http_addheader( conn, "GET %s HTTP/1.0", lurl );
http_addheader( conn, "Host: %s", conn->host );
}
http_addheader( conn, "User-Agent: %s", USER_AGENT );
if( *conn->auth )
http_addheader( conn, "Authorization: Basic %s", conn->auth );
if( conn->firstbyte )
......@@ -236,9 +235,19 @@ void http_encode( char *s )
for( i = j = 0; s[i]; i ++, j ++ )
{
/* Fix buffer overflow */
if (j >= MAX_STRING - 1) {
break;
}
t[j] = s[i];
if( s[i] == ' ' )
{
/* Fix buffer overflow */
if (j >= MAX_STRING - 3) {
break;
}
strcpy( t + j, "%20" );
j += 2;
}
......
......@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Axel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-09-12 17:22+0530\n"
"POT-Creation-Date: 2009-01-05 11:14+0530\n"
"PO-Revision-Date: 2001-11-14 15:22+0200\n"
"Last-Translator: Wilmer van der Gaast <wilmer@gaast.net>\n"
"Language-Team: Dutch <nl@li.org>\n"
......@@ -49,12 +49,12 @@ msgstr "Niet-fatale fout in OS/bestandssysteem, omheen werken.."
msgid "Starting download"
msgstr "Begin download"
#: axel.c:241 axel.c:395
#: axel.c:241 axel.c:398
#, c-format
msgid "Connection %i downloading from %s:%i using interface %s"
msgstr "Verbinding %i gebruikt server %s:%i via interface %s"
#: axel.c:245 axel.c:404
#: axel.c:245 axel.c:407
msgid "pthread error!!!"
msgstr "pthread fout!!!"
......@@ -87,12 +87,12 @@ msgstr "Time-out op verbinding %i"
msgid "Error in %s line %i.\n"
msgstr "Fout in %s regel %i.\n"
#: conn.c:348 ftp.c:124
#: conn.c:349 ftp.c:124
#, c-format
msgid "Too many redirects.\n"
msgstr "Te veel redirects.\n"
#: conn.c:367
#: conn.c:368
#, c-format
msgid "Unknown HTTP error.\n"
msgstr "Onbekende HTTP fout.\n"
......@@ -127,7 +127,7 @@ msgstr "Fout bij het openen van een data verbinding.\n"
msgid "Error writing command %s\n"
msgstr "Fout bij het schrijven van commando %s\n"
#: ftp.c:311 http.c:151
#: ftp.c:311 http.c:150
#, c-format
msgid "Connection gone.\n"
msgstr "Verbinding gesloten.\n"
......@@ -137,52 +137,52 @@ msgstr "Verbinding gesloten.\n"
msgid "Invalid proxy string: %s\n"
msgstr "Ongeldige proxy string: %s\n"
#: text.c:150
#: text.c:154
#, c-format
msgid "Can't redirect stdout to /dev/null.\n"
msgstr "Fout bij het afsluiten van stdout.\n"
#: text.c:178
#: text.c:182
#, c-format
msgid "Can't handle URLs of length over %d\n"
msgstr ""
#: text.c:183
#: text.c:187
#, c-format
msgid "Initializing download: %s\n"
msgstr "Begin download: %s\n"
#: text.c:190
#: text.c:194
#, c-format
msgid "Doing search...\n"
msgstr "Zoeken...\n"
#: text.c:194
#: text.c:198
#, c-format
msgid "File not found\n"
msgstr "Bestand niet gevonden\n"
#: text.c:198
#: text.c:202
#, c-format
msgid "Testing speeds, this can take a while...\n"
msgstr "Snelheden testen, dit kan even duren...\n"
#: text.c:203
#: text.c:207
#, c-format
msgid "%i usable servers found, will use these URLs:\n"
msgstr "%i bruikbare servers gevonden, de volgende worden gebruikt:\n"
#: text.c:265
#: text.c:269
#, c-format
msgid "No state file, cannot resume!\n"
msgstr "Geen .st bestand, kan niet resumen!\n"
#: text.c:270
#: text.c:274
#, c-format
msgid "State file found, but no downloaded data. Starting from scratch.\n"
msgstr ".st bestand gevonden maar geen uitvoerbestand. Opnieuw beginnen.\n"
#: text.c:401
#: text.c:405
#, c-format
msgid ""
"\n"
......@@ -191,47 +191,47 @@ msgstr ""
"\n"
"%s gedownload in %s. (%.2f KB/s)\n"
#: text.c:423
#: text.c:427
#, fuzzy, c-format
msgid "%lld byte"
msgstr "%i byte"
#: text.c:425
#: text.c:429
#, fuzzy, c-format
msgid "%lld bytes"
msgstr "%i bytes"
#: text.c:427
#: text.c:431
#, c-format
msgid "%.1f kilobytes"
msgstr "%.1f kilobytes"
#: text.c:429
#: text.c:433
#, c-format