summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/url.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-02-20 15:49:20 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-02-20 15:49:20 +0000
commit616e5e677e36cd6c3909a6e22fd130e467cf555c (patch)
tree774e9e7ec0c0ea2ab54da70c91c648c5d13f919d /mdk-stage1/url.c
parentd71f1b5bcbf6552d3a7531e5f843db4dd5fd2d9f (diff)
downloaddrakx-616e5e677e36cd6c3909a6e22fd130e467cf555c.tar
drakx-616e5e677e36cd6c3909a6e22fd130e467cf555c.tar.gz
drakx-616e5e677e36cd6c3909a6e22fd130e467cf555c.tar.bz2
drakx-616e5e677e36cd6c3909a6e22fd130e467cf555c.tar.xz
drakx-616e5e677e36cd6c3909a6e22fd130e467cf555c.zip
for HTTP installs, make use of Content-Length when available, to display progressbar
Diffstat (limited to 'mdk-stage1/url.c')
-rw-r--r--mdk-stage1/url.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/mdk-stage1/url.c b/mdk-stage1/url.c
index 9781d281d..0f919812b 100644
--- a/mdk-stage1/url.c
+++ b/mdk-stage1/url.c
@@ -408,7 +408,7 @@ int ftp_end_data_command(int sock)
}
-int http_download_file(char * hostname, char * remotename)
+int http_download_file(char * hostname, char * remotename, int * size)
{
char * buf;
struct timeval timeout;
@@ -420,6 +420,7 @@ int http_download_file(char * hostname, char * remotename)
int rc;
struct sockaddr_in destPort;
fd_set readSet;
+ char * header_content_length = "Content-Length: ";
if ((rc = get_host_address(hostname, &serverAddress))) return rc;
@@ -508,6 +509,11 @@ int http_download_file(char * hostname, char * remotename)
*end = ' ';
}
}
-
+
+ if ((buf = strstr(headers, header_content_length)))
+ *size = charstar_to_int(buf + strlen(header_content_length));
+ else
+ *size = 0;
+
return sock;
}